0
$\begingroup$

I'm trying to setup root motion for an animation that I have but I'm struggling to get it working right.

My armature has a root bone named root and its child is the pelvis bone.

This is the original animation:

Base animation

What I'm trying to do is copy the location keyframe data from the pelvis bone to the root bone. I thought it would be as straightforward as this for each keyframe:

root_bone.location = pelvis_bone.location

But this results in:

Animation after copying location data from pelvis to root.

After some digging I noticed that I get the same results with the unmodified animation if I uncheck "Local location" under the pelvis bone's "Relations".

Base animation with "Local location" unchecked for the pelvis bone.

So I'm guessing I need to transform pelvis_bone.location somehow? I don't understand in what way though.

$\endgroup$

1 Answer 1

0
$\begingroup$

As thoose 2 bones have a different orientation in edit mode, transferring the motion from one to the other is not a simple matter of copying and pasting keyframes.

Some deep math and Python code can be used for this purpose, but the simplest way (that I often use) is to bake the pelvis animation to an empty, and then bake the empty animation to the root.

To do so:

  • Add to the animation a keyframe in which the whole armature is in rest pose and perform any of the following operations with the timeline set on that frame (I assume that the root bone in rest pose has 000, 000, 111 transform values)

  • Add an empty in the same exact location of the pelvis bone, set a copy location constraint targeting that bone, then go to Menu > Object > Animation > Bake action (all preferences turned on)

  • In the graph editor move the X loc curve as a whole to bring the X value at current frame to 0 (manually or using simple math operations). Do the same for Y and Z loc curves.

  • Add to the root bone a child of bone constraint targeting the empty (do not confuse object constraints with bone constraints)

  • In pose mode go to Menu > Pose > Animation > Bake action (all preferences turned on)

  • Delete or turn off loc animation of pelvis bone, delete the empty.

$\endgroup$

You must log in to answer this question.

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