diff options
author | Malcolm Nixon <Malcolm.nixon@gmail.com> | 2024-01-06 18:32:15 -0500 |
---|---|---|
committer | Malcolm Nixon <Malcolm.nixon@gmail.com> | 2024-01-07 12:08:54 -0500 |
commit | 5b8b2a4e709d0fe7ea3998a7d13df1c1872ef2bd (patch) | |
tree | 1d46600310f28406feb2eb63ebdcddb85bb16a81 /modules/openxr/doc_classes/OpenXRHand.xml | |
parent | b94eb58d35b3dd8a9f522bc90df0db73862ef326 (diff) | |
download | redot-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.xml | 18 |
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> |