How to use Root Motion animations properly with player movable character

Hi. I have an animation pack that came with a bunch of animations with rootmotion. I am wondering how I am expected to use some of these for my characters when the animation causes my mesh to move away from the actual location of my character. I tried turning off root motion for some of the animations which prevents the animation from moving forward, but then I still have the issue of the animation moving vertically.

Is there a way I can lock the animation to 0,0,0 within the sequence?

Is there another way to make my character’s camera, collision collision move with the animation?

Hi!

If you simply want to lock the mesh in place, you can enable the Force Root Lock option inside the animation sequence

If you want to make your character move with the animation, you need to enable the Enable Root Motion option inside the animation sequence.

I tried those. Neither of those options work.

This is with Root Motion Enabled:

And this is with ‘Force Root Lock‘ on. Notice I cant jump on top of the wall despite the animation going higher than the wall. That is because the actuall collision capsule isn’t moving with the animation, nor is the camera moving with it.

  1. By default Root Motion is only accepted by Animation Montages.
    (You can change it in the class defaults of your Animation Blueprint, it’s called “Root Motion Mode”)
  2. For true root lock you need to disable “Enable Root Motion” but enable “Force Root Lock” inside the Animation Sequence.

Note that this will only work, if the animations you bought actually animate on the root bone and not some other bone which is not the topmost bone in the hierarchy.

I have toyed with that option as well. While it’s a step in the right direction it still doesn’t alter the actual location of the character. Is there a similar option in a character/actor blueprint. I dont see anything in the movement component.

This is on the AnimBP:

Can you verify that your jump animation animates on the root bone?
If you would have root lock enabled, it should avoid any root bone movement…

How do I verify that?

Here I just selected the root bone in the skeleton tree of the animation sequence. Does this verify that?

I just noticed the root bone appears to stay 0 Z during the animation. Is this my problem? The pelvis bone moves with the mesh like I expect but the root stays on the ground. Is there a way I can alter this?

it seems that you can add a animation post process ( a control rig) to constraint the pelvis bone to root bone , so the pelvis bone stay in the same as root bone position