Thursday 24 September 2015

Blender and Mixamo

While the future of Mixamo is uncertain, at the time of writing (September 2015), there is a working integration with Blender.

Importing

Assuming you have a rigged, animated character created using Mixamo you export to Blender via FBX.
Upon importing the FBX, you may wish to change the model's scale. Sometimes models appear very small inside blender.

Issues

The main known issue ( At the time of writing! ) is that the model's rest position is not compatible with that used by animations. Pretty broken, eh?
Although it takes a bit of patience, you can pose your model to look like the animated rig's rest position, then apply the armature modifier in Blender. In effect this modifies the geometry of the model to make it compatible with the rig.

Limitations

  • Keys at every frame. Take patience to remove unneeded key-frames (may reduce file size). 
  • No inverse kinematics. Inverse kinematics can be added to the rig but this will not retroactively apply to imported animations.
  • Non standard bone names. This is unpleasant (long prefixes) and will break mirroring schemes. I wrote a small script to fix this.
  • Inverted hip bone. The solution to this is to uncheck 'inherit rotation' from the spine bone. Works, but animations created in this way should be kept separate from your Mixamo animations.
  • Unexpected rotation of some bones. With leaf bones (e.g. fingers, head) as far as I could judge you can rotate the bone's rest position without breaking existing animations.
Creating new animations

Given the above, you can create new animations based on the Mixamo rig. Depending on how your rig is setup you may need to create these separately from your Mixamo animations.

Remember that Unity doesn't need all animations to be stored in the same file. So creating your own animations separately won't be a problem. If, on the other hand, you don't know how to put several animations in the same file, read here.