Adjust local rotation axis but keep object Rotate XYZ values unchanged, how?


#1

Select object and freeze transformations, all values reset to 0

I don’t like this rotation axis, so I select local rotation axis of the object and rotate it a little bit

Done, deselect local rotation axis, select object again, you can see Rotate XYZ have changed.
I don’t want it changed, I need these values still be 0.
How can I do this?


#2

Are you only working in Object Space, or World Space, or…?


#3

I am trying to write a script to rigging character’s hands.

I make a cube controller, use this controller to control hand’s Translate and Rotate.
Right now, controller 's local rotation axis are World XYZ.

That’s not what I want, hand joint has its own rotate orientation, to make the controller rotate the same way like hand joint, I add a parent constraint between controller and hand joint, and then delete parent constraint and add orient constraint, so controller can rotate the same way like hand joint.
But the problem is controller’s Rotate XYZ are not 0.

Why this is a problem?
Because this script will apply to different characters, and these characters’ skeletons are different too.

These two characters’ pose are nearly identical, but Rotate XYZ values are very different.


As a result, when I make controllers for these hands, controllers’ Rotate XYZ are very different.
This means that when I input same Rotate values to controllers, hands make diffrent pose.

In this case, controller’s Rotate XYZ are all 20, but pose are different.

My thought is that if controller’s Rotate XYZ are 0 after rigging, these hands will pose similar when controller Rotate XYZ are the same.
So I am looking for a way to adjust local rotation axis but keep object Rotate XYZ values unchanged.


#4

Typically you group the control, and rotate the group to orient the default position of the control, instead of rotating the control itself.