The Fundamental Choice in Character Locomotion
Every game that has a moving character faces the same foundational question: who moves the character? Does the animation drive the character's position in the world, or does the game code drive position while the animation just plays visually on top? This choice — root motion versus in-place animation — has far-reaching consequences for how your game feels, how you build your animation system, and what kinds of gameplay are even possible.
Getting this decision wrong wastes weeks of development time and creates gameplay that feels fundamentally "off" in ways that are hard to diagnose. Getting it right, or knowing how to use both intelligently in the same project, is a mark of an experienced game developer.
This guide explains both approaches in depth, helps you decide which is right for each use case in your project, and walks through the practical setup in both Unreal Engine and Unity — including the most common problems and how to solve them.
What Is Root Motion?
Root motion animation is animation where the root bone of the character skeleton physically moves through the scene as part of the animation data itself. When a "run" animation plays with root motion, the root bone actually translates forward frame by frame — and the engine extracts that movement to drive the character's position in the world.
Think of it this way: a root motion animation is a complete, self-contained performance. If you played it back in a 3D viewport without any game code touching it, the character would move through space exactly as the animator intended — because that movement is baked into the clip.
Motion capture data is natively root motion. When an actor walks across a capture volume, their root (typically the hip or pelvis bone) moves forward in space. That displacement is recorded. Professional motion capture providers, including MoCap Online, deliver clips with root motion intact so you can choose to use it or extract it as needed.
What Is In-Place Animation?
In-place animation is animation where the root bone stays at the origin (position 0,0,0) throughout the entire clip. The character's feet cycle and the body bobs, but the skeleton doesn't actually travel anywhere in the scene. All character movement is driven entirely by game code — physics, character movement components, or direct transform manipulation.
In-place clips look odd when you play them in a viewport without game code — the character's legs pump like they're on a treadmill, running hard but going nowhere. In the game with movement code running, they look perfectly normal because the code moves the character at the right speed to match the leg motion.
In-place animation is how most commercial game animation packs are distributed, because it's more flexible — the game developer controls movement speed independently of the animation. MoCap Online delivers packs in both formats where possible, since different studios have different needs.
Pros and Cons: Root Motion
Advantages
- Exact animator intent: The character moves exactly as the animator designed — the weight shift, the arc of a jump, the drift in a dodge roll are all precisely as intended
- No code-animation mismatch: No sliding, because the animation's footfalls ARE the actual position updates. The feet don't slide because there's nothing to cause the mismatch
- Complex moves feel right: Attack combos, tumbles, dodge rolls, dramatic death falls — these are nearly impossible to replicate with game code driving movement and in-place animation playing on top. Root motion handles them naturally
- Cinematic quality: Cutscene animation almost always uses root motion because precise positional control is essential for character blocking and scene choreography
Disadvantages
- Limited runtime control: If the player holds a direction while a root motion attack plays, the character is committed to the path baked in the animation. This feels right for some games (Dark Souls-style committed attacks) and wrong for others (twitchy FPS)
- Complex to blend: Blending between two root motion clips requires careful handling of the root displacement to avoid teleporting characters
- Networked games are harder: Syncing root motion position across a network is significantly more complex than syncing a game-code-driven position
- Animation dependency: The animation artist must think about movement in world space, which constrains creative choices
Pros and Cons: In-Place
Advantages
- Full game code control: Move the character at exactly the speed the game demands, regardless of the animation. Easy to scale movement speed dynamically
- Network friendly: The character controller drives position — just sync the controller state across the network. The animation plays locally
- Blending simplicity: No root displacement to reconcile when blending between in-place clips. Blend trees and state machine blending are straightforward
- Responsive feel: Players can change direction instantly because game code responds to input immediately rather than waiting for a root-motion clip to complete
Disadvantages
- Foot sliding: The most notorious problem. If the animation's foot stride rate doesn't match the character's actual movement speed, feet visibly slide across the ground. This requires careful speed calibration or IK foot locking
- Complex moves look wrong: An in-place dodge roll where game code linearly translates the character while the animation plays looks mechanical and fake. Root motion would have the natural arc and weight
- Animation-to-speed matching: Achieving natural movement requires carefully matching your animation's foot cycle rate to movement speed — and if you want variable speeds, you need multiple speed variants or carefully parametrized blend trees
When to Use Root Motion
Cutscenes and Cinematics
Always root motion. Precise character positioning is the entire point. In Sequencer or Timeline, animation clips drive character movement exactly, which is essential for character interactions (handshakes, fights, embraces) and choreography relative to set pieces.
Attack and Combat Animations
Root motion attack animations feel dramatically more satisfying and realistic. A heavy sword swing that lunges the character forward slightly, a kick that drives the attacker backward from recoil, a spin attack that carries the character through an arc — these are all naturally root motion behaviors. Many Soulslike and action-RPG games use root motion for attacks specifically to create the sense of committed, weighty movement.
Special Moves and Abilities
Any dramatic, scripted movement that needs to look exactly right is a root motion candidate: a superhero landing, a wall-run sequence, a mounted combat vault, a finishing move. These are often treated as "locked" moments where player control is temporarily surrendered — root motion fits perfectly because the animation owns the character during the move.
Jumping and Falling
Mixed approach is common here. The horizontal arc of a jump is usually handled by game physics code (so the player can adjust trajectory). The vertical displacement may or may not be root motion. Landing is often root motion to ensure the animation's foot contact precisely matches the ground surface.
When to Use In-Place
Locomotion (Walk, Run, Sprint)
Continuous locomotion — the bread and butter of third-person games — is almost universally in-place animation driven by game code movement. The reason: players expect full directional control at all times. If you're running and change direction, the character should respond instantly, not complete a root motion arc first. Game-code-driven movement with in-place animation handles this naturally.
Networked Multiplayer
For multiplayer games with authoritative server movement, in-place animation is strongly preferred. The server drives character positions based on input; clients receive position updates and play the appropriate in-place animation locally. Root motion would require synchronizing the animation playback state across all clients to keep root displacement in sync — extremely complex and fragile.
Procedural Animation Systems
If you're using IK rigs, procedural foot placement, or runtime animation generation, in-place base animations are much easier to work with. The procedural system adjusts the character's pose dynamically; root motion would conflict with that system's position corrections.
Platformers and Physics-Driven Games
Games where physics or game code need to override character movement (walking on moving platforms, physics force responses, knockback) work better with in-place animation, since the game simulation drives position and the animation just has to look appropriate.
Enabling Root Motion in Unreal Engine
Asset Level
In the Animation Blueprint, open the AnimGraph. Find your state machine's locomotion state. In the properties for the locomotion blend tree or state, look for the root motion settings. However, the first step is at the clip level: open an animation asset, look in the Asset Details panel, and find "Root Motion" settings. Enable "Enable Root Motion". Also check "Root Motion Root Lock" (which frame of the animation the root locks to for blending purposes).
AnimBlueprint Level
In your AnimBlueprint's Class Defaults, find the "Root Motion Mode" setting. Options include:
- No Root Motion Extraction: All animation root motion is ignored — in-place behavior
- Ignore Root Motion: Root motion data is extracted and discarded
- Root Motion from Everything: All animations with root motion contribute their displacement
- Root Motion from Montages Only: Only Montage animations drive root motion — the recommended setting for most games, since it lets you use in-place locomotion but root motion attacks/abilities via Montages
Root Motion from Montages Only is the most common setup for action games: locomotion uses in-place, attacks use Montages with root motion enabled.
Enabling Root Motion in Unity
Animator Component
Select the GameObject with the Animator component. In the Inspector, find the "Apply Root Motion" checkbox. When checked, the Animator drives the character's position from root motion data in the playing clips. When unchecked, a CharacterController or Rigidbody (or your own script) drives position.
Per-Clip Settings
Select an animation clip in the Project window and open the Inspector. Under the "Rig" tab, verify the avatar is configured. Under the "Animation" tab, find "Root Transform Rotation," "Root Transform Position (Y)," and "Root Transform Position (XZ)" — these control which axes of root motion are baked into the clip or extracted as motion. "Based upon (at start)" vs "Based upon center of mass" affects how the root is calculated.
Scripted Root Motion
Unity allows overriding root motion programmatically via the OnAnimatorMove() callback. Implement this method on any script attached to the same GameObject as the Animator, and you can modify, scale, or completely replace the root motion that the Animator would apply. This is useful for scaling root motion speed to match game physics or applying gravity alongside root motion.
Common Problems and Fixes
Foot Sliding (In-Place)
Cause: Character movement speed doesn't match the animation's foot stride rate. Fix: Calibrate your animation playback speed to movement speed. In Unreal, use the Speed node to drive animation blend weights in a 1D blend tree where each speed breakpoint uses the correctly timed animation. In Unity, set the Animator Speed parameter to match movement speed. As a supplemental fix, use foot IK locking to pin the planted foot to the ground.
Position Drift (Root Motion)
Cause: Root motion displacement accumulates over time and the character ends up somewhere unintended. Fix: For looping animations, ensure the animation's root returns to exactly 0,0,0 at the end of the loop (this should be corrected in your DCC before export). For one-shot animations, accept the end position or reset the character to a known position after the animation completes.
Floating Feet During Blending
Cause: Two in-place animations with different stance heights are blending, creating a midpoint where feet lift off the ground. Fix: Ensure animations in a blend tree share the same reference stance. Add a foot IK pass in the AnimBlueprint (Two Bone IK nodes with ground detection) to pin feet to surfaces during blends.
Character Teleporting at Transition Start/End (Root Motion)
Cause: The starting root position of the incoming root motion clip doesn't match where the character is when the transition fires. Fix: Ensure root motion clips start with the root at origin. Use "Root Motion Root Lock" settings to control which pose the engine uses as the blend reference. Consider using a brief in-place transition animation before handing off to the root motion clip.
Root Motion Not Working (Unreal)
Most common cause: "Enable Root Motion" isn't checked on the animation asset, OR the AnimBlueprint's Root Motion Mode is set to "No Root Motion Extraction." Check both. Also verify the skeletal mesh's root bone is named "root" (or your engine's expected name) — misconfigured root bone names are a frequent hidden cause.
Blending Strategies: Getting the Best of Both
The Montage Pattern (Unreal)
Use "Root Motion from Montages Only" as your AnimBlueprint setting. Locomotion, idle, and secondary animations use in-place clips played through the state machine. Attack, dodge, and special move animations play through Montages with root motion enabled on the clips. This gives you responsive, code-controlled locomotion and precisely weighted attacks.
Blend Out to In-Place (Combat Transitions)
When a root motion combat animation ends, the character may be in a position offset from where they started. Blend back to the in-place locomotion state by designing the attack end pose to match the idle/walk in-place start pose closely, minimizing the visual discontinuity during the blend.
Root Motion Warping
Unreal Engine 5 includes Root Motion Warping — the ability to modify root motion displacement at runtime to hit specific world targets. This allows a root motion attack animation to always reach the target regardless of the exact distance. This technique has also been implemented in Unity via third-party tools and custom scripts.
Frequently Asked Questions
Do MoCap Online animations come as root motion or in-place?
MoCap Online provides animations that preserve the original root motion from the capture session. Depending on the pack and format, you may receive root motion variants, in-place variants, or both. FBX files typically preserve the original root motion, which you can then convert to in-place in your DCC or engine as needed. Check individual pack documentation for specifics.
Can I convert root motion to in-place after importing?
Yes. In Unreal, use the "Root Motion" settings in the animation asset to extract and discard root motion. In Unity, set the "Root Transform Position (XZ)" to "Bake into Pose" in the animation import settings — this removes horizontal root translation from the clip and bakes it as in-place motion. In Maya or MotionBuilder, you can bake the root motion to the center joint and zero out the root.
My character slides backward during blend. What's wrong?
If you're using in-place locomotion and the character slides backward when decelerating, the blend between run and idle is playing at a speed where the legs are still cycling but the character has already slowed down. Fix: Use a speed-blended deceleration animation designed to match the deceleration rate, or implement animation warping that speeds up/slows down the animation cycle to match actual velocity.
Should I use root motion for a top-down game?
Generally no. Top-down games (isometric RPGs, twin-stick shooters) typically need precise, responsive movement control that's hard to achieve with root motion. In-place animation with game-code movement is almost always better for top-down perspectives, where foot sliding is also less noticeable than in third-person close-up views.
Is root motion always more realistic?
Not necessarily. Root motion is more faithful to the original captured or animated performance, but "realistic" in game feel terms means responsive to player input. Many of the most critically praised "realistic-feeling" games (The Witcher 3, Ghost of Tsushima) use in-place locomotion because responsive character control was prioritized. Root motion and in-place are tools, not quality levels.
Build Your Animation System on Professional Foundations
Whether you choose root motion, in-place, or a hybrid approach, the quality of your underlying animation data sets the ceiling for what your locomotion system can achieve. Professional motion capture provides the naturalistic weight, timing, and rhythm that procedural or amateur animation struggles to replicate.
Browse the MoCap Online animation collection for locomotion, combat, and character animation packs designed for Unreal Engine, Unity, and Blender — including walk cycle packs calibrated for game locomotion systems. Give your animation state machine the data it deserves.
