An outside rigging artist (Always fun to work with someone else's rig) made a rig that had the top level group for the joints with a scale set to 600. Sadly, this went unnoticed. We animated everything as normal, and brought it in to Unity only to notice that putting anything in the joint hierarchy such as collider's meant that the local values and scale of everything was 1/600th. This makes things a pain and isn't clean at all. It can be worked around but I would rather clear this up so our developers don't have added work.
The rig is complex but functioning fine otherwise and already has a lot of animation work on it, so my goal is to correct this on the exported FBX and just add a step between Maya and Unity where it gets corrected.
So to summarize, all joints have a scale of 1, but the joint's group has a scale of 600. The joints have baked keyframe data, which is what makes this more challenging and I'm stuck trying to figure out how to get everything to Scale 1 and have the keyed data adjusted to match.
Replies
I duplicated the mesh and skeleton, destroying the input graph on the copies.
Put the scale of the skeleton back to 1 (now it should be really small)
In the channel box, multiply all of the translation values on all of the joints by 600
Re-bind the new mesh to the new skeleton
Use copy skin weights by UV/World pos from the old skeleton and mesh to the new skeleton and mesh
Now to make it more automated.