How game engines animate characters

Characters in video games are not drawn frame by frame. Game engines such as Unity and Godot build a character from a skeleton, store movements as data, and work out every frame as the game runs. Jabbertoon is a cartoon maker, not a game engine, but it animates characters the same way, so it is a gentle place to meet these ideas before opening a professional tool. Each idea below has its name in Unity and in Godot, and a Jabbertoon move that shows it.

The rig: a skeleton inside the character

A rig is a tree of bones with the character's art attached to them. Move a bone and everything attached to it moves too: turn the upper arm and the forearm and hand go with it. In Unity's 2D Animation package the bones live on the sprite and a Sprite Skin binds the art to them; in Godot they are a Skeleton2D node with Bone2D children. Every Jabbertoon character is a rig too: the characters page lists the bones of each one, and the creator lets you build your own.

The clip: a movement stored as data

A clip is a recorded movement that can be played on a rig. Unity calls it an Animation Clip; Godot stores an Animation in an AnimationPlayer. In Jabbertoon a clip is a move: a small block program that says how the body parts move over time, such as Wave hello. The difference is that a Jabbertoon move is a program rather than a list of keyframes, so you can read it as text and change one number.

Retargeting: one clip, many bodies

Retargeting plays a clip made for one character on another with different proportions. Unity does it for human characters through its Humanoid Avatar; Godot 4 does it for 3D skeletons with a bone map. Jabbertoon does it for every body, because a move names parts by their role (arm, leg, tail) instead of by drawing. Here is what the engine computes when Wave hello plays on each ready-made character: the person and the kid wave an arm, the dog and the cat answer the arm channel with a front leg, and the bird answers with a wing.

Worked out by the build: it plays the move in the engine on each body and checks what moves on screen. Nobody types this table.
CharacterMoves?What moves
Personyeswhole body, arms
Kidyeswhole body, arms
Dogyeswhole body, front legs
Catyeswhole body, front legs
Birdyeswhole body, wings
Monsteryeswhole body, arms

And here is the same move playing live on all six, from one program:

A cartoon person with the right arm raised high and the forearm bent, waving, and a dog with a front paw lifted beside it.
In the picture: Wave hello.

Reach: inverse kinematics

Usually a pose sets each joint's angle. Inverse kinematics (IK) works the other way: you say where the hand should be, and the engine works out the angles of the shoulder and elbow to put it there. Unity's Animation Rigging package has a Two Bone IK Constraint, and its 2D IK has a Limb Solver; Godot 4 has a SkeletonModification2DTwoBoneIK. Jabbertoon's reach block is two-bone IK: in Hands on hips both hands are aimed at the hip spots, so they stay there while the body sways.

Follow-through: parts that lag behind

Ears, tails and hair should keep moving for a moment after the body stops. Engines simulate this with springs: Unity's Animation Rigging has a Damped Transform constraint, and Godot 4 has a SkeletonModification2DJiggle. Jabbertoon's "let the … follow" block is a damped spring too, worked out on a fixed clock so it is the same every time: in Floppy hop the ears and tail flop after every landing. Watch the dog's ears and tail:

A cartoon person and a dog high in the air mid-hop, the dog's ears and tail swung behind the jump.
In the picture: Floppy hop.

Views and turning

A 2D character has to be drawn again to face another way. Game artists often keep separate drawings for each direction and switch between them. Jabbertoon characters have a front, a side and a back view built on the same bones, and the turn block switches between them: watch Look around.

What comes next

Game engines also give characters states (idle, walk, jump) with rules for moving between them: Unity's Animator Controller and Godot's AnimationTree state machine. Jabbertoon does not have states yet; it is a named future feature, along with responding to keys and collisions inside a cartoon. Until then, Jabbertoon is a place to learn rigs, clips, retargeting, reach and follow-through in a web browser, and the same ideas carry straight over to Unity and Godot.