Get a MCRootMotion Pawn to work in UDK (but actually this doesnt work – maybe there is some missing step)

See the new info from 2020. At last a working, repeatable solution to root motion

  1. Add a MCRootMotionPawn.
  2. Set the MCRootMotionPawn’s Skeletal Mesh Component’s Skeletal Mesh.
  3. Set the MCRootMotionPawn’s Skeletal Mesh Component’s Anim Tree.
  4. Add Anim Sets to the MCRootMotionPawn’s Skeletal Mesh Component’s AnimSets array.
  5. Set the Master Slot Node Name to MasterSlotNode’(I will remove this step by making this have a default value).
  6.  Set the Motion Slot Node Name to MotionSlotNode (I will remove this step by making this have a default value).
  7. Check that the in the  AnimTree you are using, the AnimNodeBlendPerBone names match the skeleton bone names
  8. Open up Kismet and add a Level Loaded event.
  9.  Add a Play Animation action and hook up the Pawn variable link with a Kismet object reference to the MCRootMotionPawn.
  10. Set the Play Animation’s AnimSequenceName to an animation name stored within one of the Anim Sets I added previously to the MCRootMotionPawn’s Skeletal Mesh Component.
  11. Before I test, I open up the World Properties and set the Default Game Type and the Game Type For PIE to MCGameInfo.
  12. Test, you should see the MCRootMotionPawn animating.
 13. To enable ground ray tracing so that the MCRootMotionPawn is on the ground, I add the socket names to Ground Raycast Socket Names. These sockets define where the feet are. (I will remove this step by having some default names added).
14. Check that the root motion pawn’s socket names for the feet are LeftAnkleSocket and RightAnkleSocket
15. Tick Use Ground Tracing.
Set the Translation bone (eg Pelvis). Add two Cached Skel Controls, call them LeftFootControl, RightFootControl
16. Test, you should see the MCRootMotionPawn animating and following the ground surface.
17. Add a Anim Notify event using the “New Event using MCRootMotionPawn_X” context menu in Kismet. (Make sure the MCRootMotion is selected in the viewport)
18. Set the Notify Name in the Anim Notify event to match the Anim Notify object created within the AnimSet.
19. Set the Max Trigger Count in the Anim Notify event to zero so that it can retriggered as many times as I want.
20. Add a Play Animation and connect this to “Anim Notify”. I set “Play Animation” to play another animation.
21. Repeat the steps 16 to 18 but set it up for another animation. This results in a loop where one animation will trigger the other.

 

Things to check for in the skeletal mesh and animation sequences:

  • Make sure your Skeletal Mesh has a HipSocket and a LeftAnkleSocket and RightAnkleSocket – use these names!!
  • The skeletal mesh HipSocket needs the X to point in the correct direction for it to work correctly. X (red) should face forwards, Y (green) should face to the size and Z (blue) should point upwards.
  • Animations need to face the X direction, notice how the character for the older Ruth animations all start their animation facing in the X direction? You’ll need to do the same thing here as well; otherwise you’ll get the 90 degree rotation. You can post modify the rotation after you’ve imported by using the AnimSet tool found in
  • AnimSequence -> Apply Rotation