I not only need to change a bone's roll, I also need to change the axis along the bone.

In other words, instead of Y-axis in the pic below, I need the X-axis.

enter image description here

This is feasible in Maya - what about Blender? need to do it to align a skeleton with another skeleton in Unreal engine. They must be completely same for animations to work, however: in Unreal, the x axis is along the bone direction, and in blender it is y axis. Any ways to change this?

  • $\begingroup$ Blender uses bone Y axis as the bone direction. Most exporters allow for converting axes, generally defining UP and FORWARD. Related blender.stackexchange.com/questions/18218/… $\endgroup$
    – batFINGER
    Jul 20 '20 at 17:55
  • $\begingroup$ @batFINGER thanks, I tried setting bone axes to different values while exporting but that does not seem to solve the problem, and the animation in Unreal4 still twists the model so hard it's not possible to recognize it any longer. maybe, the problem lies deeper... $\endgroup$
    – Serhii
    Jul 20 '20 at 18:41

This is currently not possible in Blender. That said, there is a strong case to make this into a feature. I explain this in more detail on Right-Click Select which I think is the official place for feature requests.


The Y axis is set by the (normalized) vector from bone head to bone tail. To change this axis, move the bone tail in edit mode. It may be necessary to remove the "connected" trait from children bones to do this, which is fine; connected trait is nearly useless.

Once you have the Y axis set, X and Z axes can be set by bone roll.

Whenever you change bone axes, you will screw up any existing animations, because those existing animations are measure in terms of local space transformations, and you just changed the local space by changing the axes.

Some other engines (most other engines) use different coordinate handedness, which can screw animations up. The coordinates you show in your pic use a different handedness (but maybe you weren't careful about positive vs negative.) Any decent exporter should be designed to handle differences in coordinate handedness, but you cannot express different handedness inside of Blender. You'll need to convert the animations instead.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.