Scale tool in Maya

Scale tool in Maya

siyonassingh
Participant Participant
1,236 Views
4 Replies
Message 1 of 5

Scale tool in Maya

siyonassingh
Participant
Participant

Hello

 

When we modify the scale of an object in Maya along a specific axis, the scale value for that particular axis remains unaltered in the Channel Box. The Scale X, Scale Y, and Scale Z values solely undergo modification in the Channel Box when we scale from the object's center.

 

But the Translate and Rotate values in the Channel Box undergo adjustments whenever translation or rotation occurs along a singular axis.

 

Why does this happen?

 

Thanks!

0 Likes
1,237 Views
4 Replies
Replies (4)
Message 2 of 5

brentmc
Autodesk
Autodesk

Hi,

A video of the problem or attaching a Maya scene file would be helpful.

In general if you have rotation on your object then the scale tool values will only match the channel box when the Scale Tool Axis Orientation is set to Object.

A similar issue can occur with translations. Translating along the local X may change multiple translation channels when the object is rotated. (since translation is applied in Parent space - after scaling and rotation)

In other words Maya may have to modify multiple channels to achieve the end result of dragging a particular manipulator handle.

To see the difference you can select a single channel in the channel box which will align the manipulator to match the desired channel.

Brent McPherson
Principle Software Developer
Message 3 of 5

siyonassingh
Participant
Participant

Thank you for clarifying!

Sorry if my question was a bit unclear.

 

I've got a few more questions about what you mentioned:

I've noticed that when scaling an object along the X-axis before any Translation or Rotation, the Scale X value in the Channel Box changes only when the Scale Tool Axis Orientation is set to Object, not World.

If I scale from the center of the object then the Scale X, Scale Y, and Scale Z values change in the Channel Box irrespective of whether the Scale Tool Axis Orientation is set to Object or World.

(view in My Videos)

siyonassingh_0-1709936699701.gif

 

 

When I translate an object using the X axis, Translate X changes in the Channel Box when the Axis Orientation is set to Object and also when the Axis Orientation is set to World. The same thing happens for Rotate X.

(view in My Videos)

siyonassingh_1-1709936699703.gif

Why do Translate X and Rotate X change in the Channel Box for both Object and World Axis Orientations but Scale X changes in the Channel Box only for Object Axis orientation(all of these mainpulations before applying any other manipulation)?

 

What is Parent Space? - "since translation is applied in Parent space - after scaling and rotation"

 

It's challenging to understand how Translate, Rotate and Scale affect each other in 3D with Object and World Axis orientations. Will this understanding naturally improve as I delve into Maya or is it advisable to fully understand these dynamics before learning Modelling, Rigging, Animation, FX and Rendering?

0 Likes
Message 4 of 5

brentmc
Autodesk
Autodesk

Hi,

To answer your questions requires some basic transformation information:

In Maya objects in the scene have a transformation matrix. To display a mesh on the screen the geometry is first transformed by the object's transform matrix. Then it is transformed by each parent's transform matrix in turn until you get to the final the mesh that you see onscreen.

Now we can define the various transformation spaces:

- object-space is the space before any transforms are applied (geometry space)
- world-space is the space after all the transforms have been applied (scene space)
- parent-space is the space after applying the object's local transform

Now, if you dive into a transform matrix it is also made up of parts. (and those parts are described in detail in the Maya xform command documentation - https://help.autodesk.com/view/MAYAUL/2024/ENU/?guid=__Commands_index_html)

For our purposes we can break it down into scale/rotation and translation. So when we transform our mesh it is first scaled, then it is rotated and finally it is translated. Thinking of our description of the transform spaces above we can see that:

- scaling is applied first (so it happens in object-space)
- rotation is applied next (and happens in a special space that we call "gimbal" space)
- translation is applied last (so it is happens in parent-space)

Note: Rotation is a whole other can of worms and the order in which they are applied matters since each rotation affects the subsequent one. (and in Maya and most other DCCs you can change the rotation order of a transform) Maya has a special rotation mode called Gimbal that modifies the individual rotation channels and when you use this mode you will see that changing one channel affects the sebsequent ones. Rotating a channel so that it lies on top of another one is called Gimbal lock. (and results in a loss of a degree of freedom since you only have two axes to rotate around) https://en.wikipedia.org/wiki/Gimbal_lock

So, after all that explanation it should be clear why scaling in object-space modifies the individual scale channels and why the same thing happens for the translation channels in parent-space.

Now to answer your other questions:

1) object vs world scaling

In most instances scaling should be avoided, expecially non-uniform scaling. (for reasons I won't go into here.) Therefore, scaling should primarily be used for modeling and you will want to use Freeze Transformations to apply the scaling to the geometry. (since scaling can affect the normals of the geometry used for lighting) But to answer your specific question - the Maya transformation matrix cannot represent anything other than object-space scaling so if you scale in world-space it will apply the scaling to the geometry. That is why scaling in world-space generates a warning message in the Maya scipt editor and the scale channels do not update.

2) what channels are affected when I move a manipulator

If you don't have any parent transforms then parent-space is the same as world-space. Same thing if you don't have scaling or rotation - object-space is the same as parent-space. That is why translating an object sometimes modifies a single chanel or it can modify all three channels. It depends on 1) the current axis orientation mode in the tool and 2) the object/parent transforms that are present.

So, in conclusion, having a grasp of how transformations work is fundamental for any DCC or game engine. The degree to which you need to understand this varies by role. Modelers can get away with less knowledge since they are mostly working with the geometry and any transofrmations they apply can be frozen into the geometry. Rigging on the other hand requires a good understanding because a rig is composed of transformations and how they relate to each other. (like a puppet where moving the upper arm also moves the forearm and hand)

This is a very long post and I have only scratched the surface of this topic but hopefully it gives you a starting point for further learning.

Brent McPherson
Principle Software Developer
Message 5 of 5

siyonassingh
Participant
Participant

Thank you for the detailed explaination. It really helped clear up quite a few things.