Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

OpenXRHand

Obsolète : Use XRHandModifier3D instead.

Hérite de : Node3D < Node < Object

Nœud supportant le suivi des mains et des doigts dans OpenXR.

Description

Ce nœud permet la fonctionnalité de suivi des mains d'OpenXR. Le nœud devrait être un nœud enfant d'un nœud XROrigin3D, le suivi mettra à jour sa position à l'emplacement de l'articulation de la paume de la main suivie du joueur (le centre de l'os métacarpien du majeur). Ce nœud met également à jour le squelette d'une main ou d'un modèle d'avatar correctement skinné.

Si le squelette est une main (l'un des os de la main est le nœud racine du squelette), alors le squelette sera placé par rapport à l'emplacement de la paume de main et le maillage de la main et le squelette devraient être enfants du nœuds OpenXRHand.

Si les os de la main font partie d'un squelette complet, alors la racine de la main gardera son emplacement avec l'hypothèse que l'IK (Inverse Kinematics, en fr : Cinématique inverse) est utilisée pour positionner la main et le bras.

Par défaut, les os de la main du squelette sont repositionnés pour correspondre à la taille de la main suivie. Pour préserver la taille des os modélisés, changez bone_update pour appliquer uniquement la rotation.

Propriétés

BoneUpdate

bone_update

0

Hands

hand

0

NodePath

hand_skeleton

NodePath("")

MotionRange

motion_range

0

SkeletonRig

skeleton_rig

0


Énumérations

enum Hands: 🔗

Hands HAND_LEFT = 0

Suit la main gauche du joueur.

Hands HAND_RIGHT = 1

Suit la main droite du joueur.

Hands HAND_MAX = 2

Nombre maximum de mains supportées.


enum MotionRange: 🔗

MotionRange MOTION_RANGE_UNOBSTRUCTED = 0

When player grips, hand skeleton will form a full fist.

MotionRange MOTION_RANGE_CONFORM_TO_CONTROLLER = 1

When player grips, hand skeleton conforms to the controller the player is holding.

MotionRange MOTION_RANGE_MAX = 2

Plages de mouvement maximales supportées.


enum SkeletonRig: 🔗

SkeletonRig SKELETON_RIG_OPENXR = 0

Un squelette compatible OpenXR.

SkeletonRig SKELETON_RIG_HUMANOID = 1

Un squelette compatible avec SkeletonProfileHumanoid.

SkeletonRig SKELETON_RIG_MAX = 2

Nombre maximum de mains supportées.


enum BoneUpdate: 🔗

BoneUpdate BONE_UPDATE_FULL = 0

Les os du squelette sont entièrement mis à jour (à la fois en position et en rotation) pour correspondre aux os suivis.

BoneUpdate BONE_UPDATE_ROTATION_ONLY = 1

Les os du squelette sont seulement pivotés pour s'aligner avec les os suivis, préservant la longueur des os.

BoneUpdate BONE_UPDATE_MAX = 2

Mode maximum de mise à jour des os supportés.


Descriptions des propriétés

BoneUpdate bone_update = 0 🔗

Spécifie le type de mises à jour à effectuer sur l'os.


Hands hand = 0 🔗

Spécifie si ce nœud suit la main gauche ou la main droite du joueur.


NodePath hand_skeleton = NodePath("") 🔗

Définit un nœud Skeleton3D pour lequel les positions de pose seront mises à jour.


MotionRange motion_range = 0 🔗

Définit la plage de mouvement (si supportée) limitant le mouvement de la main.


SkeletonRig skeleton_rig = 0 🔗

Définit le type de rig de squelette avec lequel le squelette de main hand_skeleton est compatible.