Pose Driver

Choose your OS:

The Pose Driver node inside the AnimGraph in Animation Blueprints is currently experimental and some features may not work as expected.

In addition to using the Pose Blender to playback Pose Assets through Animation Blueprints , you can also drive Pose Assets directly at runtime with the Pose Driver node available within the AnimGraph of an Animation Blueprint. The Pose Driver node enables 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.

In the clip below, clavicle bone poses are being used to move the shoulder relative to the arm bone's movement.

We add the Pose Driver node and assign a Pose Asset containing our poses that we want to control. We then set the Source Bone to our clav bone so that based on the Drive Source (which is set to Rotate), we can update our Pose Targets that drive the pose being used. As the animation plays and the clav bone rotates, in the Pose Targets section each pose displays a bar to indicate the amount of influence it has to the final pose.

The Pose Driver node uses RBF (Radial Basis Function) which interpolates driven values based on the orientation of a target bone.

Adding a Pose Driver

To add a Pose Driver node to your Animation Blueprint:

  1. On the AnimGraph, right-click in the graph and search for the Pose Driver node.

    ContextPoseDriverNode.png

  2. Once the node has been added, supply the incoming Source Pose and the wire the Out Pose to the Final Animation Pose or other nodes for blending.

    CompletePoseDriver.png

  3. Use the Details panel to define what bones should be evaluated and Pose Asset poses or Curves should be driven.

    BlankDetails.png

Pose Targets

Pose Targets are where you specify the Poses from a Pose Asset or Curves you want to drive with the Pose Driver node.

With a Pose Asset assigned, you can click the Tools button and select Copy All from PoseAsset to add each of the poses to the Pose Target window.

CopyPoses.png

Once they have been added, the window will update with the corresponding poses.

PoseTargetsOptions.png

You can select each pose by clicking on it in the Pose Target window or by clicking on the target line in the viewport.

Curve based Pose Targets

Pose Targets can also be driven by Animation Curves (Morph Targets and Material Curves) instead of using a Pose Asset.

To use curve data instead of a Pose Asset:

  1. In the Details panel of a Pose Driver node, under the Pose Driver section, change the Drive Output to Drive Curves.

    DriveOutputSetting.png

  2. Compile the Animation Blueprint.

    CompileButton.png

  3. Click the Add Target button to add the number of curves you want to drive.

    AddTarget.png

  4. For each curve, under the Drive option select your desired curve and check the Curve checkbox, then define its value in the graph.

    CurveSetupComplete.png

Pose Driver Properties

The Pose Driver properties section of the Details panel enables you to define the Source Bones to use for driving parameters in the Pose Targets. You can specify multiple Source Bones or Only Drive Selected Bones, define an Eval Space Bone to use when reading the Source Bone Transform, set RBF Parameters used by the RBF Solver, as well as set the Drive Source and Drive Output.

Below are the properties within the Pose Driver section:

Option

Description

Source Bones

Bone to use for driving parameters based on its orientation.

Only Drive Selected Bones

If we should filter bones to be driven using the Only Drive Bones array.

Only Drive Bones

Only the bones specified in the array will be modified by the Pose Driver node.

Eval Space Bone

Optional other bone space to use when reading Source Bone transform. If not specified, the local space of Source Bone (for example, relative to the parent bone) is used.

RBFParams

Option

Description

Radius

Default radius for each target, scaled by per-Target Scale Factor.

Function

Defines the type of Blend Mode to use.

Distance Method

Sets the measurement of distance to: Swing Angle, Quaternion or Euclidean.

Twist Axis

Axis to use when Distance Method is set to Swing Angle.

Weight Threshold

Weight below which we shouldn't bother returning a contribution from a target.

Drive Source

Which part of the transform is read: Rotation or Translation.

Drive Output

Whether we should drive poses or curves.

Settings and Relevancy

The Settings section of the Details panel enables you to define the Pose Asset to evaluate and define if Sync Groups are used. The Relevancy section provides a way for you to determine if relevant animation nodes should ignore the node.

Option

Description

Pose Source

The Pose Asset used as the source of pose data.

Sync Group Name

The name of the Synch Group to reference.

Sync Group Role

The type of membership in the group.

Ignore for Relevancy Test

If true, "Relevant anim" nodes that look for the highest weighted animation in a state will ignore this node.

Additional Examples and Resources

Below are some additional examples of the Pose Driver node and settings.

Below, the clavicle, lower, and upper arm bones are driving corrective blend shapes deforming the area around the shoulder as it rotates through curves.

Another example of setting up and using the Pose Driver node can be found in the following Live Stream: