Here's recent work on an advanced locomotion system for a 3rd Person Character controller.
This is what UE5's default 3rd person template character looks like.
Here I've implemented simple animations from the UE5 Echo project and Mixamo.
- Starts/Stops (Walk/Run)
- Leans
- Pivots (Walk/Run)
Adding in a custom method for steering root motion towards the player's desired direction. This method is highly tunable, allowing the designer to tweak for responsive control while maintaining the important parts of the root motion animation.
- Written in C++, expanding on unreal's CharacterMovementComp and Root Motion Sources
- When an animation is imported, root data is baked into curves on the animation and an AnimNotifyState is generated to indicate where in the animation to use this data.
- I use a custom root motion source to pass the data from the animation to the CharacterMovementComp.
With Debug Draw on.
We steer the root motion translation and rotation towards the character movement component's desired values, scaling based on how much the root motion is already moving and the delta between the current transform and the target transform.
Here I've implemented UE5's experimental Stride Warping and Orientation Warping nodes.
Adding in new mechanics like Ledge Mantling while utilizing UE5's MotionWarping system. This is layered on top of the Root steering system described. You can see that there is some root steering allowed during portions of the MotionWarping montage.