Maya for 3D Printing - Rapid Prototyping
In this course we're going to look at something a little different, creating technically accurate 3D printed parts.
# 1 20-06-2004 , 06:46 AM
Gun-Kata's Avatar
Registered User
Join Date: Jan 2004
Location: Los Angeles
Posts: 68

Position Attribute in Expression Question (from Learning Maya Dynamics 5)

float $nz = 3* noise (nurbsPlane1ParticleShape.position*.1 + time);
nurbsPlane1ParticleShape.position = nurbsPlane1ParticleShape.position0 + <<0,$nz, 0>>;


Hi, that expression is used to control the y value of each particle in a grid of particles that has been parented to a nurbs plane. The result looks kind of like cloth blowing in the wind. What I don't understand is how the part that is in red can possibly be used to assign each particle its own y coordinate. Isn't position a vector attribute? How then can it yield a scalar value for $nz? And furthermore, how is it that it yields a different y value for each particle in the field?

user added image user added image user added image user added image


Last edited by Gun-Kata; 20-06-2004 at 06:49 AM.
# 2 20-06-2004 , 01:12 PM
kbrown's Avatar
Moderator
Join Date: Sep 2002
Location: London, UK
Posts: 3,198
The answer lies in the second line. The scalar value is used in a vector <<0, $nz, 0>>. Why does it yield to a different y value? Well, because the vector is added to the initial position of a given particle.


Kari
- My Website
- My IMDB

Do a lot, Fail a lot and Learn a lot!
# 3 20-06-2004 , 06:14 PM
Gun-Kata's Avatar
Registered User
Join Date: Jan 2004
Location: Los Angeles
Posts: 68
Thanks! What I still don't understand though is how an equation that uses a vector quantity with three distinct numerical components (nurbsPlane1ParticleShape.position) can yield a single decimal numerical value (float $nz).

If, for example, nurbsPlane1ParticleShape.position is equal to <<2,3,4>> and that value is then inserted into the equation, then shouldn't the equation also yield a vector quantity?



ps. Nice Quake III model btw.

# 4 21-06-2004 , 01:57 AM
kbrown's Avatar
Moderator
Join Date: Sep 2002
Location: London, UK
Posts: 3,198
Ah... Now I see what you mean. It is because of automatic type conversion. In this case the .position vector is automatically converted to a float by calculating a magnitude (length) of it.

These two will yield to the same result:

float $nz = <<1, 2, 3>>;
float $nz = mag(<<1, 2, 3>>);


Kari
- My Website
- My IMDB

Do a lot, Fail a lot and Learn a lot!
# 5 21-06-2004 , 02:35 AM
Gun-Kata's Avatar
Registered User
Join Date: Jan 2004
Location: Los Angeles
Posts: 68

Originally posted by kbrown
Ah... Now I see what you mean. It is because of automatic type conversion. In this case the .position vector is automatically converted to a float by calculating a magnitude (length) of it.

These two will yield to the same result:

float $nz = <<1, 2, 3>>;
float $nz = mag(<<1, 2, 3>>);

Now I get it. Thanks!

# 6 21-06-2004 , 07:06 AM
Registered User
Join Date: Nov 2002
Location: Pakistan
Posts: 57
kool explaination
Kbrown...

......


Learn the Rules|Then|
Burn the Rules Book
Posting Rules Forum Rules
You may not post new threads | You may not post replies | You may not post attachments | You may not edit your posts | BB code is On | Smilies are On | [IMG] code is On | HTML code is Off

Similar Threads