There's no single correct number of frames for a sprite animation, but there are reliable starting points. Use the table below, then adjust by feel — snappy games use fewer frames held longer; smooth, cinematic games use more.
01Recommended Frame Counts
- Idle: 4–8 frames at 6–10 FPS (pixel art often uses 2–4 for a gentle breathing loop).
- Walk: 6–8 frames at 8–12 FPS; 4 frames works for 16×16 characters.
- Run: 6–10 frames at 12–15 FPS, with a clear airborne pose.
- Jump: 3–6 frames split into take-off, rise, apex and fall — usually driven by the physics state rather than a looping clip.
- Attack: 4–8 frames: anticipation (1–2), strike (1–2), follow-through (2–4).
- Hurt: 2–3 frames, often with a white flash.
- Death: 6–10 frames ending on a held final pose.
- Cast / special: 6–12 frames with a long anticipation for readability.
02Why Fewer Frames Can Feel Better
Responsiveness matters more than smoothness for player-controlled actions. A 3-frame attack where the hit lands on frame 2 feels punchy; a 12-frame attack where the hit lands on frame 9 feels sluggish, however beautiful it is. Put the impact frame early and let the follow-through carry the motion.
03Frame Rate vs Frame Count
Most 2D games run at 60 FPS but play sprite animations at 8–15 FPS by holding each frame for several game frames. A walk cycle's speed should match how fast the character actually moves across the ground, or the feet will appear to slide — tune the animation speed and movement speed together.
04Pixel Art vs HD
Low-resolution pixel art can't show subtle in-between poses, so it uses fewer, more distinct frames. HD characters benefit from more frames (8–12 for a walk, 20+ for complex attacks) because small differences are visible. AI-generated HD animations from Spritesheets.ai often have many frames — you can keep every other frame for a punchier, more retro feel.
05Test Your Timing Quickly
Drop your sheet into the free Sprite Sheet to GIF previewer and try 8, 10, 12 and 15 FPS side by side. If you're starting from scratch, the walk cycle sprite sheet generator and attack animation generator produce loop-ready sheets you can then trim.