This comes up constantly when I talk to game animators, and I think the default answer, "just use root motion", glosses over some real trade-offs that bite you later in production.
The Core Problem
Root motion looks great in isolation. The animator controls the displacement, the feet don't slide, the whole thing reads naturally. But once you're in a networked game, or you need the character to respond to player input mid-animation, or you're blending between states dynamically, root motion becomes a liability. Your code is now fighting the animation clip for control of the character's position.
What I've Actually Shipped
On a recent third-person action project we started with root motion for everything: locomotion, attacks, rolls. By beta we'd stripped it out of about 60% of clips because:
- Input buffering felt sluggish. The root displacement committed you to a path before the next input could interrupt
- Networked reconciliation was a nightmare when root motion disagreed with server-authoritative position
- Procedural IK on slopes and stairs fought the baked-in displacement constantly
We ended up with a hybrid: root motion only for committed, non-interruptible actions (heavy attacks, knockbacks, specific traversal moves), and in-place + code-driven movement for everything in the locomotion graph.
The In-Place Toolbox
In-place doesn't mean foot sliding. You need:
// Stride warping to match animation foot speed to actual velocity
// Lean blending driven by acceleration delta
// IK passes for ground contact
// Motion matching to pick clips that already approximate your velocity
Motion matching (Oz in Unity, the built-in solver in UE5's Chooser + PoseSearch) makes in-place locomotion feel incredibly natural because you're selecting clips based on current trajectory rather than blending between arbitrary states.
Curious whether others have settled on a consistent rule for when root motion earns its place in a clip vs. when you're better off handling displacement in code. Especially interested in how people handle this for melee combat where the "commit to the attack" feeling is so tied to that root displacement.