I have two mocap animations on a skeleton which are pointing in different directions, and their root bones are centered at different locations. For example, my walking-in-place animation is facing X+ and is at location [10,50,0] while my run-in-place animation is facing Y- and is at location [30, 10, 0].
I want both animations to face Y+ and be at location [0,0,0].
I cannot simply reposition and rotate the root bone, because the root bone also has keyframe data that would be lost.
What I can do is to turn on 'Automatic keyframe insertion', and then manually offset the root bone rotation and location by the relative amount on the appropriate axis. However, this is impractical as my animation has over 100 keyframes, and if I were to do this manually it'd take a really long time.
It should be relatively straightforward to write a script that does this automatically. For example, for the walking-in-place animation, I'd just tell the script to subtract vector [10,50,0] from the root bones location for every single keyframe, and then subtract [90] from it's Z axis.
However, I want to know if this functionality already exists either within Blender or in an addon. Seems like an issue that should be relatively common.