summaryrefslogtreecommitdiffstats
path: root/modules/openxr/doc_classes/OpenXRHand.xml
diff options
context:
space:
mode:
authorMalcolm Nixon <Malcolm.nixon@gmail.com>2024-01-06 18:32:15 -0500
committerMalcolm Nixon <Malcolm.nixon@gmail.com>2024-01-07 12:08:54 -0500
commit5b8b2a4e709d0fe7ea3998a7d13df1c1872ef2bd (patch)
tree1d46600310f28406feb2eb63ebdcddb85bb16a81 /modules/openxr/doc_classes/OpenXRHand.xml
parentb94eb58d35b3dd8a9f522bc90df0db73862ef326 (diff)
downloadredot-engine-5b8b2a4e709d0fe7ea3998a7d13df1c1872ef2bd.tar.gz
Add ability to drive full-body avatars using OpenXRHand
This PR allows the OpenXRHand to drive: - OpenXR rigged hand skeletons located under the OpenXRHand node - Godot Humanoid rigged hand skeletons located under the OpenXRHand node - OpenXR rigged avatar skeletons located separately in the scene-tree - Godot Humanoid avatar skeletons located separately in the scene-tree
Diffstat (limited to 'modules/openxr/doc_classes/OpenXRHand.xml')
-rw-r--r--modules/openxr/doc_classes/OpenXRHand.xml18
1 files changed, 16 insertions, 2 deletions
diff --git a/modules/openxr/doc_classes/OpenXRHand.xml b/modules/openxr/doc_classes/OpenXRHand.xml
index cc7766507f..eb7decd30d 100644
--- a/modules/openxr/doc_classes/OpenXRHand.xml
+++ b/modules/openxr/doc_classes/OpenXRHand.xml
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="OpenXRHand" inherits="Node3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
<brief_description>
- Node supporting finger tracking in OpenXR.
+ Node supporting hand and finger tracking in OpenXR.
</brief_description>
<description>
- 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 where the player's actual hand is positioned. This node also updates the skeleton of a properly skinned hand model. The hand mesh should be a child node of this node.
+ 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.
</description>
<tutorials>
</tutorials>
@@ -18,6 +20,9 @@
<member name="motion_range" type="int" setter="set_motion_range" getter="get_motion_range" enum="OpenXRHand.MotionRange" default="0">
Set the motion range (if supported) limiting the hand motion.
</member>
+ <member name="skeleton_rig" type="int" setter="set_skeleton_rig" getter="get_skeleton_rig" enum="OpenXRHand.SkeletonRig" default="0">
+ Set the type of skeleton rig the [member hand_skeleton] is compliant with.
+ </member>
</members>
<constants>
<constant name="HAND_LEFT" value="0" enum="Hands">
@@ -38,5 +43,14 @@
<constant name="MOTION_RANGE_MAX" value="2" enum="MotionRange">
Maximum supported motion ranges.
</constant>
+ <constant name="SKELETON_RIG_OPENXR" value="0" enum="SkeletonRig">
+ An OpenXR compliant skeleton.
+ </constant>
+ <constant name="SKELETON_RIG_HUMANOID" value="1" enum="SkeletonRig">
+ A [SkeletonProfileHumanoid] compliant skeleton.
+ </constant>
+ <constant name="SKELETON_RIG_MAX" value="2" enum="SkeletonRig">
+ Maximum supported hands.
+ </constant>
</constants>
</class>