Root Motion systems do not respect PauseAnimations flag

4.12.5 source build (source build required for latest GVR plugin patch - no local changes)

When using a character (AI) with Root Motion from Everything set, setting bPauseAnimations on the character’s Mesh does not actually pause the animation instance.
100% repro.

Code details:

UCharacterMovementComponent::PerformMovement is calling TickCharacterPose (line 1856). When root motion is enabled as above (and probably during a montage when that enum is used), HasRootMotionSources() and IsPlayingRootMotion() always return true.

A fix that is working for us: In ACharacter::IsPlayingRootMotion() add within the if(Mesh) block:

if (Mesh->bPauseAnims)
			return false;

Hey Victor,

I’d just like to let you know that we are looking into this. In the meantime, can you tell me if this still occurs in 4.13?

-Matt W.

Confirmed that the issue occurs on 4.13. The same fix above works in 4.13 for us, as well.

Hey Victor,

I’ve tested this on my end and I’ve been unable to reproduce it. My AI Character is pausing it’s animations as expected.

Could you provide an example project so that we can take a look at your setup?
You can PM me the link to download it from Dropbox or Google Drive on the forums:

Uploaded / linked repro. see PrvMsg

Hey Victor,

I’ve entered UE-36193. Thanks for providing the example project.

-Matt W.

certainly. As mentioned, the fix was pretty straightforward for us, though it could use some heavier testing with systems that actually use root motion more extensively. Should that go through a pull request, or just link the info to into UE-36193?

I have an internal comment noting that there is a possible solution in the Answerhub post. Just like pull requests, they’ll probably review the solution you’re using and see if they want to do it that way or some other way.