If a Character has active root motion while walking (animation root motion OR a Root Motion Source), and this root motion causes vertical motion that "lifts off", it's possible for the Character to be put into a different movement mode. 

By default, this is MOVE_Falling but in customized projects, this could be another mode instead. 

The problem is that the detection of whether to switch or not is conditional on IsFalling(). I believe it should instead be more narrowly conditional on (MovementMode != MOVE_Walking) so that the appropriate Phys****** function is always used.

It would be good to also scan CMC code for similar instances. At a glance, there is at least one other case in PhysWalking and one in PhysNavWalking

From UDN: [Link Removed]

Steps to Reproduce

See description first. 

Easiest way may be to use a vertical root motion source with a customized CMC that overrides ApplyRootMotionToVelocity.   For testing, simply hacking on CMC is probably OK.

Have Comments or More Details?

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

Login to Vote

ComponentUE - Gameplay - Player Movement
Affects Versions5.25.3
Target Fix5.4
Fix Commit31229390
Main Commit31369213
Release Commit31367119
CreatedJan 31, 2024
ResolvedFeb 6, 2024
UpdatedMar 25, 2024