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.

XRHandTracker

Hérite de : XRPositionalTracker < XRTracker < RefCounted < Object

Une main suivie en XR.

Description

Un système de suivi des mains créera une instance de cet objet et l'ajoutera au XRServer. Ce système de suivi obtiendra ensuite des données de squelette, les convertira en squelette de main Godot Humanoid et stockera ces données sur l'objet XRHandTracker.

Utilisez XRHandModifier3D pour animer un maillage de main en utilisant des données de suivi des mains.

Tutoriels

Propriétés

TrackerHand

hand

1 (overrides XRPositionalTracker)

HandTrackingSource

hand_tracking_source

0

bool

has_tracking_data

false

TrackerType

type

16 (overrides XRTracker)

Méthodes

Vector3

get_hand_joint_angular_velocity(joint: HandJoint) const

BitField[HandJointFlags]

get_hand_joint_flags(joint: HandJoint) const

Vector3

get_hand_joint_linear_velocity(joint: HandJoint) const

float

get_hand_joint_radius(joint: HandJoint) const

Transform3D

get_hand_joint_transform(joint: HandJoint) const

void

set_hand_joint_angular_velocity(joint: HandJoint, angular_velocity: Vector3)

void

set_hand_joint_flags(joint: HandJoint, flags: BitField[HandJointFlags])

void

set_hand_joint_linear_velocity(joint: HandJoint, linear_velocity: Vector3)

void

set_hand_joint_radius(joint: HandJoint, radius: float)

void

set_hand_joint_transform(joint: HandJoint, transform: Transform3D)


Énumérations

enum HandTrackingSource: 🔗

HandTrackingSource HAND_TRACKING_SOURCE_UNKNOWN = 0

La source de données de suivi des mains est inconnue.

HandTrackingSource HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1

La source de données de suivi à la main n'est pas obstruée, ce qui signifie qu'une méthode précise de suivi des mains est utilisée. Cela inclut du suivi optique des mains, des gants de données, etc.

HandTrackingSource HAND_TRACKING_SOURCE_CONTROLLER = 2

La source de données du suivi des mains est un contrôleur, ce qui signifie que les positions des articulations sont inférées à partir des entrées du contrôleur.

HandTrackingSource HAND_TRACKING_SOURCE_NOT_TRACKED = 3

Aucune donnée de suivi des mains n'est suivie, cela signifie que soit la main est obstruée, soit le contrôleur est éteint, ou le suivi n'est pas supporté pour le type d'entrée actuel.

HandTrackingSource HAND_TRACKING_SOURCE_MAX = 4

Représente la taille de l'énumération HandTrackingSource.


enum HandJoint: 🔗

HandJoint HAND_JOINT_PALM = 0

Articulation de la paume.

HandJoint HAND_JOINT_WRIST = 1

Articulation du poignet.

HandJoint HAND_JOINT_THUMB_METACARPAL = 2

Articulation métacarpienne du pouce.

HandJoint HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3

Articulation de la phalange proximale du pouce.

HandJoint HAND_JOINT_THUMB_PHALANX_DISTAL = 4

Articulation de la phalange distale du pouce.

HandJoint HAND_JOINT_THUMB_TIP = 5

Articulation du bout du pouce.

HandJoint HAND_JOINT_INDEX_FINGER_METACARPAL = 6

Articulation métacarpienne de l'index.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7

Articulation de la phalange proximale de l'index.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8

Articulation de la phalange intermédiaire de l'index.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9

Articulation de la phalange distale de l'index.

HandJoint HAND_JOINT_INDEX_FINGER_TIP = 10

Articulation du bout de l'index.

HandJoint HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11

Articulation métacarpale du majeur.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12

Articulation de la phalange proximale du majeur.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13

Articulation de la phalange intermédiaire du majeur.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14

Articulation de la phalange distale du majeur.

HandJoint HAND_JOINT_MIDDLE_FINGER_TIP = 15

Articulation du bout du majeur.

HandJoint HAND_JOINT_RING_FINGER_METACARPAL = 16

Articulation métacarpienne de l'annulaire.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17

Articulation de la phalange proximale de l'annulaire.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18

Articulation de la phalange intermédiaire de l'annulaire.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19

Articulation de la phalange distale de l'auriculaire.

HandJoint HAND_JOINT_RING_FINGER_TIP = 20

Articulation du bout de l'annulaire.

HandJoint HAND_JOINT_PINKY_FINGER_METACARPAL = 21

Articulation métacarpienne de l'auriculaire.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22

Articulation de la phalange proximale de l'auriculaire.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23

Articulation de la phalange intermédiaire de l'auriculaire.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24

Articulation de la phalange distale de l'auriculaire.

HandJoint HAND_JOINT_PINKY_FINGER_TIP = 25

Articulation du bout de l'auriculaire.

HandJoint HAND_JOINT_MAX = 26

Représente la taille de l'énumération HandJoint.


flags HandJointFlags: 🔗

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_VALID = 1

La donnée de l'orientation de l'articulation de la main est valide.

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2

L'orientation de l'articulation de main est activement suivie. Peut ne pas être défini si le suivi a été temporairement perdu.

HandJointFlags HAND_JOINT_FLAG_POSITION_VALID = 4

Les données de position de l'articulation de la main est valide.

HandJointFlags HAND_JOINT_FLAG_POSITION_TRACKED = 8

La position de l'articulation de main est activement suivie. Peut ne pas être défini si le suivi a été temporairement perdu.

HandJointFlags HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16

La donnée de la vitesse linéaire de l'articulation de la main est valide.

HandJointFlags HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32

La donnée de la vélocité angulaire de l’articulation de la main est valide.


Descriptions des propriétés

HandTrackingSource hand_tracking_source = 0 🔗

La source des données du suivi des mains.


bool has_tracking_data = false 🔗

  • void set_has_tracking_data(value: bool)

  • bool get_has_tracking_data()

Si true, les données de suivi des mains sont valides.


Descriptions des méthodes

Vector3 get_hand_joint_angular_velocity(joint: HandJoint) const 🔗

Renvoie la vélocité angulaire en l'articulation de main donnée.


BitField[HandJointFlags] get_hand_joint_flags(joint: HandJoint) const 🔗

Renvoie des drapeaux sur la validité des données de suivi pour l'articulation de main donnée.


Vector3 get_hand_joint_linear_velocity(joint: HandJoint) const 🔗

Renvoie la vélocité linéaire pour l'articulation de main donnée.


float get_hand_joint_radius(joint: HandJoint) const 🔗

Renvoie le rayon de l'articulation de main donnée.


Transform3D get_hand_joint_transform(joint: HandJoint) const 🔗

Renvoie la transformation pour l'articulation de main donnée.


void set_hand_joint_angular_velocity(joint: HandJoint, angular_velocity: Vector3) 🔗

Définit la vélocité angulaire pour l'articulation de main donnée.


void set_hand_joint_flags(joint: HandJoint, flags: BitField[HandJointFlags]) 🔗

Définit des drapeaux sur la validité des données de suivi pour l'articulation de main donnée.


void set_hand_joint_linear_velocity(joint: HandJoint, linear_velocity: Vector3) 🔗

Définit la vélocité linéaire pour l'articulation de main donnée.


void set_hand_joint_radius(joint: HandJoint, radius: float) 🔗

Définit le rayon de l'articulation de main donnée.


void set_hand_joint_transform(joint: HandJoint, transform: Transform3D) 🔗

Définit la transformation pour l'articulation de main donnée.