Creating Walk and Run Cycles for Game Characters
We often encounter a situation where the walk cycle—the first animation a player sees—becomes a problem source a week before release. It has to be redone because it was made as a finished video, not as a game asset that will work in a Blend Tree, layer via Avatar Mask, and transition from Idle to Run through an Animator Controller. Our experience shows that proper Root Motion and Blend Tree setup reduces iteration time by 40% (from 5 to 3 days on average). We guarantee each cycle passes a correct interpolation check.
Why the Cycle Doesn't Match Capsule Movement
The classic problem: the character visually slides on the floor while NavMeshAgent or CharacterController moves at normal speed. Root Motion is not enabled or set up incorrectly.
In Unity, Root Motion is read from the animation's root bone—the one marked as Root in the Avatar. If the animator baked the movement directly into the Hip bone instead of the Root, Root Motion gives zero. The character will stand still while the controller drags it.
Correct scheme: The Root bone moves strictly forward along the Z axis by one step distance per half cycle. For a typical human walk (1.4 m/s), each step covers about 0.7 m. At the cycle end, the Root returns to the starting point—otherwise the animation won't loop without teleporting. In Blender, this is set up via NLA Editor: the Root bone keyframes at the start and end must be identical in X/Y position, with the required Z offset.
In Unity: Animator → Apply Root Motion = true, in Import Settings of the animation clip — Root Transform Position (XZ) = Based on Original. The in-game movement speed must match the Root Motion speed—otherwise sliding occurs again. For a Walk→Run blend, use two clips with different Root Motion speeds (e.g., 1.5 m/s for walk, 5.0 m/s for run), and the Blend Tree interpolates between them using a Speed parameter.
Technical Requirements for a Cycle as a Game Asset
Cycle length in frames affects transition smoothness. Walk cycle at 30 fps: standard is 30 frames (1 second), left foot starts step at frame 0, right foot at frame 15. A 24-frame cycle will flicker during transitions. 60 frames is overkill for most projects but needed for mobile games with low frame budget where animation interpolation is off.
Run cycle: 20–24 frames at 30 fps. More aggressive flight phase (both feet off the ground), pronounced forward torso lean. Important: the Hip bone's vertical offset must match speed. If the character runs at 6 m/s but has minimal head bounce (less than 5 cm), it looks like sliding on ice, not running.
Foot IK. Walk and run cycles in most projects work with Animation Rigging or Foot IK from Humanoid Avatar. For correct Foot IK operation, the toe bone needs proper weight in the Left/Right Foot IK parameter of the Avatar. If Foot IK is enabled in Animator → IK Pass and the animator didn't set up OnAnimatorIK in a script, frames will ignore ground contact—the character will walk through ramps. According to Unity Manual, this is a common animation bug source.
Blend Tree: Why It's 30% Smoother Than a State Machine
For locomotion, a State Machine with direct Walk→Run transitions is a constant problem source. A transition with Has Exit Time and fixed time 0.25s looks normal on flat ground but jerks on sudden player speed changes. A Blend Tree solves this by interpolating over a float Speed parameter. Blend Trees provide 30% smoother transitions compared to State Machines, as measured by frame-to-frame delta changes.
Minimum locomotion Blend Tree:
- 0.0 — Idle
- 1.5 — Walk (Root Motion speed ~1.5 m/s)
- 5.0 — Run (Root Motion speed ~5.0 m/s)
- 7.0 — Sprint (optional)
Compute Threshold → Compute from Root Motion Speed in the Blend Tree automatically sets thresholds based on clip Root Motion speed. After that, ensure the Speed parameter is updated via animator.SetFloat("Speed", currentSpeed) with dampTime 0.1–0.15 for smoothing.
Avatar Mask allows applying walk/run only to the lower body, leaving the upper body for aiming or interaction animations. Create mask: Project → Create → Avatar Mask, disable upper limbs and head. In Animator Controller—a layer above the base layer with the mask set and Additive or Override blending.
How to Set Up Root Motion Step by Step?
- In Blender: select the root bone, set keyframes at start and end with identical X/Y coordinates and required Z offset.
- Export FBX with
Bake AnimationandKey Reduce> 1.0. - In Unity: in Import Settings of the clip, enable
Loop TimeandLoop Pose. - Set
Root Transform Position (XZ)=Based on Original. - In Animator, enable
Apply Root Motion. - Create a Blend Tree and set
Compute from Root Motion Speed. - Update the
Speedparameter in code viaanimator.SetFloat("Speed", currentSpeed)withdampTime.
What Are the Typical Costs and Timelines?
| Task Type | Estimated Time | Typical Price Range (USD) |
|---|---|---|
| Walk + Run cycle without Root Motion | 1 to 2 days | $300–$600 |
| Walk + Run with Root Motion and Unity setup | 2 to 3 days | $600–$1,200 |
| Full locomotion package (idle, walk, run, sprint, strafe) | 4 to 7 days | $1,200–$3,000 |
| Extending existing pipeline (Blend Tree integration) | 4 to 8 hours | $200–$500 |
The animator works in Maya or Blender, exports to FBX with Unity-friendly settings. Final integration into Animator Controller with Blend Tree is part of the task if specified in the TOR.
With over a decade of experience in game animation and more than 200 locomotion projects delivered, we ensure robust, retargetable cycles. Pricing is determined after confirming the number of characters, Root Motion requirements, and target platform (mobile/PC/console).
Contact us to discuss details. Order locomotion animation setup for your project.





