Hand Bone Mappings
Last updated
Last updated
Open the hand bone mappings and assign a skeletal mesh that uses the skeleton the player will use.
Next press the button Auto-fill Bone Mappings.
This will attempt to auto-fill all the bone mappings for the specified skeleton. Review the bones assigned to each entry in the LeftHand and RightHand maps under the bone mappings category.
If the bones assigned are not correct make the necessary changes. In the case of this particular skeleton the wrist bones were wrong and the grip bone was completely missing.
The fingertips are necessary for the hands to work correctly while gripping objects. This particular skeleton does not come with fingertips bones, to remedy this, create sockets and position them where the finger tips are.
Back in the hand bone mappings assign the fingertips sockets.
After assigning all the bones, there may still be bones that are not assigned and are completely missing from the skeleton. These usually are the Index0, Middle0, Ring0, Pinky0 bones. If this is the case press the button Auto-fill excluded bones and the hand bone mappings asset will automatically add all the unmapped bones to the array of excluded bones.
Every skeleton will come with different relative bone transforms compared to what the OpenXR hand tracking expects. This particular skeleton for instance comes with hand bones relative transforms which differ from the OpenXR standard and can be seen by the hand fingers being twisted.
To fix this the hand bone mappings asset allows to specify extra bone rotations to apply on all the hand bones or to specified bones. These values can be provided by changing the properties Left/RightBoneRotations or Left/RightOverrideBoneRotations under the category BoneRotations.
For this skeleton the values that fixed the hands are as shown in the following screenshot.
To better preview the changes being made press space bar to switch between an open/close hand pose.