The 12 Principles of Animation for Game Sprites
How classic animation principles — squash and stretch, anticipation, timing — apply to small pixel-art game sprites.
The classic principles of animation were written for film, but they apply just as much to a 16×16 sprite. Used well, they make even simple animations feel alive. Here are the ones that matter most for games.
Squash and stretch
Deforming a shape as it moves conveys weight and energy — a character squashing on landing, a ball stretching as it falls. Even a couple of pixels of squash on a jump landing reads as impact. Preserve the overall volume so it doesn't look like it's inflating.
Anticipation
Before a big action, wind up in the opposite direction — a small crouch before a jump, a pull-back before a punch. Anticipation tells the player what's coming and makes the action land harder.
Timing and spacing
How many frames an action takes, and how they're spaced, defines its feel. Snappy attacks use few frames with big spacing; heavy actions use more frames and easing. Timing is the soul of game feel — tune it until it feels responsive.
Follow-through and overlap
Parts of a character keep moving after the main body stops — a cape settling, hair swinging. A frame or two of follow-through stops motion from feeling stiff.
Ease in / ease out
Real motion accelerates and decelerates. Cluster frames at the start and end of a move and spread them in the middle. Perfectly even spacing looks robotic.
Arcs
Natural movement follows curved paths, not straight lines. Swings, jumps and thrown objects should arc.
Exaggeration
Small sprites need bold, exaggerated motion to read. Subtlety is lost at 16 pixels — push poses further than feels natural.
Appeal and readability
Above all, the animation must read clearly at game size and speed. A gorgeous animation that turns to mush in motion is useless; a simple one with clear key poses wins.
Applying this to AI-generated frames
When you generate poses/animations, favor strong, exaggerated key poses and clean silhouettes. Then tune the frame rate in-engine — that's your timing dial — until actions feel snappy or weighty as intended.