Character suddenly stop when change states with root motion on/off

Hi,
for test purpose,I made a simple Anim BP.

It just change from two states Run and Jump,and each states play a single Anim assets.

But when I enabled the root motion in Run Anim.When change to the Jump Anim with Force root lock,character will Suddenly Stop and Lose Velocity,so he can only jump almost in place.

I have tried set Velocity manually but it didn’t work.

If I uncheck the root motion in Run Anim,Jump will be correct but Run will be slide.

If you have any ideas, I’d be appreciate.

Run anim sets:
run
Jump anim sets:
jump

Check if the jump animation has proper root motion. If don’t, the movement animation will stop suddenly. Also, check if the Animation Blueprint is set to Root Motion for Everything. In case you have mixed animations (root motion and in place), you will need animation notifiers to switch back and forth from one animation mode to another. This is not an optimal setup.
Here, enable Loop and check if your character is moving away from the origin or if returns to it every cycle (no root motion)


1 Like

Thanks for reply.

In my case,Run anim should be root motion and Jump should not.Anim BP was correctly setted.

I wonder is it due to UE?
When change states between Run and Jump, UE must stop my charcter since they are not using root motion constantly?

It is not a good practice to mix up locomotion animations with and without root motion. Typically, we use ‘Root motion for montages only’ or ‘root motion for everything’. Also, root motion is not good for replication (multiplayer) and it is an outdated method, technically replaced by ‘motion warping’, ‘distance matching’ and ‘root motion extraction to curves’ used for animation montages, dashes, climbing, parkour, and turns in place.

1 Like

Thank you again!

I have to admit that I am new to make Anim assets.

Now I can avoid it since I understand the underlying mechanism.

1 Like

Root motion is out dated method? But the new motion warping method also depends on root motions. The problem is when root motion montage completes, the character movement component always resets its velocity to zero, thus it stops the momentum of loot motions.

Edit: The momentum stop problem when root motion completes has been mysteriously solved by changing this setting: “Root Motion from Everything” to “Root Motion from Montages Only”
And then the dodging root motion plays smoothly with normal non root motion blend space movements.

2 Likes

I believe “root motion from everything” is an outdated method. Distance Matching, Orientation Warping, Motion Warping and Animation Warping all use the information baked in the in root motion animation sequence, but add more control at runtime. Also, “Root motion for montages only” is still widely used for single player games. For multiplayer, take a look at Lyra Starter Game, there is an ability GA_Hero_Dash that uses a node called “Apply Root Motion Constant Force”, which is one specific way to use in combination with “Play Montage” in networked games.

Thanks for the advice, I found it’s very tricky to use root motions for action games, the motion warping is so important for paired actions, and have to be used for target locking during root motion based combo attacks, although it’s lagging and not sync well with movement. It’d be much better if the root motion data can be extracted without overwriting movement control.

Edit: I found why my game’s root motion montages were lagging during movement transitions, it’s because the anim notifies were put too near to each other, even if they’re on different notify tracks.

It’s not the fault of motion warping plugin, this plugin works nicely if the anim notifies are at least 0.1 second apart from each other.

1 Like