Why changing axis orientation only affect object's rotation?

Why changing axis orientation only affect object's rotation?

rongfuQ2HZD
Participant Participant
4,237 Views
6 Replies
Message 1 of 7

Why changing axis orientation only affect object's rotation?

rongfuQ2HZD
Participant
Participant

rongfuQ2HZD_0-1613005577478.png

So for example, in the first image: When I drag the cube along the y axis, both Translate X and Translate Y changed. (This is in the object Axis)

rongfuQ2HZD_1-1613005644968.png

However, if I rotate it:

rongfuQ2HZD_2-1613005692477.png

Only Rotate Y changed.

rongfuQ2HZD_3-1613005707391.png

How ever, if I switch to world axis:

rongfuQ2HZD_4-1613005801113.png

it does the exact opposite:

rongfuQ2HZD_5-1613005832747.png

Moving an object along the axis will now only affect one attribute, whilst rotating it around the axis will change all axis.

I'm a bit confused, how does this work? Am I understanding axis orientation wrong?

Thanks!

 

 

0 Likes
Accepted solutions (2)
4,238 Views
6 Replies
Replies (6)
Message 2 of 7

brentmc
Autodesk
Autodesk
Accepted solution

Hi,

 

Each object in Maya has its own transform node. The transform node is responsible for transforming the geometry from object-space to parent-space. (or world-space if there are no parent transforms)

 

It does this by scaling, then rotating and finally translating the geometry in that order. If you want to modify individual channels as seen in the channel box then you need to set your axis orientation as follows:

 

  • Scale tool: Object
  • Rotate tool: Gimbal
  • Move tool: Parent (which is the same as World at the top-level)

Now, the transform tools will let you manipulate in different spaces (axis orientation) but (depending on your transform values) it may need to modify multiple channels to achieve the desired move along the chosen axis.

 

Some channels can be re-ordered in the transform like rotation (which is useful when say animating cameras) but most channels are fixed.

 

So if you wanted to always translate in object-space and then apply rotation you would use two transform nodes - applying translation to the first one and rotation to the second one. This technique if often used in rigging.

--

Brent

Brent McPherson
Principle Software Developer
Message 3 of 7

mihirsbcc
Collaborator
Collaborator

Now you have to explain... what is Gimbal?...... just joking. The entire transform node takes a little time to understand.

A great explanation about this topic

Message 4 of 7

brentmc
Autodesk
Autodesk
Accepted solution

I know you are joking but gimbals are physical devices that were used for things like inertial navigation in 3 dimensions. This is exactly the same as how Euler angles are handled in computer animation software!

lm_imu.gif
Even Mike Collins had to content with Gimbal lock during the Apollo 11 mission: 🙂
https://www.hq.nasa.gov/alsj/gimbals.html

 

..and even more info on Wikipedia:
https://en.wikipedia.org/wiki/Gimbal

--

Brent

Brent McPherson
Principle Software Developer
Message 5 of 7

mihirsbcc
Collaborator
Collaborator

Thanks for those 2 link. I will check them for sure. .

0 Likes
Message 6 of 7

rongfuQ2HZD
Participant
Participant

Hi there Brent!

 

Thank you so much for the detailed explanation:)

 

So to make this even more straightforward (please correct me if I'm wrong:P), the reason why I cannot do it all in the object axis with one transform node is that the transform node uses its parent's axis.

 

In my first attempt, although I am moving it along its object axis, it's still grabbing the transformation information according to the world(its parent) axis. And the rotation is not as simple as "rotate around world-X for x degree, rotate round world-Y for y degree" but using gimbal orientation, which is every time we rotate it, its axis will change independently, hence why rotating any axis 90 degrees will cause one other axis to disappear.

 

So if we separate the task by having two transform nodes, one only does rotation, giving its child (the second transform node) the correct parent axis, and one only for movement: now the transform is more clear and if we want to do rigging, we can easily get access to individual channels.

 

Thank you again for helping me! Although I still feel uncertain about some parts, I am definitely having a deeper understanding than I was before:)

 

Cheers

Rosy

 

 

Message 7 of 7

brentmc
Autodesk
Autodesk

Hi Rosy,

 

Yes, that is correct.

The transform node always applies scale, rotate and translation in that order so to achieve a different ordering you need to use a separate child transform as you have described.

 

In a rigging scenario you would usually go a step further and lock the channels that you don't want modified on a particular transform.  (by selecting the scale/rotate channels in the channel box and using the right-click menu to lock them)

--

Brent   

Brent McPherson
Principle Software Developer