The ExistentPlayerAnimInstance is fundamentally a bridge between the ExistentPlayer and the Existent animation nodes. Each Existent animation node requires several properties to operate, when a node is added to an animation blueprint based on an ExistentPlayerAnimInstance these properties are automatically connected to the equivalent properties from the ExistentPlayerAnimInstance.

As an example the ExistentPlayerAnimInstance has the following properties: HandBoneMappings, TrackerMappings, PlayerUniqueIdentifier, PlayerFriendlyName etc. The ExistentRoot animation node requires at least the TrackerMappings to function but can also make use of all the other properties.

Besides directly pulling the values of those properties from the ExistentPlayer the ExistentPlayerAnimInstance also queries the ExistentTrackerComponents from the ExistentPlayer to provide tracking data to the Existent animation nodes. An example of this are the transform properties HeadWorldTransform, LeftHandTransform, RightHandTransform etc. The latter values are all used by the Existent animation nodes to operate a full body avatar.

How to use

While creating an animation blueprint you can select the ExistentPlayerAnimInstance as the parent class of the animation blueprint. After creating the animation blueprint there is no additional work required to make the ExistentPlayerAnimInstance work.

When adding Existent animation nodes to your animation blueprint the nodes will automatically bind the required properties to the equivalent properties from the ExistentPlayerAnimInstance.

Additional Details

  • Tracking Data: there are a number of transforms which represent the tracking points on the body. The transforms are updated on tick by querying the ExistentTrackerComponents from the ExistentPlayer. The transforms that start with the word relative are in component space and all the rest of the transforms are in world space.

  • Hand Tracking Data: the hand tracking data are available through 2 maps of ExistentBone and Transforms called LeftHandBoneWorldTransforms and RightHandBoneWorldTransforms. There are also two properties representing the tracking status for each hand called LeftHandTrackingStatus and RightHandTrackingStatus.

  • ExistentFootEventsInterface: when using the ExistentLegs animation node the logic that drives the legs will generate foot events when feet lift off or touch the ground. To respond to these events the animation blueprint can implement the ExistentFootEventsInterface.