To showcase the problem the easiest way, this is what the issue looks like: https://youtu.be/esihE0ob7U8
As you can see, the track chain makes a momentary 'jump' when the baked animation is played back inside unity to the extent that the gears may clip through the track (the issue is present both with .fbx and the original blender file if imported in Unity, as well as blender itself, if we just export and re-import an .fbx file)
Rig functions as follows:
- We have a cyclic bezier curve with the correct track chain shape (named TrackChainCurve), parented to a root bone inside the armature;
- There are two more straight curves named TrackChainCurve.L and TrackChainCurve.R with similar length to the TrackChainCurve and they are similarly parented to bones named Track.R and Track.L inside the same armature;
- TrackChainCurve.L and TrackChainCurve.R have Curve modifiers attached to them, so that they take form of the original TrackChainCurve;
- Track.R and Track.L copy location (with offset) of an 'alternate' root bone that always stays at the origin, so that whenever we move or rotate the main armature bones, the chain rotates and moves around as if the model is really moving using those chains;
- On each side, there's a chain of bones with SplineIK constraint to repeat the movement from TrackChainCurve.L and TrackChainCurve.R. They have all scaling disabled, so that the skinned mesh does not stretch, it just wraps around the corresponding curves.
Anyway, I'm a bit of a noob when it comes to Blender and I might be missing something...
Would appreciate any help