Quick answer: Enable Loop Time on the AnimationClip. Check that no outgoing transition has Has Exit Time firing before 1.0 and looping back into the same state.
An idle animation plays a 2-second breathing cycle. Halfway through, the character pose snaps back to the first frame. The motion is supposed to loop seamlessly; instead it loops at the half-second mark visibly.
Two Possible Causes
1. Loop Time disabled on the clip: the state plays once, hits the end, restarts from 0. The visual is a hard cut. Or the state simply stops at the end pose.
2. Outgoing transition cuts the loop: a transition with Has Exit Time and Exit Time = 0.5 fires at half the clip; if the transition target is the same state (intentionally or via AnyState), you restart from 0 mid-cycle.
Fix 1: Enable Loop Time
- Select the AnimationClip asset in Project view.
- In the Inspector, scroll to Animation section.
- Check Loop Time.
- (Optional) Check Loop Pose to compensate for slight pose differences at start/end.
- Apply.
Fix 2: Audit Transitions
Open the Animator window. Click the state. Inspector shows transitions out. For each:
- Has Exit Time: if true, the transition fires at the specified normalized time even without other conditions. For a loop that should run continuously, transitions should fire on conditions (e.g., Speed parameter), not exit time.
- AnyState transitions: a global transition with no Can Transition To Self check fires repeatedly even when you’re already in the state. Check Can Transition To Self = false on AnyState transitions.
Fix 3: Check Speed
The state has a Speed multiplier (default 1). If something writes Speed = 0, the animation freezes; if >1, it plays faster than the clip’s authored length, which can interact with exit time in surprising ways. Leave at 1 unless intentionally varying.
Verifying
Play the scene; watch the idle state. The animation should loop seamlessly for as long as the state is active. Use the Animator window to confirm Normalized Time wraps from 1 back to 0 without leaving the state.
“Loop Time on the clip + clean transitions. Mecanim looping is just two checkboxes when configured right.”
Loop Pose is underused — enables it to smooth small pose differences between first and last frames for truly seamless cycles.