Rigging orientation mismatch between Blender and other DCCs

Yes, this is correct. The main reason I made this addon was purely for visual purposes as this head/tail system is unique to Blender. Having the option to scale would be a great help for Blender based armatures, but we still need a method to control the bone direction for 3rd party skeletons as Max mentioned.

2 Likes

True. But just to add another thing on top: If you color the respective sides of the bone +X in red and +Z in blue as well you still have a representation that is immediately visible from afar as well, though.
The axis display still has a lot of merit, of course. with a long sticky axis you can match orientations a lot better than with bone sides only.

2 Likes

I’ve tried this plugin and it works well.
But actually the first step of scaling all bones to 0.1 may be unnecessary, because in the bone display you can set the virtual object to scale by the length of the bones, and currently it’s hard to choose a proxy for some overlapping bones after scaling them evenly to 0.1. And when exporting bones to UE or Unity, scaling bones is likely to cause errors.
Here’s what I’ve done with a little modification, adding a UI and update button, and the sphere virtual object scales by bone length. It has better support for metahuman generated body bones (no confusion about virtual bone size).
The project address is: GitHub - mayloglog/FakeBones: FakeBones is a Blender addon designed to enhance the visualization of armatures imported from other software (such as Maya, Unreal, etc.).
I hope it will be helpful to you.

4 Likes

Really nice to see this being discussed and addressed.

I always thought this was an FBX import-related issue and am shocked to learn it is only improper visualization. Always have had to resort to reorienting the bones just in order to be able to do anything with these joint-based armatures.

3 Likes

I agree that it’s nice that this is getting attention.

But in terms of this being just a visualization issue, I don’t think that’s the case. The solutions discussed here and the addon made by @maylog are very welcome (I got to this thread after downloading the extension in Blender), but they might not be suited for all scenarios.

For example, if tweaking an animation imported from Unreal by just using simple fk animation is all you need (like adjusting arm angles or spine posture), than this is basically enough. But if you want to modify a run cycle, for example, then you’ll definitely need to set-up some fk constrains on the legs, otherwise you won’t have an easy time trying to prevent feet going through the ground. And if you try to set-up am ik chain on the leg bones as they come imported from Unreal by default, you’ll quickly find that you can’t get a usable result, because iks are dependent on proper bone orientation in Blender.

Still, this is a big help in many scenarios where just a quick touch-up to the animation is needed.

3 Likes

It’s actually another plugin that maps any bone to a rigify bone, so you can make the rigify system exactly like the bones you need to animate, and then use rigify to drive the bones you need. The principle of the plugin is actually semi-automated copy rotation and copy position, the plugin address is: GitHub - kumopult/blender_BoneAnimCopy: 用于在blender中桥接骨骼动画的插件

@aras_p just looking at the state of the new FBX and saw the link here.

I haven’t caught up on all this yet but a year or two back the Animation Module also talked about having axis options for bones be adjustable.

The orient that comes in from a Joint based system like Maya That doesn’t have a “length” and can have Any Axis point in any direction including the way it defaults to creating a Mirrored rotation (pos X down the chain on one side, Negitive - X on the other ) and when we load it into Blender you see the Joints all aiming “pointing up instead of down” for one example.

Changing these on import breaks compatibility with the Animation if it ever leaves Blender so it isn’t just a visual issue.

There are a few challenges:

  • Having support for changing the axis direction of the Blender bones to be able to accommodate any direction/orientation and still act “correct” with Blender tools is one. AKA what happens to the pose flip tools when the Bones are already “oriented to mirror” ?
  • Do we have to update the IK constraints/solvers to work with other axis ?
  • Rebuilding/aiming joints on import that don’t have end bones-
  •    This is a bigger issue and one that better fbx and Python FBX import have issues with, if a three joint skeleton say shoulder/elbow/wrist , where the wrist tells Blender where to aim the Elbow during creation....when the wrist doesn't have a "dummy/end joint" it doesn't end up aiming correctly if you try and re-align the joints on import.   Take a Root joint and hips, hips is a child but maybe the root joint is supposed to be 000 world oriented and Hips is offset , not directly over root, when you import and "re-align" the joints on import, you now have an angled root bone an all animation now is off axis.   This might be addressed already in ufbx but it should be tested for.
    

Just wanted to add my voice to , this would be great to have in Blender, flexible bone axis settings that are not locked to bone length like they are now would be great, especially in mixed software environments.

5 Likes