Rigify: Set local X Axis rotation

In Rigify, is there a way to set the local X axis rotation?

I’m trying to set up a rig; I’m placing the bones.
I have the orientation set to “Local.” But I cannot rotate the axis of the bone to align to the red arrow.

To rotate it about its Y axis, to point its X axis at something, you can change the roll field in your sidebar. For whatever reason, you can’t do bone-space Y axis rotations in armature edit mode.

Better alternative for most cases: set the +Z axis by using a recalculalte roll operation, to cursor or view axis.

Second alternative, not necessarily great: switch to pose mode, normal orientation; rotate in Y axis; ctrl a apply selected as rest pose.

Nothing specific to Rigify about it, except know that sometimes, Rigify doesn’t care how you set your metarig axes-- it’ll make its own decisions. (But, other times it will respect what you tell it to do. Depends on the specific bone.)

1 Like

If you are in Edit Mode, set orientation to Normal.

1 Like

Thank you Bandages. Thank you ToshiCG. :muscle:

May I ask another related question?
Is there a way to keep this rotation angle, yet have the rotation value to be zero?

When I press “Ctrl + A” and set “Rotation,” the rotation aligns to World Axis.
image

I don’t want the Z axis to align to the world.

This is in Object mode, right?
Then I don’t think so. If Rotation is 0,0,0 then the gizmo will be world aligned.

Turn on the Bone Axis Display. Y always points along the bone, similar to Y being the local direction a camera points.


Stop and take the time to learn what this means. Bone Roll in edit mode and Bone Rotation in Pose mode depend on these other axis.

Thank you, Matakani. But I don’t think I worded my question correctly.
.
In Local mode, I hope to keep the local axis pointing towards the bone’s end point and have the rotation values be 0,0,0.

Question: Is there a way to “freeze the transform” in Blender and keep the local orientation?

  1. If I turn on Local mode.
  2. Press Ctrl+A and choose “Rotation.”
  3. The rotation axis of the joint in Local mode turns into a world alignment. This is not the desired result I am hoping for. I would like to keep the local orientation of the bone and also have a rotation value of 0,0,0 just like I would have in Maya.

Found the solution.

The real question to answer here is, why do you want your bone to have a rotation value of 0 at that rotation?

You can make it have 0 rotation in that orientation by setting that orientation as the rest pose, which you can do in pose mode by selecting the rotated bone and then using ctrl a->apply selected as rest pose. But the way that it does that is of course by setting the rest pose. The displayed rotation of the bone is relative to the rest pose. And changing the rest pose may have side effects on things you’re not showing in your pics.

Setting the default rotation value to zero helps out when you export the Blender rig into UE5 and implement the UE5 Control Rig. Zeroing out the rotation is a common practice that Maya uses. UE5 also uses this practice.

I’m trying to create a rig that works in Blender and UE5.

Then you probably don’t mind changing the rest pose-- in fact, it’s exactly what you do want to change-- and “apply as rest pose” is a good solution.

1 Like

AWESOME! Thank you. :muscle:

I really do appreciate all the help the Blender Forum community has given me. :pray:

1 Like