Quick answer: Normalize rig scale and frame rate across every clip. Use additive layers for overlays (aim, damage, breathing) and blend trees for state changes (idle, walk, run). Check that all clips target the same skeleton with the same retargeting mode.

Your character walks fine. Runs fine. But transitioning from walk to run at 50% blend weight produces a hip twist that looks like a hula move. You export the clips again and it’s still there. The bug lives in the difference between the two clips — rig scale, frame rate, or root position — not in the clips themselves.

The Usual Suspects

1. Rig scale mismatch. One animator exported the run at scale 1.0; another exported the walk at scale 0.01 (meters vs. centimeters). When the Animator blends them, bone translations linearly interpolate between incompatible magnitudes. The skeleton shears. Re-export every clip from a single reference skeleton at the same scale.

2. Frame rate mismatch. A 24-FPS clip blended with a 60-FPS clip produces sub-frame timing artifacts. The interpolated frames on the 24-FPS clip duplicate for several engine frames, while the 60-FPS clip produces smooth motion. The asymmetry looks like stutter. Force all clips to the same frame rate on import.

3. Root motion vs. in-place. Blending a root-motion clip with an in-place clip at 50% weight moves the root half as much as expected. Decide per clip whether root motion is used and make blend partners consistent.

4. Retargeting mode. Mixing Humanoid and Generic clips on the same Animator produces warped pose blends. Pick one mode per character and convert everything to it.

Additive vs. Override

Use additive layers for overlays that should stack on the base pose:

Use override layers for full-body state changes. A run animation replaces the idle animation; it doesn’t stack on top of it.

Transition Curves

The default linear blend curve looks mechanical. Most transitions feel better with an ease-in-ease-out curve that spends less time in the middle where the blend is most visible. A 0.2-second transition with a cubic curve looks cleaner than a 0.5-second linear.

Debugging Tools

Unity: Animator window, enable Ctrl+H for live bone preview. The transition-in-progress shows both clips.

Unreal: Anim Graph debug view, enable Show Bones and Show Hierarchy. Values for each interpolated bone appear live.

Godot: Debugger → Misc → Skeleton debug. Shows bone positions in real time.

Record a transition at 60 FPS, step frame by frame, and identify the first frame where an artifact appears. That tells you whether the issue is mid-blend (rig/frame-rate) or at a boundary (root motion, transition duration).

“Animation blending is linear interpolation of quaternions and translations. It works perfectly when both ends are compatible and breaks ugly when they aren’t.”

Related Issues

For Unity-specific blend tree problems, see Unity blend tree stuck at one parameter. For root motion sliding, see Unity Mecanim root motion sliding.

Every blend artifact is a symptom of a difference between the two clips. Find the difference and the artifact disappears — don’t chase the symptom.