RiggyTry it

Idle animation timing, measured on 127 official Spine animations

An idle is the animation a character plays most of the time, and the easiest one to get wrong: too much motion reads as nervous, too little as a still image. Instead of guessing, we counted what the animators of the official Spine examples actually did.

What was measured

The sample is every JSON export in the examples/ folder of the official spine-runtimes repository, branch 4.2: 26 skeletons, 127 animations and about 18,000 keys — spineboy, raptor, owl, goblins, hero, windmill and the rest. For each animation we took the time and value of every key, the curve on it, the range of values per timeline, whether the cycle closes, and the phase between paired bones. Bone roles (leg, arm, torso, head, secondary) were assigned from bone names, so the numbers below are orders of magnitude, not a verdict on one skeleton.

The grid is 30 frames per second

98% of all keys in the examples sit exactly on multiples of 1/30 of a second; only 39% land on a 24 fps grid. The one exception is the coin, where 38% of keys are off the grid because time there follows the period of the spin rather than frames. The runtime accepts any fractional time, but an animation built on the grid lines up with any other built the same way — phases match and events fall on a frame. Below, a “frame” is 1/30 s.

How long an idle lasts

Idles in the sample run from 30 to 200 frames, that is 1 to 6.7 seconds: hero/idle is 30 frames, spineboy/idle 50, owl/idle 200. An idle is noticeably longer than a step of the same character — spineboy breathes over 50 frames and walks a cycle in 30.

Breathing does not have to be a multiple of the walk cycle, and it is better when it is not: two loops of different length never line up into one visible beat.

Few keys, and most bones stand still

The median rotation timeline of an idle has 3.0 keys per second (2.4 to 4.3 between the quartiles) — 3 to 5 keys over 50 frames, so the leading bone gets a key every 10 to 17 frames. A run is 11.2 keys per second, a walk 5.5.

An idle also moves less of the rig: about 31% of the bones take part, against about 54% in a walk or a run. Two bones out of three stand still, and that is what makes rest look like rest. Animating the whole rig is the first sign of a generated idle.

How far things move at rest

Range of rotation per timeline at rest. Take the median as the starting point and the upper quartile as “energetic”:

Rotation range in idle animations, degrees
Bone roleMedian, °Upper quartile, °
Leg (thigh, shin, foot)1429
Arm (shoulder, forearm, hand)1235
Torso (spine, chest)4.68
Head, neck4.112
Secondary (hair, tail, cloth)8.517
Translation range in idle animations, pixels
Bone roleMedian, pxUpper quartile, px
Hips6.916
Torso5.48
Head2.911

Rest is built from micro-motion: single degrees and single pixels. The head is the calmest part of a moving body (8.9° in a walk against 79° for a leg), but at rest the balance flips — the body freezes and only the light parts swing. In spineboy/idle the hair moves through 16.7° while the torso moves through 3.8°.

Loops close, and a key at zero holds the pose

85.5% of all timelines in the sample end on the values they start with, and inside looping animations practically all of them do. An idle is a loop: its last key repeats the first, or the seam shows as a jerk every cycle.

86% of timelines have a key at time zero. Without it a bone keeps the pose of the previous animation while the two are mixed. A timeline of a single key is legitimate too — the sample has 872 of them: it says “this bone takes part and holds this value”.

Curves: fewer than you would think

53.2% of keys are linear, 43.1% Bezier and 3.7% stepped. Normalized to the segment between two keys, the median Bezier is (0.31, 0.00, 0.70, 1.00) — an S-curve that eases out of one key and into the next. The editor preset (0.25, 0, 0.75, 1) alone accounts for 17.7% of Bezier uses.

Ease goes on heavy parts — torso, head, arms — and stays off fast ones. In an idle that means the breathing torso eases, while a key every few frames on a flicker does not need a curve at all. How the curve is written in the file is covered in Spine 4.2 Bezier curves in JSON, explained, and the curve converter turns a CSS easing into that array.

No two bones share a schedule

57% of timelines have a set of key times of their own. The keys gather at the start, the middle and the end of a cycle, and are spread almost evenly everywhere else — there is no “key every quarter” grid. The seven leaves of owl/idle share a period of 20 frames but sit at three phases, shifted by 0, 5 and 10 frames; the foliage of windmill keeps one range while its period wanders by 10 to 15%. Keys on the same frames for every bone make the whole figure stop and start at once, and that pulse is the clearest mark of machine animation.

Where these numbers go

Riggy's AI reads these rules as a reference before it sets keys, instead of guessing lengths and ranges. The examples show what comes out: rigs animated from one sentence, playing in the official runtime.

Get an idle from your own art

Sign up, drop a layered PSD and say what should move.

Animate your own PSD