Allows evaluation of an AnimLayer from the AnimGraph.

There are two main ways of using them:

  • With local AnimLayers: Using a local AnimLayer on the AnimBP that will evaluate it. Mainly for organisational purposes.
  • With AnimLayers defined by an Animation Layer Interface: The layer signature will be defined by the interface that can be used to link layers from other AnimBPs at runtime.

Similar to a linked AnimGraph, an InstanceClass can be specified in the nodes’ details. In contrast to linked AnimGraphs though, this is optional when using AnimLayers, and by default they will just use the layer from the AnimBP that the node is on. This is only an option if the layer is coming from an Animation Layer Interface. Otherwise the only option is to use the layer on this AnimBP. Also differing from linked AnimGraphs, the valid classes are not just based on the skeleton, but have the additional requirement to implement the Animation Layer Interface.

An external AnimLayer linked via an Animation Layer Interface will have all of their methods called as if it were a standalone AnimBP(e.g. InitializeAnimation, BeingPlay, UpdateAnimation).

The linked AnimLayer in the node can be accessed by class for example using the GetLinkedAnimLayerInstanceByClass method. There are also related methods to query them by group(the “category” of the layer), or by class and group.

When using an Animation Layer Interface to define what layers are available, their signature will not change based on the InstanceClass but be solely defined by the interface. Other AnimBPs AnimLayers can be linked into the main AnimBPs nodes using the LinkAnimClassLayers method and removed using the UnlinkAnimClassLayers method to reset it back to its default.

In the nodes’ details, there are also options to receive animnotifies from linked instances and to propagate them to linked instances as well.