The Pose Caching feature in Control Rig is used to save and apply animation poses at different times in the control rig graph. Any Rig Element can be cached into a pose and different properties can be accessed within the rig graph, such as curve values or transforms.
This document provides an overview of the Pose Caching feature, and how to store and apply poses.
Prerequisites
You have created a Control Rig Asset for a character. See the Control Rig Quick Start page for information on how to do this.
Quickstart
The following is a quick guide showing how to store and retrieve a pose.
Storing Poses
Poses are stored as variables within Control Rig's My Blueprint panel. To create a new pose variable, click the Add (+) button on the Variables category and set the variable type to Rig Pose.
Next, reference the variable within the Rig Graph as a Set operation by dragging the variable into the graph and selecting Set.
Then, create a Get Pose Cache node by right-clicking in the graph and selecting Get Pose Cache. Connect the Pose and Value pins.
Lastly, connect the Set node to an event. In this example, you can connect it to the Setup Event, which will store the character's initial A-Pose.
Applying Poses
Poses are applied by using the Apply Pose Cache node, which reads from your Rig Pose variable.
To start, reference the Rig Pose variable in the graph as a Get operation by dragging the variable into the graph and selecting Get.
Then, create an Apply Pose Cache node by right-clicking in the graph and selecting Apply Pose Cache. Connect the Pose and Value pins. Also connect it to an event so you can preview its evaluation, like the Forwards Solve event.
Since you are applying the entire pose, you can preview the pose effect by editing the Weight value. For this example, you can also use a Preview Controller from the Preview Scene Settings in order to better see the pose application.
Pose Cache Nodes
The following pose cache nodes are available for use in your Control Rig Graph:
Name |
Image |
Description |
---|---|---|
Apply Pose Cache |
|
Applies a saved pose. Includes properties for setting rig elements, the transform space, items to set, and weight. |
For Each Pose Cache Element |
|
This node executes iteratively across all items from a given pose. |
Get Pose Cache |
|
Saves a pose based on the input of Items to Get and rig element types. If no items are specified, then all items will be used. |
Get Pose Cache Curve |
|
Gets a single Animation Curve from a saved pose. |
Get Pose Cache Delta |
|
Compares two poses and outputs a comparison check boolean. |
Get Pose Cache Items |
|
Returns rig elements in an item array. |
Get Pose Cache Transform |
|
Gets the transform or Animation Curve value from a single rig element in a pose. |
Get Pose Cache Transform Array |
|
Gets the transforms of all items in a pose and returns them as a transform array. |
Is Pose Cache Empty |
|
Checks if a pose is empty or not. |
Draw Pose Cache |
|
Draws axis debug information on the saved pose in the viewport. It will only draw the elements saved in a pose.
|
Most nodes related to pose caching contain the following common properties:
Name |
Description |
---|---|
Element Type |
The Rig Elements to filter for when saving poses. You can choose from the following elements:
|
Space |
The transform space that the pose information should be stored and applied in. Can either be Local or Global space. |
Items to Set |
An array of rig elements to include when saving the pose. If nothing is set here, then all elements will be included according to the Element Type specified. |
Workflow Examples
By using array building nodes, like Get Children, you can get just a subsection of rig elements to save into a pose. This is useful if you want to only save and apply the pose to certain elements.
Execution nodes like Branch can be used to save poses at specific times or states.