Table of Contents

Class OpenXRHand

Node supporting hand and finger tracking in OpenXR.

Inheritance
OpenXRHand

Remarks

This node enables OpenXR's hand tracking functionality. The node should be a child node of an XROrigin3D node, tracking will update its position to the player's tracked hand Palm joint location (the center of the middle finger's metacarpal bone). This node also updates the skeleton of a properly skinned hand or avatar model.

If the skeleton is a hand (one of the hand bones is the root node of the skeleton), then the skeleton will be placed relative to the hand palm location and the hand mesh and skeleton should be children of the OpenXRHand node.

If the hand bones are part of a full skeleton, then the root of the hand will keep its location with the assumption that IK is used to position the hand and arm.

By default the skeleton hand bones are repositioned to match the size of the tracked hand. To preserve the modeled bone sizes change bone_update to apply rotation only.

Properties

bone_update

Specify the type of updates to perform on the bone.

var bone_update : int = 0

Property Value

int

Remarks

  • void set_bone_update(int value)
  • int get_bone_update

hand

Specifies whether this node tracks the left or right hand of the player.

var hand : int = 0

Property Value

int

Remarks

  • void set_hand(int value)
  • int get_hand

hand_skeleton

Set a Skeleton3D node for which the pose positions will be updated.

var hand_skeleton : NodePath = NodePath("")

Property Value

NodePath

Remarks

motion_range

Set the motion range (if supported) limiting the hand motion.

var motion_range : int = 0

Property Value

int

Remarks

  • void set_motion_range(int value)
  • int get_motion_range

skeleton_rig

Set the type of skeleton rig the hand_skeleton is compliant with.

var skeleton_rig : int = 0

Property Value

int

Remarks

  • void set_skeleton_rig(int value)
  • int get_skeleton_rig