Set up a Root Motion character for Unreal with correct Root rotations and translations.

This method was invented by Crispin Broadhurst the Technical Director/Animator from Mocap Online and Motus Digital. Ive tried to summarise the main points here…

First lets convert an existing character to a Root Character in Motionbuilder.

1. Open a T-posed ‘characterised’ character and from the Asset Browser/Templates/Elements drag in a Skeleton Root.

2. With the Skeleton Root selected, open the Properties view and set:
Enable Rotation DOF = Ticked
Rotation Order = Euler XYZ
Pre Rotation X = -90
Enable Min X  = Ticked
Enable Min Y = Ticked
Enable Max X = Ticked
Enable Max Y = Ticked

Skeleton Root Properties View

3. Now we will add a Character Extension to the scene – this will mean that the Root motions get plotted with everything else. Drag one onto the Skeleton Root from the AssetBrowser/Templates/Characters

The Character Extension

Click the + icon to open the Character Extension in the list on the left and open the Scene as well. Drag the Skeleton Root Teapot icon onto the  Character Extension to add the Root as the extension.

4.then in the Character Extension properties Set the Attached Character to <Your Character> (mine is called Bob) by clicking on theand choosing yours from the list

5. In the Schematic view Parent the Pelvis to the Skeleton Root (Ctrl W to toggle Schematic and 3d view)

Skeleton Root Parenting in the Schematic view

6. Now we need to set up constraints to keep the root under the hips, constantly on the floor and also to follow the hip rotations…

7. The first is the floor one, so from the Asset Browser/Templates/Constraints, drag a Relational Constraint onto the Skeleton Root setting it as the constrained object from the pop up that appears when you let go. Select the pelvis in the Schematic view and hold X to drag it into the Constraint Window. From the pop up set it to be the Sender. Under the list of different relations look under the Convertors heading and drag in a Vector to Number and a Number to Vector. Now drag ‘wires’ between the relevant values. (Were just using X and Z because we don’t want the root to move up and down.) When you are done, tick Active on the left.

Relational Constrain for setting the Translation of the root – it’s a node based editor basically you ‘wire’ values together…

8. The Rotational constraint is much easier because we are already limiting rotations in the Skeleton Root DOF Properties. From the Asset browser drag a Rotational Constraint onto the Skeleton Root and choose Constrain Object from the pop up. Then X drag the Pelvis into the Source 1 slot. Then click Snap to make it Active.

Rotational Constraint

Thats it actually. In the next post we will get some motion in there and plot it out for Unreal.