VR Expansion Plugin Documentation

6.1.OpenXR Hand Pose Component

The OpenXR Hand Pose Component is a dedicated component for polling/replicating hand poses from OpenXR’s Skeletal Hand Tracking Extension.


It will auto replicate / blend the poses that are output from this extension, as well as provide a container that can be used to apply them to the default ue4 skeleton (or a custom skeleton if you supply the correct re-mapping container).

It also has hand pose detection for detecting the gestures that are being made with the data.


Below is a list of the properties of the component.


Replicate Skeletal Data If true the component will automatically replicate the skeletal tracking data
Smooth Replicated Skeletal Data If true the component will smooth replicated data between updates
Replication Rate for Skeletal Animations The rate to replicate the data at (lower is better for less bandwidth)
Get Mock Up Pose For Debugging If true then a stored hardcoded pose will be given so you can test the component without tracked hands
Hand Skeletal Actions List of hand skeletons to track (generally left and right so you would have two)
Target Hand Target hand this action is for (left/right currently)
World Scale Override A forced override, when non zero will change WorldToMeters to the supplied value
Allow Deforming Mesh If true then position will also be applied to the data, not just rotation. Requires a fully skinned and weighted mesh.
Mirror Left Right Mirrors the data to the other hand so you can use a singular mesh for both hands
Enable UE4 Hand Rep Savings If true it will drop replicating bone transforms for bones that don’t exist in the default Epic skeleton.
Addition Transform An additional transform to face the X+ transform into the bones facing instead (default ue4 hand bones are X- forward).

To use the skeletal data in the anim graph you can either re-parent the animation instance that your graph uses to the OpenXR animation instance as below:

Or manually provide the hand skeletal actions from the OpenXRHandPoseComponent, assigning them to a BPOpenXRSkeletalData var that you pass in (in screen shot it is showing a make literal, you should be just passing the components ones in).

The Apply OpenXR Hand Pose node then actually applies the pose to the skeletal mesh.

Apply OpenXRHandPose Properties:

Skeleton Type The type of skeleton, if custom you would have to show the pin for custom bone mappings and pass one in. Otherwise you should pick between the UE4/SteamVR skeleton types.
Skip Root Bone Skips moving/rotating the wrist bone, generally used for full body meshes when you just want finger curls.
Only Apply Wrist Transform Only applies the rotation and/or location to the wrist, can be used for multiple step operations.
Optional Stored Action Info A reference to the hand skeleton action you want to use, only generally used when not using the OpenXRAnimInstance
Component Pose


Suggest Edit