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

Eredita: XRPositionalTracker < XRTracker < RefCounted < Object

Una mano tracciata in XR.

Descrizione

Un sistema di tracciamento delle mani creerà un'istanza di questo oggetto e la aggiungerà al XRServer. Questo sistema di tracciamento otterrà quindi i dati dello scheletro, li convertirà nello scheletro della mano di Godot Humanoid e memorizzerà questi dati sull'oggetto XRHandTracker.

Utilizza XRHandModifier3D per animare una mesh di mano attraverso i dati di tracciamento delle mani.

Tutorial

Proprietà

TrackerHand

hand

1 (overrides XRPositionalTracker)

HandTrackingSource

hand_tracking_source

0

bool

has_tracking_data

false

TrackerType

type

16 (overrides XRTracker)

Metodi

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)


Enumerazioni

enum HandTrackingSource: 🔗

HandTrackingSource HAND_TRACKING_SOURCE_UNKNOWN = 0

La sorgente dei dati di tracciamento delle mani è sconosciuta.

HandTrackingSource HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1

La sorgente dei dati di tracciamento delle mani non è ostruita, il che significa che è utilizzato un metodo accurato di tracciamento delle mani. Questi includono il tracciamento ottico delle mani, guanti per dati, ecc.

HandTrackingSource HAND_TRACKING_SOURCE_CONTROLLER = 2

La sorgente dei dati di tracciamento delle mani è un controller, il che significa che le posizioni delle articolazioni sono dedotte dagli input del controller.

HandTrackingSource HAND_TRACKING_SOURCE_NOT_TRACKED = 3

Non sono tracciati dati di tracciamento delle mani, il che significa che la mano è coperta, il controller è spento oppure il tracciamento non è supportato per il tipo di input attuale.

HandTrackingSource HAND_TRACKING_SOURCE_MAX = 4

Rappresenta la dimensione dell'enumerazione HandTrackingSource.


enum HandJoint: 🔗

HandJoint HAND_JOINT_PALM = 0

Articolazione del palmo.

HandJoint HAND_JOINT_WRIST = 1

Articolazione del polso.

HandJoint HAND_JOINT_THUMB_METACARPAL = 2

Articolazione metacarpale del pollice.

HandJoint HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3

Articolazione prossimale della falange del pollice.

HandJoint HAND_JOINT_THUMB_PHALANX_DISTAL = 4

Articolazione distale della falange del pollice.

HandJoint HAND_JOINT_THUMB_TIP = 5

Articolazione della punta del pollice.

HandJoint HAND_JOINT_INDEX_FINGER_METACARPAL = 6

Articolazione metacarpale dell'indice.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7

Articolazione prossimale della falange dell'indice.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8

Articolazione intermedia della falange dell'indice.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9

Articolazione distale della falange dell'indice.

HandJoint HAND_JOINT_INDEX_FINGER_TIP = 10

Articolazione della punta dell'indice.

HandJoint HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11

Articolazione metacarpale del dito medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12

Articolazione prossimale della falange del dito medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13

Articolazione intermedia della falange del dito medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14

Articolazione distale della falange del dito medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_TIP = 15

Articolazione della punta del dito medio.

HandJoint HAND_JOINT_RING_FINGER_METACARPAL = 16

Articolazione metacarpale dell'anulare.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17

Articolazione prossimale della falange dell'anulare.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18

Articolazione intermedia della falange dell'anulare.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19

Articolazione distale della falange dell'anulare.

HandJoint HAND_JOINT_RING_FINGER_TIP = 20

Articolazione della punta dell'anulare.

HandJoint HAND_JOINT_PINKY_FINGER_METACARPAL = 21

Articolazione metacarpale del mignolo.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22

Articolazione prossimale della falange del mignolo.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23

Articolazione intermedia della falange del mignolo.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24

Articolazione distale della falange del mignolo.

HandJoint HAND_JOINT_PINKY_FINGER_TIP = 25

Articolazione della punta del mignolo.

HandJoint HAND_JOINT_MAX = 26

Rappresenta la dimensione dell'enumerazione HandJoint.


flags HandJointFlags: 🔗

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_VALID = 1

I dati sull'orientamento dell'articolazione della mano sono validi.

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2

L'orientamento dell'articolazione della mano è tracciato attivamente. Potrebbe non essere impostato se il tracciamento è stato perso temporaneamente.

HandJointFlags HAND_JOINT_FLAG_POSITION_VALID = 4

I dati sulla posizione dell'articolazione della mano sono validi.

HandJointFlags HAND_JOINT_FLAG_POSITION_TRACKED = 8

La posizione dell'articolazione della mano è tracciata attivamente. Potrebbe non essere impostato se il tracciamento è stato perso temporaneamente.

HandJointFlags HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16

I dati sulla velocità lineare dell'articolazione della mano sono validi.

HandJointFlags HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32

I dati sulla velocità angolare dell'articolazione della mano sono validi.


Descrizioni delle proprietà

HandTrackingSource hand_tracking_source = 0 🔗

La sorgente dei dati di tracciamento delle mani.


bool has_tracking_data = false 🔗

  • void set_has_tracking_data(value: bool)

  • bool get_has_tracking_data()

Se true, i dati di tracciamento delle mani sono validi.


Descrizioni dei metodi

Vector3 get_hand_joint_angular_velocity(joint: HandJoint) const 🔗

Restituisce la velocità angolare per l'articolazione della mano fornita.


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

Restituisce i flag sulla validità dei dati di tracciamento per l'articolazione della mano fornita.


Vector3 get_hand_joint_linear_velocity(joint: HandJoint) const 🔗

Restituisce la velocità lineare per l'articolazione della mano fornita.


float get_hand_joint_radius(joint: HandJoint) const 🔗

Restituisce il raggio dell'articolazione della mano fornita.


Transform3D get_hand_joint_transform(joint: HandJoint) const 🔗

Restituisce la trasformazione per l'articolazione della mano fornita.


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

Imposta la velocità angolare per l'articolazione della mano fornita.


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

Imposta i flag sulla validità dei dati di tracciamento per l'articolazione della mano fornita.


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

Imposta la velocità lineare per l'articolazione della mano fornita.


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

Imposta il raggio per l'articolazione della mano fornita.


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

Imposta la trasformazione per l'articolazione della mano fornita.