[Advanced] Root Motion Directional Editing

From our last tutorial, we covered how to set up the root bone to receive hip/pelvis bone rotation and translations to move it through the world creating Root Motion.

We will now cover how to edit the baked data inside our control rig to match the direction we want to go.

For this example, we are creating a Walk Left 90 Degree Start.

Left90StartEdit

You can see from the preview above that we need to align our character to face down the +Z axis in Motionbuilder. This is as our actor was standing at a different angle in the motion capture volume, something you’ll need to always adjust in editing.

To start we will open our Story pane and right-click in the left panel and create a new character track and select our Characterized Character.

Now in the main story timeline, right-click and click “insert current take”.

Great, now that we have the take open in the Story editor, we can click the little eye icon (Show/Hide Ghosts) on the Character Track, I’ll circle it in the next screenshot.

Once this is selected, select the track by clicking on the take, it should turn highlighted green around it, and now in the viewport, making sure you’re on the first frame, rotate the character to face forward down the +Z (blue) axis.

Perfect, now for ease of use for this tutorial, right-click on the take and plot whole scene to current take.

Okay, with that done the character is now aligned, you should set your default idle pose that you have stored, if you’re not sure what this after you edit your first idle animation creating what we call a Root Pose, this is ideally the pose that the animation can blend back to.

You can have heaps of Root Poses depending if you’re in a combat stance, crouching stance, ladder idle, etc… basically it will allow you to blend seamlessly between animations.

If you don’t know how to create this let me know in the replies and I can write a tutorial on it.

Okay, so this is the image with our Root Pose applied to a new animation Layer.

This Root Pose, I have slightly lowered the shoulders and the root bone is perfectly zeroed in the world (translation and rotation).

root_rotationwrong

However, after playing the new preview you’ll notice something odd, the root rotation is going all over the place. Pay particular attention to the green axis (Y-axis on the UE4 Root Bone). This should actually be one smooth movement where we animate the blue axis (Z-axis on the UE4 Root Bone) to move from 0 degrees to -90 degrees. Which is technically from forward-facing to left facing.

So let’s edit the root bone now to smooth move. I find the easiest way to animate turns like this is to use a filter on the base animation layer - this won’t affect our Default Root Pose we applied before because that is on the layer above the base layer and we are only changing root bone data.

Make sure the root bone is selected and then go to Filters tab and click Cut, then click Preview and then click Accept.

Great now when you playback you’ll notice there isn’t any rotational movement on the root bone, (if there is make sure you’ve disable the rotation constraint from the previous tutorial).

cutroot

Okay, this is great, now we just need to animate the root bone.

Make sure the root bone is still selected, on the first frame, create a new animation layer and then create a key that makes just rotation 0, 0, 0. and on the frame where the character is facing the most left after starting walking create a new keyframe just on Rotation that is 0, 0, 90.

Okay wait, you’re probably wondering why it’s 90 degrees and not -90 degrees as I drew in the diagram above. Well, this is assuming the character’s root bone is facing in the positive axis (noticed the green Y-axis on the UE4 root bone) this axis is actually negative, which is required to get the rotation correct on import into the engine. Which means we need to make the -90 degree turn a position 90-degree turn.

After the keyframes, you’ll end up with the final result of a perfectly turning Left 90 Degree Walk Start animation with Root Motion.

finishedturn90

Great, so now you have a working turning root motion system that you have built from scratch. Now you just need to replicate this layout for any different angle you are animating.

If you have any suggestions or extra tips you want to share on your own workflows please post them here too.

Thanks for reading. :grinning:

This tutorial covered setting up a clean rotation using root motion. If you would like a sample scene let me know.