๐Hand Tracking
Last updated
Last updated
Required XR Settings for Hand Tracking
After downloading the subpackage in Auto Hand/Packages/OpenXR.package
Example will be found in Auto Hand/Examples/Scenes/OpenXR/Hand Tracking
These are the required components for OpenXR hand tracking:
XR Hand Skeleton Driver
Unity's script for getting transform data from OpenXR
XR Hand Tracking Events
Unity's script for getting events from OpenXR
OpenXR Auto Hand Tracking
Converts Unity hand tracking data to your Auto Hand skeleton as well as smoothing for hand tracking gesture and movement
OpenXR Auto Hand Tracking Grabber
Manages if grabbing / holding conditions are being met
Hand
: is a reference to which hand this script is driving
Up Axis
: if your skeleton on your hand rig matches the OpenXR hand tracking skeleton, this axis should equal "Up". If your skeleton is different you figure out what your hands' up axis equivalent is on the OpenXR rig. On the robot hand example the yellow up axis is equal to the OpenXR's left (opposite direction of the red arrow)
Forward Axis
: same as previous value, but for your hand's blue forward arrow. In the example below the robot hand's forward axis matches the OpenXR hand's yellow up axis. So it is set to "Up"
Hand Offset
: Position offset for the hand in local hand tracking space
Hand Rotation Offset
: This offsets the hand relative to it's tracking target. In order for the hand tracking to work the hand model must have correct rotation offset to the tracking hand
Hand Pose Smoothing
: Add a small smooth movement delay when matching the fingers to their target pose. This mainly helps the hand from moving jarringly when in using low confidence poses
Follow Position Smoothing Speed
: This will smooth out the hands follow target position over some. The lower the value the slower smoother/slower the matching. This helps prevent jumping/jittering from lower quality hand tracking input.
Follow Rotation Smoothing Speed
: This will smooth out the hands follow target rotation over some. The lower the value the slower smoother/slower the matching. This helps prevent jumping/jittering from lower quality hand tracking input.
handTracker
: Reference to the hand tracker responsible for tracking hand movements and poses
releaseGrabDelay
: The delay in seconds before a grab is released after the grab condition is no longer met
fingerTipRadiusMultiplier
: Multiplier for the radius of the finger tip detection spheres used in touch grabbing
useFingerTouchGrabbing
: Enables or disables grabbing objects by touching them with fingers
useFingerTouchReleasing
: Enables or disables releasing objects by touching them with fingers
useTouchHoldingWithHeldPose
: Enables or disables maintaining a held pose while holding an object with finger touch grabbing
usePoseGrabbing
: Enables or disables grabbing objects using predefined hand poses
minPoseGrabCloseness
: The minimum closeness required for the hand pose to initiate a grab
maxPoseGrabCloseness
: The maximum closeness allowed for the hand pose to initiate a grab
requiredDeltaPoseGrabCloseness
: The required change in closeness to trigger a grab
usePoseRelease
: Enables or disables releasing objects using predefined hand poses
minPoseReleaseOpenness
: The minimum openness required for the hand pose to initiate a release
maxPoseReleaseOpenness
: The maximum openness allowed for the hand pose to initiate a release
requiredDeltaPoseReleaseOpenness
: The required change in openness to trigger a release
usePoseSqueezing
: Enables or disables squeezing objects using predefined hand poses
squeezeUnsqueezeDelay
: The delay in seconds before a squeeze is unsqueezed after the squeeze condition is no longer met
squeezePoseSensitvityMultiplier
: Multiplier for the sensitivity of the squeezing pose detection
These "Right/Left Hand Tracking Visuals" show the default OpenXR hand tracking input before it's sent to the Auto Hand Tracking components.
If hand tracking quality seems low, you can check these visuals to see if it's the hand tracking input that isn't work well or if it's the Auto Hand Tracking that isn't working as expecting