When a character is playing an animation that contains rotational root motion and that character is placed on a moving actor, an invalid translation component is introduced to the worldspace position of the character.

One of the animation devs spent some time investigating this and suggested it be passed over to the gameplay team:

I've a bit more info about the bug and it turns out that is reproducible anywhere, the problem is that it depend on the speed of the platform the faster the platform move, the faster the character slides. The extra translation seems to be introduced at the point where the root motion is converted to world space USkeletalMeshComponent::ConvertLocalRootMotionToWorld which is called from the character movement component before consume the extracted motion. If you enable LogRootMotion category you will see the log coming from that function where LocalT is 0 and WorldT is non zero.

A project is attached that reproduces the issue. The issue was originally reported via the following UDN: [Link Removed]

Steps to Reproduce
  1. Open the root motion issue project
    1. This is contains a simple anim BP with a single animation that has an additive track to rotate the root of the character and root motion enabled.
  2. Play in editor.
    1. Expected behaviour: character with root motion should rotate and translate with motion of the environment
    2. Actual behaviour: character with root motion enabled is translating across the environment

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-110236 in the post.

Login to Vote

ComponentUE - Anim - Gameplay
Affects Versions4.26.1
CreatedMar 8, 2021
UpdatedJan 31, 2022