4
$\begingroup$

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.

$\endgroup$

1 Answer 1

1
$\begingroup$

Why can't you just use the Graph editor to re-position the keyframes?

Select the keyframes you want to offset, grab, and move in the X direction: enter image description here

You can also type in the exact number of frames you want to offset the keyframes by... positive or negative amounts.

$\endgroup$
2
  • $\begingroup$ @AlexRamallo - No problem at all, you can also type in a value after selecting your direction and it will move that many frames, positive or negative. $\endgroup$
    – bertmoog
    Commented Jul 5, 2017 at 19:46
  • $\begingroup$ I believe the OP was asking how to reposition the animation relative to world space, not how to reposition the keyframes in the timeline. $\endgroup$ Commented May 2, 2021 at 15:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .