0
$\begingroup$

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?

$\endgroup$
2
  • $\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, 2020 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, 2020 at 18:41

3 Answers 3

1
$\begingroup$

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.

$\endgroup$
0
$\begingroup$

It looks like the feature has been added if it wasn't there before. From the edit mode select your bone and go to Armature > Bone Roll.

There are a couple different things to use.

$\endgroup$
-1
$\begingroup$

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.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .