4. Animation Graph Layers

Animation Graph Layers - Fullbody and Upperbody Graph

Layer System

The Animation System in CryENGINE is based on animation layers, where usually a fullbody animation is placed in the lowest layer, and partial body animations in higher layers can either overwrite some of the bone controllers, or just modify them (Additive Animations).

Similar to that the Animation Graph also supports layers. A character can have multiple animation graphs running in parallel. Each graph runs in its own layer, but these are not linked to the animation layers directly. Each graph can access all animation layers.

Purpose of Having a Fullbody and Upperbody

A common setup is to have one fullbody graph, which does all the fullbody animations, and one upperbody graph, which does only partial body animations, that could be executed during various fullbody stages (like a melee hit for example, that can be done during idle or movement). Additional animations in higher layers like for example poses on hands etc can be done via Modifiers in these graphs and don't need a separate Animation Graph on their own, as they don't need a separate selection logic. A new Animation Graph layer only makes sense if a separate selection logic is needed.

The lua script frontend for characters currently offers Properties to determine a fullbody and an upperbody. You can find an example in the player.lua script in the Game\Scripts\Entities\actor folder.

Debugging

When using debug command like ag_debug or ag_action etc. you need to determine which Animation Graph layer you want to debug and send the commands to. Use this command to change the layer - by default the fullbody graph (layer 0) will be used.