System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 970/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 432.00
Blender Version
Broken: version: 2.82 (sub 7), branch: master, commit date: 2020-02-12 16:20, hash: rB77d23b0bd76f
Short description of error
FBX export of a typical Spline IK with non-uniform scaling options (e.g. Fit Curve) gives incorrect results. Baking via F3 -> Bake Action did NOT reproduce the issue.
Problem has apparently been bugging people for a while (see this thread and this video for an example.) A suggested fix is to duplicate the bone chain, remove all parenting and constraints from the new chain and add "Copy Transform" constraints from each new bone to the original. Due to animation baking, I can confirm this does initially appear to work, however: it removes parenting information in the final export, meaning that even with baking, blending between multiple animations will fail completely.
Exact steps for others to reproduce the error
- Load the attached .blend file.
- Hit Space to play the current action. Notice the correct shape of the animated noodle poses.
- Navigate to File -> Export -> FBX.
- Under Transform, set 'Apply Scalings' to 'FBX Units scale'
- Under Armature, enable 'Only Deform Bones' and disable 'Add Leaf Bones'
- Make an Operator Preset to save some trouble.
- Hit 'Export FBX'.
- Open the exported FBX in Windows 3D Viewer, or whatever application you prefer.
- Notice incorrect animated noodle poses.
Blend File:
Broken FBX:
Expected poses:
Result poses:
Comments
I'm not familiar with the source, but in the FBX exporter plugin, a place to look may be in file fbx_utils.py, function fbx_object_matrix, possibly not accounting for the Inherit Scale option. It's pretty hard to decipher without knowing the plugin well, however.
Thanks for your time.