XRHandTracker

Hereda: XRPositionalTracker < XRTracker < RefCounted < Object

Una mano rastreada en XR.

Descripción

Un sistema de seguimiento de manos creará una instancia de este objeto y la añadirá al XRServer. Este sistema de seguimiento obtendrá entonces los datos del esqueleto, los convertirá al esqueleto de mano humanoide de Godot y almacenará estos datos en el objeto XRHandTracker.

Utiliza XRHandModifier3D para animar una malla de mano utilizando datos de seguimiento de la mano.

Tutoriales

Propiedades

TrackerHand

hand

1 (overrides XRPositionalTracker)

HandTrackingSource

hand_tracking_source

0

bool

has_tracking_data

false

TrackerType

type

16 (overrides XRTracker)

Métodos

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)


Enumeraciones

enum HandTrackingSource: 🔗

HandTrackingSource HAND_TRACKING_SOURCE_UNKNOWN = 0

La fuente de los datos de seguimiento de las manos es desconocida.

HandTrackingSource HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1

La fuente de datos de seguimiento de la mano no está obstruida, lo que significa que se utiliza un método preciso de seguimiento de la mano. Esto incluye el seguimiento óptico de la mano, guantes de datos, etc.

HandTrackingSource HAND_TRACKING_SOURCE_CONTROLLER = 2

La fuente de datos de seguimiento de la mano es un controlador, lo que significa que las posiciones de las articulaciones se infieren de las entradas del controlador.

HandTrackingSource HAND_TRACKING_SOURCE_NOT_TRACKED = 3

No se rastrean datos de seguimiento de la mano, esto significa que la mano está oculta, el controlador está apagado o el seguimiento no es compatible con el tipo de entrada actual.

HandTrackingSource HAND_TRACKING_SOURCE_MAX = 4

Representa el tamaño del enum HandTrackingSource.


enum HandJoint: 🔗

HandJoint HAND_JOINT_PALM = 0

Junta de palma.

HandJoint HAND_JOINT_WRIST = 1

Junta de muñeca.

HandJoint HAND_JOINT_THUMB_METACARPAL = 2

Articulación metacarpiana del pulgar.

HandJoint HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3

Articulación proximal de la falange del pulgar.

HandJoint HAND_JOINT_THUMB_PHALANX_DISTAL = 4

Articulación distal de la falange del pulgar.

HandJoint HAND_JOINT_THUMB_TIP = 5

Articulación de la punta del pulgar.

HandJoint HAND_JOINT_INDEX_FINGER_METACARPAL = 6

Articulación metacarpiana del dedo índice.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7

Articulación proximal de la falange del dedo índice.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8

Articulación intermedia de la falange del dedo índice.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9

Articulación distal de la falange del dedo índice.

HandJoint HAND_JOINT_INDEX_FINGER_TIP = 10

Articulación de la punta del dedo índice.

HandJoint HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11

Articulación metacarpiana del dedo medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12

Articulación proximal de la falange del dedo medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13

Articulación intermedia de la falange del dedo medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14

Articulación de la falange distal del dedo medio.

HandJoint HAND_JOINT_MIDDLE_FINGER_TIP = 15

Articulación de la punta del dedo medio.

HandJoint HAND_JOINT_RING_FINGER_METACARPAL = 16

Articulación metacarpiana del dedo anular.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17

Articulación proximal de la falange del dedo anular.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18

Articulación intermedia de la falange del dedo anular.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19

Articulación de la falange distal del dedo anular.

HandJoint HAND_JOINT_RING_FINGER_TIP = 20

Articulación de la punta del dedo anular.

HandJoint HAND_JOINT_PINKY_FINGER_METACARPAL = 21

Articulación metacarpiana del dedo meñique.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22

Articulación proximal de la falange del dedo meñique.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23

Articulación intermedia de la falange del dedo meñique.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24

Articulación distal de la falange del dedo meñique.

HandJoint HAND_JOINT_PINKY_FINGER_TIP = 25

Articulación de la punta del dedo meñique.

HandJoint HAND_JOINT_MAX = 26

Representa el tamaño del enum HandJoint.


flags HandJointFlags: 🔗

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_VALID = 1

Los datos de orientación de la articulación de la mano son válidos.

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2

La orientación de la articulación de la mano se sigue activamente. Puede que no se establezca si el seguimiento se ha perdido temporalmente.

HandJointFlags HAND_JOINT_FLAG_POSITION_VALID = 4

Los datos de posición de la articulación de la mano son válidos.

HandJointFlags HAND_JOINT_FLAG_POSITION_TRACKED = 8

La posición de la articulación de la mano se sigue activamente. Puede que no se establezca si el seguimiento se ha perdido temporalmente.

HandJointFlags HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16

Los datos de velocidad lineal de la articulación de la mano son válidos.

HandJointFlags HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32

Los datos de velocidad angular de la articulación de la mano son válidos.


Descripciones de Propiedades

HandTrackingSource hand_tracking_source = 0 🔗

La fuente de los datos del rastreo de la mano.


bool has_tracking_data = false 🔗

  • void set_has_tracking_data(value: bool)

  • bool get_has_tracking_data()

Si es true, los datos de seguimiento de la mano son válidos.


Descripciones de Métodos

Vector3 get_hand_joint_angular_velocity(joint: HandJoint) const 🔗

Devuelve la velocidad angular de la articulación de la mano dada.


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

Devuelve las banderas de la validez de los datos de seguimiento de la articulación de la mano dada.


Vector3 get_hand_joint_linear_velocity(joint: HandJoint) const 🔗

Devuelve la velocidad lineal de la articulación de la mano dada.


float get_hand_joint_radius(joint: HandJoint) const 🔗

Devuelve el radio de la articulación de la mano dada.


Transform3D get_hand_joint_transform(joint: HandJoint) const 🔗

Devuelve la transformación de la articulación de la mano dada.


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

Establece la velocidad angular de la articulación de la mano dada.


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

Establece flags sobre la validez de los datos de rastreo para la articulación de la mano dada.


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

Establece la velocidad lineal de la articulación de la mano dada.


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

Establece el radio de la articulación de la mano dada.


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

Establece la transformación de la articulación de la mano dada.