Blender armature/bones vs. empties

(really a comment)

I needed a "mechanical" rig (bicycle) rather than a character. I rigged in Blender with parts parented to bones. One item (front fork) is angled. Then exported/imported into Unity (via FBX) with generic rig. Unity animation always uses global axes for the bones. This means the front fork rotation doesn't work right.

I reconstructed the Blender rig using empties instead of bones - front fork is still angled. When exported/imported into Unity (via FBX), with generic rig, now all rotations work correctly around local axes of empties.

  • Jonathan Gonzalez(jgonzalez) replied

    Unity and Blender don't share the same global coordinate or scale settings. One thing you could try is using "!EXPERIMENTAL! Apply Transform" when you're exporting an FBX. This doesn't work for all objects you export out, but it's used to apply the transform to what Unity would be expecting. 

    Rigs can be a bit finicky to work with in Unity when they have custom hierarchies or special constraints. You can also try using Empty game objects in Unity instead of Blender if it's possible with your rig setup. 

  • Jonathan Gonzalez(jgonzalez) replied
    Also this article I wrote a while back might be useful for you as well: https://cgcookie.com/articles/importing-and-exporting-game-assets
  • techworker1 replied

    Thanks, I had read that post.

    I think Blender empties work well for me (for mechanical rig), if I export FBX Empty+Armature+Mesh and import to Generic rig. I've been keyframing in Unity, generally not in Blender.

    [So far MakeHuman => FBX => Unity Humanoid has been working well for me.]