AnimGraph Pose Nodes

Pose Assets can be driven at runtime with Animation Blueprints as the AnimGraph supports a few different Pose Nodes.

Pose by Name / Pose Blender Nodes

One way of driving Pose Assets is through the Pose by Name and Pose Blender nodes:

  • Pose by Name - where you can get the transform of a pose by its name.

  • Pose Blender - which outputs the correct pose driven by curves from a Source Pose.

In the example below, we have a face that uses a Pose Asset to smile when the player is close and frown when moving away.

Our State Machine inside our Animation Blueprint is set up with three states:

StateMachine.png

Our default State which is our neutral expression, our Smile state which is entered when the player enters a trigger volume and our Frown state when the player leaves the trigger volume. In this example, we only move between smiling and frowning states after triggering the first smile. Inside each state we use the Pose Blender and our animation sequence to apply the curve driven animation.

PoseBlender.png

Pose Blender nodes are created automatically when dragging a Pose Asset into the graph.

If you plug an AnimSequence directly into the Final Animation Pose without using a Pose Blender (below), you will not see the curve driven animation applied.

NoPoseBlender.png

Additionally, using just a Pose Blender without supplying any incoming curve data will not output your desired pose.

NoCurveData.png

You can also convert a Pose Blender node to a Pose by Name (which can also be converted to a Pose Blender node) through the Right-click context menu.

PoseByName.png

This will allow you to manually specify which pose to use inside the Details panel from the Pose Asset.

AdditivePoseByName.png

For our example we are controlling two aspects of our character's face, the right side of a smile and the left side of a smile so a Pose Blender make more sense to use. If we wanted to control only one pose within our Pose Asset, the Pose by Name grants us the ability to control a single pose by its name (which is usually good for full body context).

If you are using a Pose Asset with Additive enabled, you will also need to use the Apply Additive node to correctly display your desired pose. For Pose Assets that are not Additive, you can directly link a Pose by Name node to the Final Animation Pose output.

Pose Driver Node

Available within the AnimGraph of an Animation Blueprint is the Pose Driver node which allows a bone to drive other aspects of animation, based on a set of 'example poses' or lets you drive a curve value based on a bone's movement. One use for this node would be to create a pose space deformer to drive corrective blend shapes based on a bone's orientation or translation. For example, in the clip below, clavicle bone poses are being used to move the shoulder relative to the arm bone's movement.

To achieve this, an RBF (Radial Basis Function) interpolates driven values based on the orientation of a target bone. You will need to create a Pose Asset and define the target poses for the bone and the desired curve values at each pose.

On the Pose Driver node itself, you have the following options:

PoseDriverNode.png

Option Description
Source Bone Bone to use for driving parameters based on its orientation.
Radial Scaling Scaling of radial basis, applied to max distance between poses.
Pose Source The Pose Asset used as the source of pose data.
Include Ref Pose as Neutral Pose Should the mesh ref pose of Source Bone be considered as a "neutral pose" (zero curves).
Type
Option Description
Swing and Twist Consider full rotation for interpolation.
Swing Only Consider only swing for interpolation.
Translation Consider translation relative to parent.
Twist Axis The axis to use when Type is set to SwingOnly (X, Y or Z).

For additional information see the Unreal Engine Live Stream on Animation Topics which include a Pose Driver example: