Browse the knowledge base
5x · Animals and creatures
Skills
- Take any Aseprite request end to end
- Plan a sprite before drawing it
- Design it first — concept sheet and storyboard
- Create a sprite document
- Choose, build and repair a palette
- Draw a sprite
- Shade a sprite
- Rig a character for animation
- Animate a cycle
- Build a tileset
- Review a sprite before calling it done
- Fix or iterate on existing art
- Export game-ready assets
- Submit a finished sprite to the community gallery
Rule
rules://42-walk-and-run Walk and run
A walk that skips the pass pose reads as sliding; a run with no airborne frame
reads as a fast walk; a cycle whose foot speed does not match the engine's
ground speed skates. Without per-frame numbers an agent draws "legs apart, legs
together" and every character ends up with the same limp. This file gives the
poses, the pixel offsets per frame, the timings and the checks for side-view
humanoids. Quadrupeds are rules://51-animal-gaits; top-down is
rules://47-top-down-animation; timing theory is rules://40-timing-and-spacing.
On this page
Rules
#- A step is four poses: contact, down, pass, up. Two steps (near leg, then far leg) are one 8-frame cycle. Draw the two contacts and the pass first, then down and up, then check the filmstrip. Contact and pass fix stride and speed; the rest is built around them (Williams, Blair).
- Contact is the widest pose. Front heel touching with the leg nearly straight, back toe still pushing, arms at their widest, the arm opposite each leg. Stride (front heel to back toe) is about a third of figure height: 10 px at 30 px (Muybridge's frames give 10–12 at 32).
- Weight lives on
down. The front knee flexes and the hip is at its lowest one frame after contact. A walk with nodownfloats. Hold contact up to 25 ms longer than the other frames (rule 7 limits how far). passis the frame people omit. Support leg straight and vertical, swing leg tucked with its foot at the support knee, arms hanging and crossing, body at full height. Never replace it with "legs together".- Bob is small. Total hip travel on a walk: 1 px at 16 px, 2 px at 24–32,
3 px at 64. Shape it as a triangle (sharp at pass, flat at down), not a
sine. Decision: sources disagree on which pose is lowest (Williams:
down; Slynyrd: contact; Muybridge: both). Contact drops the hip ~1 px because the straight legs are spread (derived), anddowndrops it one more; ship that. Heavy or macho walk doubles the bob, a glide or sneak is 0–1 px. - Arms oppose legs. Near leg forward, near arm back. Walk swing ±25–30°
with 10–15° elbow bend (hand travel 3–4 px at 30 px); run swing ±50° with a
90° elbow and closed fists. Arms are widest at contact (Williams says widest
at
downin a naturalistic walk; for sprites contact reads better and he concedes it). - The foot on the ground goes backwards at engine speed. The planted foot's x-shift per frame ÷ frame time must equal the engine's px/s, or the feet skate. Walk table: near foot +5, +3, 0, −3 = 2.5 px per frame (± rounding) ≈ 21 px/s at 115–120 ms. Run table: +3, −1, −5 = 4 px per 80 ms = 50 px/s. Keep each duration within ±25 ms of the cycle mean so slide stays under half a pixel; beyond that, space the foot by milliseconds. Tell the user the speed.
- Feet are never level in the air. Heel strike: toe 1 px above heel. Down: flat. Toe-off: heel 2 px up, toe on the ground. Swinging foot: toe down just after toe-off, tucked and horizontal at pass, toe up as it reaches.
- Walk = one foot always down; run = a flight phase. Walk double-support is ~20 % of the cycle. A run has 25–40 % flight: at least 2 of 8 frames with no foot touching, lowest foot ≥ 2 px (table uses 4–5) above the ground line. Williams allows 2–3 airborne drawings in a cartoon run and 1 in a naturalistic one; ship 2 of 8.
- Run contact is under the body. Foot 1–3 px ahead of the hip with a bent
knee, not the 5 px reach of a walk. Back foot has already left the ground.
Lean 10–15° (hip-to-shoulder shifts ~2 px), head 1 px ahead, fists up, hair
and cloth stream back (
rules://45-secondary-motion). Hip bob is 3–4 px at 30 px (Williams: never more than half a head). - Frame-count ladder. 8 frames is the fluid optimum; more is taste. Walk:
8 → 6 by deleting
up, → 4 by deletingdowntoo (contact, pass ×2). Run: 8 → 6 by deletingdown, → 4 by deletingflighttoo. Keep the cycle's contacts; delete the in-betweens first (Slynyrd PB8/PB50). - The loop closes. Frame 5–8 are frames 1–4 with near and far limbs swapped, not flipped; flipping reverses facing and light. Frame 1 must be a plausible successor to frame 8, and the head must not drift.
- Timing is part of the pose set. Walk 8 frames: 100–140 ms (cycle 0.8–1 s; Muybridge's walker is about 1 s). Run 8 frames: 70–100 ms (cycle 0.55–0.8 s). A run cycle is roughly half the duration of a walk with the same frame count. One cycle at several speeds is cheaper than new drawings.
- Keep volume. Thigh, shin and arm lengths and thickness are constant in every frame; only foreshortening may shorten them. Drift shows as a limb "growing" by frame five.
- Personality: at most three tweaks to the base cycle — lean, head delay, arm one frame late, wider bob, dragged toe. Change a little, the whole walk changes (Williams). Never ship a "silly" walk as the default.
By size
#| Size | Frames (walk / run) | Hip bob walk / run | Stride (± hip) | Arm swing | Notes |
|---|---|---|---|---|---|
| 8 px | 2 / 2 | 0 / 1 | legs swap, 1 px | none | alternate which leg is 1 px longer; run = same frames at 60 ms |
| 16 px | 4 / 4–6 | 1 / 1–2 | ±3 | 2 px, no elbow | step, stand, step, stand (Pokémon, Stardew 133–200 ms); heel lift ≤ 1; run = lean + faster timing |
| 24 px | 6–8 / 6–8 | 2 / 2–3 | ±4 | 3 px | walk-24-keys, run-24-keys |
| 32 px | 6–8 / 6–8 | 2 / 3–4 | ±5 | 3–4 px | walk-30-keys, run-30-keys |
| 64 px | 8–12 / 8 | 3 / 5–6 | ±10 | 8 px | heel/toe roll visible, hair/cloth lag, sub-pixel for easing (rules://46-subpixel-animation) |
The 8 and 16 px rows come from shipped 4-step loops and the 1 px bob figures; 24 and 64 px are scaled from the 30 px table (derived).
Pixel budget at 30 px: head 7 (+1 neck), torso 8 (6–7 wide), leg 12 hip to ankle (thigh 4 px wide, shin 3), arm 5 + 4.5 with a 2 px fist, boot 5×2. At 24 px thigh 3, shin 2, leg 10. Limbs under 2 px wide flicker in motion.
8-frame walk, 30 px figure, facing right
#x = columns from the hip column (+ forward). heel↑ = rows between the
ground and the heel. Arm = shoulder swing from vertical (+ forward) / elbow bend.
Frames 5–8 repeat 1–4 with near and far limbs swapped. Standing hip = 15 (the
pass pose); hip dy is measured from it.
| # | Pose | Hip dy | Lean | Near foot (x, heel↑, shape) | Far foot | Near arm | Far arm | ms |
|---|---|---|---|---|---|---|---|---|
| 1 | contact | −1 | 3° | +5, 0, heel strike | −5, 2, toe-off | −34° / 14° | +34° / 14° | 140 |
| 2 | down | −2 | 3° | +3, 0, flat | −3, 3, toe drags | −22° / 12° | +22° / 12° | 100 |
| 3 | pass | 0 | 0° | 0, 0, flat (leg straight) | +1, 4, tucked | 0° / 10° | 0° / 10° | 100 |
| 4 | up | −1 | 2° | −3, 2, toe-off | +4, 3, reaching, toe up | +26° / 14° | −26° / 14° | 120 |
| 5–8 | mirror | far-foot values of 1–4 | near-foot values | swapped | swapped | same |
Total 920 ms. Head follows the torso; at ≥ 30 px let the head land one frame
after the hip (hip −2 on down, head −1) so it does not bob as a block.
6-frame walk: frames 1, 2, 3, 5, 6, 7 at 160 / 120 / 140 ms (840 ms). 4-frame walk: frames 1, 3, 5, 7 at 240 / 220 / 240 / 220 ms; the pass frame carries a 1 px head rise, nothing else. At 16 px this is step–stand–step–stand.
8-frame run, 30 px figure, facing right
#Lean 12° on every frame. Standing hip = 15; flight reaches 16 because the legs are fully extended. Arms are bent 90° and closed.
| # | Pose | Hip dy | Near foot | Far foot | Near arm | Far arm | ms |
|---|---|---|---|---|---|---|---|
| 1 | contact | −1 | +3, 0, heel strike, knee bent | −6, 5, trailing | −55° / 95° | +50° / 90° | 80 |
| 2 | down | −2 | −1, 0, flat, knee most bent | −3, 7, heel up, knee swinging | −40° / 90° | +35° / 90° | 80 |
| 3 | push | 0 | −5, 2, toe-off, leg extended | +2, 6, thigh driving, shin folded | −20° / 90° | +20° / 90° | 70 |
| 4 | flight | +1 | −8, 5, trailing, toe down | +1, 5, knee high, shin folded | +40° / 100° | −50° / 90° | 90 |
| 5–8 | mirror | far-foot values of 1–4 | near-foot values | swapped | swapped | same |
Total 640 ms. Frames 4 and 8 have both feet off the ground; hold them 10–20 ms longer for hang time. 6-frame run: frames 1, 3, 4, 5, 7, 8 at 100 / 90 / 110 ms (600 ms). 4-frame jog: frames 1, 3, 5, 7 at 120 / 100 ms; no flight, so call it a jog.
Templates
#Each block is a strip of 4 equal-width frames, near leg first; cut at multiples
of the frame width (20, 22, 17 and 19 columns for walk-30-keys, run-30-keys,
walk-24-keys, run-24-keys). The ground row is the same in every frame and
every frame shares one rig: thigh 4 / shin 3 wide (24 px: 3 / 2), hip-to-ankle
12 px (24 px: 10), identical in all four poses. Head top drops 2 px from pass
to down; in the walk the boots never leave the last row, in the run only the
flight frame lifts them. Far limbs use the shadow glyphs
and the near leg is outlined against the far one, so the far leg stays distinct
in pass and up.
walk-30-keys — contact, down, pass, up at 30 px (20 columns, 33 rows). Start
here for a 3–4 head side-view character; recolour roles, keep the offsets.
walk-30-keys · 80×33OoutlineSskin-lightsskin-shadowCtunic-lightctunic-shadowAsleeve-lightasleeve-shadowPpants-lightppants-shadowBboot-lightbboot-shadowHhair
Grid source
O = outline #2b1d2e
S = skin-light #f2b48a
s = skin-shadow #c47a5a
C = tunic-light #d9604a
c = tunic-shadow #9c3a3c
A = sleeve-light #e8806a
a = sleeve-shadow #b24c47
P = pants-light #4a5b8c
p = pants-shadow #34405f
B = boot-light #9a6a3f
b = boot-shadow #6a4529
H = hair #7a4a2a
---
................................................................................
................................................OOOOO...........................
........OOOOO..................................OHHHHHO..............OOOOO.......
.......OHHHHHO..............OOOOO.............OHHHHHHHO............OHHHHHO......
......OHHHHHHHO............OHHHHHO............OHHHHSSSO...........OHHHHHHHO.....
......OHHHHSSSO...........OHHHHHHHO...........OHHHSSOSO...........OHHHHSSSO.....
......OHHHSSOSO...........OHHHHSSSO...........OHHHSSSSO...........OHHHSSOSO.....
......OHHHSSSSO...........OHHHSSOSO............OHHSSSSO...........OHHHSSSSO.....
.......OHHSSSSO...........OHHHSSSSO..........OOOOHSSSsO............OHHSSSSO.....
.....OOOOHSSSsO............OHHSSSSO.........OCCCCOssOO...........OOOOHSSSsO.....
....OCCCCOssOO...........OOOOHSSSsO.........OCCCACOOO...........OCCCCOssOO......
....OCCCACOOO...........OCCCCOssOO..........OCCAAaCcO...........OCCCACOOO.......
....OCCAAaCcO...........OCCCACOOO...........OCCAAaCcO...........OCCAAaCcO.......
....OCAAaCCcO...........OCCAAaCcO............OCAAaCcO...........OCCAAaCcO.......
....OAAaCCCcO...........OCCAAaCcO............OCAAaCcO............OCCAAacO.......
....OSSaCCCcsO...........OAAaCCcO............OCASSCcO...........OaCCCASSO.......
...OASSCCCCcssO..........OAAaCCcO............OCASSCcOO..........OaCCCASSSO......
...OSSSCCCCcsssO........OASSCCCcO............OCCSSCcppO..........OCCCCASSSOO....
...OSSCCCCCcOsssO.......OASSCCCcOO...........OccSSScpppO........OsCCCCCcSSppO...
...OSScccccpOOssO........OSSCCCcpO............OPPSSOppppO.......OccccccpSSSppO..
...OSSOOPPPPpOOO........OSSScccPPpO...........OPPSSpOpppO.......OssOPPPPpSSppO..
....OOOpOPPPpO..........OSSOOPPPPPpO...........OPPPpOppO........OssOOPPPpOppO...
.......OOPPPPpO.........OSSOOOPPPPPpO..........OPPPpOpO..........OO.OPPPPpOpO...
.......OpOPPPpO..........OO.OOOOPPPpO..........OPPPpOO..............OOPPPpOpO...
.....OOpppOPPpO...........OOpppOPPpO...........OPPpOpO.............OPPPPpOpO....
....OpppppOPPpO..........OpppppOPPpO...........OPPpOOOO...........OPPPpOOppOOO..
...OpppppOOPPpO.........OpppppOPPpO............OPPpObbbO.........OPPPpOOpppbbbO.
..OppppOO..OPPpO........ObbpOOOPPpO............OPPpObbbO........OPPpOO.ObbbbbbO.
..ObbOOO....OPPpOOO.....ObbbOOOPPpO............OPPpOOOO.........OBBOOO.ObbbbOO..
..ObbbbbO...OPPBBBBO.....ObbbbOPPpOOO..........OPPpOOO..........ObBBBBO.OOOO....
...ObbbbbO..OBBBbbbO......ObbbOBBBBBBO.........OBBBBBBO..........ObbbBBO........
....OOObbO..ObbbOOO........OObObbbbbbO.........ObbbbbbO...........OOObbO........
.......OO....OOO.............OOOOOOOO...........OOOOOO...............OO.........run-30-keys — contact, down, push, flight. Note the lean, the fists and the
two airborne feet in the last frame. Frame width 22, 34 rows; the flight frame
keeps both boots ≥ 2 rows above the ground row.
run-30-keys · 88×34OoutlineSskin-lightsskin-shadowCtunic-lightctunic-shadowAsleeve-lightasleeve-shadowPpants-lightppants-shadowBboot-lightbboot-shadowHhair
Grid source
O = outline #2b1d2e
S = skin-light #f2b48a
s = skin-shadow #c47a5a
C = tunic-light #d9604a
c = tunic-shadow #9c3a3c
A = sleeve-light #e8806a
a = sleeve-shadow #b24c47
P = pants-light #4a5b8c
p = pants-shadow #34405f
B = boot-light #9a6a3f
b = boot-shadow #6a4529
H = hair #7a4a2a
---
........................................................................................
.............................................................................OOOOO......
.......................................................OOOOO................OHHHHHO.....
...........OOOOO......................................OHHHHHO..............OHHHHHHHO....
..........OHHHHHO................OOOOO...............OHHHHHHHO.............OHHHHSSSO....
.........OHHHHHHHO..............OHHHHHO..............OHHHHSSSO.............OHHHSSOSO....
.........OHHHHSSSO.............OHHHHHHHO.............OHHHSSOSO.............OHHHSSSSO....
.........OHHHSSOSO.............OHHHHSSSO.............OHHHSSSSO..............OHHSSSSO....
.........OHHHSSSSO.............OHHHSSOSO..............OHHSSSSO............OOOOHSSSsO....
..........OHHSSSSO.............OHHHSSSSO............OOOOHSSSsO...........OCCCCOssOOOO...
........OOOOHSSSsO..............OHHSSSSO...........OCCCCOssOO...........OCCCCACOO.OSSO..
.......OCCCCOssOO.OO..........OOOOHSSSsO..........OCCCCACOO.............OCCCAAacOOSSSO..
......OCCCCACOO..OssO........OCCCCOssOO...........OCCCAAacO.............OCCCCAAaOOSSO...
......OCCCAAacO.OsssO.......OCCCCACOO.............OCCCAAacO.OOO.........OCCCCAAaOSSSO...
......OCAAAaCcaOsssO........OCCCAAacO...OO........OCCAAacaOOsssO.......OaCCCCCAASSSO....
......OSSAaCcaasssO.........OCCAAaCcOOOOssO.......OCCAAacaOssssO........OCCCCCcASSO.....
.....OASSSCCcaassO..........OCCAAacaOsssssO.......OCASSSSOOOsOO.........OCCCCCcOAO......
......OASSSCcOOaO...........OCSSaCcasssssO........OCASSSSSSSpO.........OCCCCCcOppO......
......OCCSSScO.O............OASSSCcassOOO........OCCCACcSSSSppO........OccccccOpppO.....
.....OCCCCSSpO..............OCASSScOaO...........OccccccOpppppO.........OPPPPpOppppO....
.....OccccccPpO............OCCCCSSSOO.............OOPPPPpOpppO..........OPPPpOpppppO....
......OOpOPPPpO............OcccccSSOO...............OPPPpOppO...........OPPPpOppppO.....
........OOPPPPpO............OpOPPPPpO...............OPPPpOpO..........OOOPPPpOpppO......
....OOOOOpOPPPPpO..........OpppOPPPpOO..............OPPPpOpO........OOPPPPPPpOppO.......
...OpppppppOPPPpO..........ObbbOPPPPpOO............OOPPPpOOOO......OPPPPPPPpOpppO.......
..OppppppppOPPpO...........ObbbbOPPPpOO...........OPPPPpObbbbO....OPPPPPpOOOpppOOO......
..ObbppppppOPPpO............OObOPPPpOO...........OPPPpOObbbbbO....OBBPOOO..ObbbbbbO.....
..ObbbOOOOOOPPpO..............OOPPpOO...........OPPPpO.OOOOOO.....ObBBOO...ObbbbbbO.....
...ObbbbO..OPPpO..............OPPpO............OPPpOO..............ObBBBO...OOOOOO......
....ObbbbO.OPPpOOO............OPPpO............OBBOOO...............ObbBBO..............
.....OObbO.OPPBBBBO..........OPPpOOO...........ObBBBBO...............OObbO..............
.......OO..OBBBbbbO..........OBBBBBBO...........ObbbBBO................OO...............
...........ObbbOOO...........ObbbbbbO............OOObbO.................................
............OOO...............OOOOOO................OO..................................walk-24-keys — the same poses at 24 px: thigh 3 wide, shin 2, bob 2 px, frame
width 17, 27 rows. Standing hip = 12 (hip rows 11, 10, 12, 11).
walk-24-keys · 68×27OoutlineSskin-lightsskin-shadowCtunic-lightctunic-shadowAsleeve-lightasleeve-shadowPpants-lightppants-shadowBboot-lightbboot-shadowHhair
Grid source
O = outline #2b1d2e
S = skin-light #f2b48a
s = skin-shadow #c47a5a
C = tunic-light #d9604a
c = tunic-shadow #9c3a3c
A = sleeve-light #e8806a
a = sleeve-shadow #b24c47
P = pants-light #4a5b8c
p = pants-shadow #34405f
B = boot-light #9a6a3f
b = boot-shadow #6a4529
H = hair #7a4a2a
---
....................................................................
.........................................OOOO.......................
.......OOOO.............................OHHHHO............OOOO......
......OHHHHO............OOOO...........OHHHHHHO..........OHHHHO.....
.....OHHHHHHO..........OHHHHO..........OHHHSSSO.........OHHHHHHO....
.....OHHHSSSO.........OHHHHHHO.........OHHSSOSO.........OHHHSSSO....
.....OHHSSOSO.........OHHHSSSO..........OHSSSSO.........OHHSSOSO....
......OHSSSSO.........OHHSSOSO........OOOOHSSsO..........OHSSSSO....
.....OOOHSSsO..........OHSSSSO.......OCCCCOssO..........OOOHSSsO....
....OCCCOssO..........OOOHSSsO.......OCCCAAOO..........OCCCOssO.....
....OCCAAOOO.........OCCCOssO........OCCCAAcO..........OCCAAOOO.....
....OCAAaCcO.........OCCAAOOO........OCCCAAcO..........OCCAAacO.....
....OCAACCcO.........OCCAACcO.........OCCAAcO..........OCCCAAcO.....
....OSSaCcsO.........OCAAaCcO.........OCCSScO..........OCCCAAOOOO...
....OSSCCcssO........OCAACcO..........OCCSScpOOO.......OCCCASSpppO..
...OSSSCCcOssO.......OCSSCcO..........OccSSSOpppO......OCCCCSSSppO..
...OSSccccpOOsO......OCSSCcOOO.........OOPSSOOppO......OcccccSSSpO..
...OSSOOPPPPpOO......OSSSccPPpO..........OSSPpOO.......OsOPPpOSSpO..
...OSSOpOOPPpO.......OSSOOPPPpO...........OPPpO........OssOPPPpOO...
....OOOpppOPPO.......OSSppOPPpO...........OPPpO.........OOPPPPpOO...
...OppppppOPPpO.......OpppOPPpO...........OPPOO.........OPPPPpOpOO..
...OppppOpOOPPO......ObbOOOPPO...........OPPpObO........OPPOOObbbbO.
..ObbOOO.O.OPPOO.....ObbbOOPPO...........OPPObbO.......OBBOOObbbbbO.
..ObbbbO...OPBBBO.....ObbbOPPOO..........OPPOOO........ObBBBOOOOOO..
...ObbbbO.OBBBbbO......ObOBBBBBO........OBBBBBO.........ObbBBO......
....OObbO.ObbbOO........OObbbbbO........ObbbbbO..........OObbO......
......OO...OOO...........OOOOOO..........OOOOO.............OO.......run-24-keys — 24 px run, shorter arms, same four poses and flight frame
(both boots ≥ 2 rows up); frame width 19, 28 rows.
run-24-keys · 76×28OoutlineSskin-lightsskin-shadowCtunic-lightctunic-shadowAsleeve-lightasleeve-shadowPpants-lightppants-shadowBboot-lightbboot-shadowHhair
Grid source
O = outline #2b1d2e
S = skin-light #f2b48a
s = skin-shadow #c47a5a
C = tunic-light #d9604a
c = tunic-shadow #9c3a3c
A = sleeve-light #e8806a
a = sleeve-shadow #b24c47
P = pants-light #4a5b8c
p = pants-shadow #34405f
B = boot-light #9a6a3f
b = boot-shadow #6a4529
H = hair #7a4a2a
---
............................................................................
..................................................................OOOO......
...............................................OOOO..............OHHHHO.....
.........OOOO.................................OHHHHO............OHHHHHHO....
........OHHHHO..............OOOO.............OHHHHHHO...........OHHHSSSO....
.......OHHHHHHO............OHHHHO............OHHHSSSO...........OHHSSOSO....
.......OHHHSSSO...........OHHHHHHO...........OHHSSOSO............OHSSSSO....
.......OHHSSOSO...........OHHHSSSO............OHSSSSO...........OOOHSSsO....
........OHSSSSO...........OHHSSOSO...........OOOHSSsO..........OCCCOssOOO...
.......OOOHSSsO............OHSSSSO..........OCCCOssO...........OCCAAOOOSSO..
......OCCCOssOOO..........OOOHSSsO..........OCCAAOOO..........OCCCAAaOSSSO..
......OCCAAOOOssO........OCCCOssO..........OCCCAAcO...........OCCCCAAaSSO...
.....OCAAAacOsssO........OCCAAOOOOO........OCCAAacOOOO........OCCCCcASSSO...
.....OSSAaCcassO........OCCAAacOOssO.......OCCAAcppppsO.......OCCCCcOSSO....
.....OSSSCcasssO........OCAAaCcssssO.......OCCSSSppppsO.......OCCCCcpOOO....
.....OCSSCcOssO.........OSSaCcssssO........OCCSSSSSppO........OcccccppppO...
.....OCSSScOOO..........OSSSScssOO.........OccccSSSpO..........OPPpOppppO...
.....OccSScpOO..........OCSSSSOO............OPPpOpppO..........OPPpOOppO....
....OOOpOPPPPpO.........OcccSSO..............OPPpOpO........OOOPPPpOpppO....
...OpppppOOPPpO.........ObbOPPpOO...........OOPPpOpOO......OPPPPPPpOppO.....
...OpppppppOPPO.........ObbbOPPPpO.........OPPPPpObbbO.....OPPPpOPOppOO.....
..ObbOOpppOPPpO..........ObbOOPPpO........OPPPPpObbbbO....OBBOOO.ObbbbbO....
..ObbbOOOpOPPO............OOPPPpO.........OPPOOOOOOOO.....ObBBO..ObbbbbO....
...ObbbO.OOPPOO...........OPPPpO.........OBBOO.............ObBBO..OOOOO.....
....ObbbO.OPBBBO..........OPPOO..........ObBBBO.............ObBBO...........
.....ObbOOBBBbbO.........OBBBBBO..........ObbBBO.............ObbO...........
......OO.ObbbOO..........ObbbbbO...........OObbO..............OO............
..........OOO.............OOOOO..............OO.............................Procedure
#- Write the spec first: size, facing, weight, speed, frame count (8 unless the style demands less), personality tweaks (≤ 3).
rigthe body onto layers: head, torso, near arm, far arm, near leg, far leg (rules://06-layers-and-rigging). Far limbs one shade darker so they read behind. Feet on one fixed ground row.- Frame 1 (contact) and frame 3 (pass) with
drawopgrid, from a template above or by hand. Look at both before continuing. frameopduplicatefor 2 and 4; move limbs per layer withcelopsetortransformoptranslate. Re-measure limb length after each move.- Frames 5–8: duplicate 1–4 and swap near/far layer contents;
recolorthe swapped limbs to near/far shades. Do not flip the canvas. lookoponionon 1→2→3 to judge foot travel and hip bob, thenlookopfilmstripover the whole loop including frame 1 again.frameopset_durationwith the ms column;tagopcreatefor the cycle.validate. Then the foot-slide check: planted foot Δx per frame ÷ frame time = the engine speed to tell the user.
Mistakes
#| Symptom | Cause | Fix |
|---|---|---|
| Character glides or skates | planted foot does not travel at ground speed | recompute foot x per frame; set engine speed from it |
| Walk floats, no weight | no down frame, bob under 1 px |
add the lowest frame after contact, hip −1 more |
| Looks like sliding legs | pass frame missing or legs just "together" | tuck the swing foot at the support knee |
| Robotic bounce | bob is a sine / head moves with torso every frame | triangle wave, head one frame late |
| Both arms swing with their own leg | arm/leg opposition lost | near arm opposite near leg |
| Run reads as fast walk | no airborne frame, upright torso | 2 flight frames, 12° lean, 90° elbows |
| Limbs "grow" or shrink mid-cycle | volume drift from nudging pixels | redraw from the rig, measure segments |
| Legs bend backwards at the knee | foot target beyond leg length | shorten stride or lift the hip |
| Cycle pops at the loop | frame 8 → 1 mismatch, drift in head x | onion frame 8 over 1; fix head and hip |
| Left-facing version has wrong light | whole-sprite flip | re-shade or accept and say so (rules://03-silhouette-and-form) |
Review
#- Fill one frame flat: is it a walker, with clear space between the two legs?
- Is there a pass frame with a straight support leg and a tucked swing foot?
- Hip lowest after contact, highest at pass; total bob matches the size.
- Arm opposite each leg; widest at contact; no twin poses on both sides.
- Run: ≥ 2 frames with both feet off the ground; forward lean visible.
- Every frame keeps limb lengths and thickness (
lookopfilmstrip). - Planted foot travel is consistent and a speed in px/s was stated.
- Ground row identical in every frame; head does not drift in x.
- Durations are not uniform: contacts held longer (or run flight held).
- Frame 1 follows frame 8 without a visible jump.
Sources
#- Richard Williams, The Animator's Survival Kit, walk chapter pp. 102–118, runs pp. 176–200, sneaks pp. 167–175.
- Eadweard Muybridge, The Human Figure in Motion, Series 1, 10, 11, 84, 85 (photo intervals .083 s walk, .042–.057 s run).
- Preston Blair, Advanced Animation, walk and run charts pp. 24–31.
- Frank Thomas & Ollie Johnston, The Illusion of Life, weight and walks.
- Andrew Loomis, Figure Drawing for All It's Worth, pp. 115–119.
- Slynyrd, Pixelblog 8 (Intro to Animation), 25 (Motion Cycles), 50 (Human Walk Cycle), 55 (Top-Down), 60 (Run 'N Gun) — slynyrd.com.
- Pedro Medeiros (Saint11), Walk and RunCycleSimple tutorials — saint11.art.
- Owlboy run cycles (D-Pad Studio), Stardew Valley farmer sprite wiki, pokeemerald object-event animation tables (shipped timings).
- Pixel Logic, ch. 9 (Animation), for ones/twos and limited-frame loops.