Page MenuHome

FBX Export Has Broken Animations when Exporting Armatures With No Mesh
Open, Needs Triage by DeveloperPublic


System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 441.20

Blender Version
Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-11-20 14:27, hash: rB26bd5ebd42e3

Short description of error
Exporting an FBX file that includes only an Armature and baked animation on the Armature will result in the animation not playing as intended. This can be seen more obviously in Unity when attempting to apply FBX animations to a character, but is also visible in Blender. In Unity, the FBX animation is vertical, scaled up by roughly 100x, and does not play the animation when attached to the associated character's Armature. In Blender, the FBX animation will only animate from the current idle pose of the existing Armature, rather than applying the animation's first frame offsets to the existing Armature. For some reason, this issue does not occur when the FBX is exported with the character's associated mesh, and only appears to occur when the mesh has been parented to the Armature with an Armature Deform - it works as expected if it is instead parented to the Bone.

Exact steps for others to reproduce the error

  1. Create a simple shape
  2. Add an Armature with at least two bones
  3. Parent the shape to the Armature with Automatic Weights
  4. Export the Armature and the Mesh as an FBX
  5. Add a new animation in the Action Editor with rotations that begin from a different rotation to the Armature's default pose
  6. Select only the Armature and export it as an FBX, exporting only the Armature and baking its animations
  7. Create a new file, import both FBX files.
  8. Select the original Armature (that was exported without any animations), and apply the animation action from the animated FBX file
  9. Notice that the animation does not reflect what was originally created.

I've attached files that mimic this structure described above:

  • box.blend is the mesh with an attached Armature:

  • box_anim.blend is the mesh with the attached Armature, but with an animation applied:

  • box_imported_anim.blend is the file that has all of the FBX files included:

In box_imported_anim.blend, you can see the two animations applied to the base (box.blend) file, and that the animations do not match, even though the Armatures imported from the FBX files are identical.