Animation Blueprints
Characters are animated with Animation Blueprints, which combine state machines, blend spaces, montages and IK. Every frame, a blueprint tracks how much each animation contributes to the final pose, which keeps transitions smooth, footsteps in sync and root motion accurate.
What a blueprint contains
A .vanim file contains a skeleton, a root motion setting, a list of variables
and two graphs:
- The AnimGraph is a tree of pose nodes that ends in an Output Pose node.
- The EventGraph is a regular gameplay graph with two events: one when the blueprint starts and one every frame. It reads the character's state, such as speed, direction and whether it is falling, and stores it in variables for the AnimGraph to use.
Each state machine, state, transition and conduit has its own canvas. The AnimGraph cannot read game state directly; it gets its values from variables set by the EventGraph. This keeps pose evaluation separate from the rest of the game.
Evaluation
A blueprint is compiled once and shared by every character that uses it, while each character keeps its own state: node state, timers, variables and poses. Each frame runs two passes:
- Update works out the weight of every node, starting from the output. Clips advance, state machines choose transitions, and sync groups line up.
- Evaluate builds the final pose from the nodes that contribute to it.
The weights are used everywhere: the heaviest clip in a sync group leads it, root motion is scaled by each clip's weight, and notifies only fire from clips that are visible in the pose.
State machines
State machines are edited as boxes connected by arrows. States are boxes, conduits have an amber bar, and the entry point and aliases are shown as pills. Drag from the edge of one state to another to add a transition, or release on empty space to create a new state.
Each transition has its own blend: either a crossfade with a duration and curve, or an inertialized blend that switches immediately and smooths out the difference. Transitions have a priority for when several could fire, and a state machine can take several transitions in one frame.
Montages and slots
A montage is a one-off animation, such as an attack, played on top of the AnimGraph in a named slot. It has its own playback rate, blend in and blend out, start position and loop count. Starting a new montage in the same slot interrupts the current one and blends between them. When a montage ends or is interrupted, events are sent to both the character's graph and the blueprint.
Foot IK
The Leg IK node traces down from each foot to find the ground, lowers the pelvis as far as the lower foot needs, bends each leg to reach the ground and tilts each foot to match the slope. It can be faded out, for example while the character is in the air.
Live debugging
While a blueprint runs, the editor shows its state live: the active state is highlighted with a timer, blending transitions show their progress, each clip shows its playback position, and pose connections light up along the path that produces the final pose. You can debug the editor's preview or any character in a running game.
Clips and blend spaces
Each clip stores its own notifies, notify windows, sounds, curves and sync markers, so every character that plays the clip gets them. They are edited on a timeline in the clip editor, where sync markers can be placed automatically from foot contacts and curves can be generated from the clip's motion.
A blend space arranges clips on one or two axes, such as direction and speed, and blends the clips around the requested point. The blend space editor can place each clip automatically by measuring how it actually moves.
Related
- Node graph: the canvas shared by the pose graphs and the EventGraph
- Actor classes: the characters a blueprint animates