Animation Pose Snapshot

Choose your OS:

When animating Skeletal Meshes, there may be instances when you want to apply and let physics take control of the mesh (such as a character entering a "rag-doll" state). After physics has been applied, using the Animation Pose Snapshot feature, you can capture a Skeletal Mesh pose (storing all the Bone Transform data) within a Blueprint and retrieve it inside Animation Blueprints enabling you to use the saved pose as a source to blend from (as seen in the example video below).

Above, our character enters a rag-doll state when we press a key and we use the Pose Snapshot node in our Character Blueprint to save off the pose of our Skeletal Mesh. When we press another key, our character blends from that snapshot into and plays a "get up" AnimMontage before resuming the normal locomotion state. This grants us the ability to take whatever pose the character ends up in as a result of physics and generate a smooth blend from that pose into an animation of the character getting back to their feet.

Save Pose Snapshot

In order to save your Skeletal Mesh's pose at runtime, inside your Character Blueprint, you will need access to the Skeletal Mesh Component and its AnimInstance.

With these in place, you can call the Save Pose Snapshot node and enter the desired Snapshot Name:

PoseSnapShotBlueprint.png

You can manually enter a name into the Snapshot Name field or create a variable to store the name. The name you provide as the Snapshot Name MUST also be used when attempting to retrieve the Pose Snapshot inside your Animation Blueprint.

When calling Save Pose Snapshot, the snapshot is taken at the current LOD. For example, if you took the snapshot at LOD1 and then used it at LOD0, any bones not in LOD1 will use the mesh's reference pose.

Retrieve Pose Snapshot

To retrieve a Pose Snapshot, inside the AnimGraph of your Animation Blueprint, Right-click and add the Pose Snapshot node and enter your Snapshot Name.

PoseSnapShotAnimBPNode.png

Below is the graph for the sample use case of a character that is getting up from a rag-doll pose.

PoseSnapShotAnimBP.png

Above, we have a State Machine called Default that drives our character's locomotion and use an AnimMontage in the MySlot node that plays an animation of our character getting up when called to play. We use the Blend Poses by bool node to determine if our character has stopped moving, where if True we switch over to our Pose Snapshot. If False, we blend from the Pose Snapshot into our slotted AnimMontage before continuing on with our normal Default State Machine.

Additional Resources

This feature can also be seen within the following Live Training Stream: