XRHandTracker

Наследует: XRPositionalTracker < XRTracker < RefCounted < Object

Отслеживаемая рука в XR.

Описание

Система отслеживания рук создаст экземпляр этого объекта и добавит его в XRServer. Затем эта система отслеживания получит данные скелета, преобразует их в скелет руки гуманоида Godot и сохранит эти данные в объекте XRHandTracker.

Используйте XRHandModifier3D для анимации сетки руки с использованием данных отслеживания рук.

Обучающие материалы

Свойства

TrackerHand

hand

1 (overrides XRPositionalTracker)

HandTrackingSource

hand_tracking_source

0

bool

has_tracking_data

false

TrackerType

type

16 (overrides XRTracker)

Методы

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)


Перечисления

enum HandTrackingSource: 🔗

HandTrackingSource HAND_TRACKING_SOURCE_UNKNOWN = 0

Источник данных отслеживания рук неизвестен.

HandTrackingSource HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1

Источник данных отслеживания рук не имеет препятствий, что означает, что используется точный метод отслеживания рук. К ним относятся оптическое отслеживание рук, перчатки с данными и т. д.

HandTrackingSource HAND_TRACKING_SOURCE_CONTROLLER = 2

Источником данных отслеживания рук является контроллер, то есть положения суставов определяются на основе входных данных контроллера.

HandTrackingSource HAND_TRACKING_SOURCE_NOT_TRACKED = 3

Данные отслеживания руки не отслеживаются. Это означает, что рука закрыта, контроллер выключен или отслеживание не поддерживается для текущего типа ввода.

HandTrackingSource HAND_TRACKING_SOURCE_MAX = 4

Представляет размер перечисления HandTrackingSource.


enum HandJoint: 🔗

HandJoint HAND_JOINT_PALM = 0

Ладонный сустав.

HandJoint HAND_JOINT_WRIST = 1

Лучезапястный сустав.

HandJoint HAND_JOINT_THUMB_METACARPAL = 2

Пястно-запястный сустав большого пальца.

HandJoint HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3

Проксимальный сустав фаланги большого пальца.

HandJoint HAND_JOINT_THUMB_PHALANX_DISTAL = 4

Дистальный сустав фаланги большого пальца.

HandJoint HAND_JOINT_THUMB_TIP = 5

Сустав кончика большого пальца.

HandJoint HAND_JOINT_INDEX_FINGER_METACARPAL = 6

Пястно-запястный сустав указательного пальца.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7

Проксимальный сустав фаланги указательного пальца.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8

Промежуточный сустав фаланги указательного пальца.

HandJoint HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9

Дистальный сустав фаланги указательного пальца.

HandJoint HAND_JOINT_INDEX_FINGER_TIP = 10

Кончик указательного пальца.

HandJoint HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11

Пястно-запястный сустав среднего пальца.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12

Проксимальный сустав фаланги среднего пальца.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13

Промежуточный сустав фаланги среднего пальца.

HandJoint HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14

Дистальный сустав фаланги среднего пальца.

HandJoint HAND_JOINT_MIDDLE_FINGER_TIP = 15

Кончик среднего пальца.

HandJoint HAND_JOINT_RING_FINGER_METACARPAL = 16

Пястно-запястный сустав безымянного пальца.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17

Проксимальный сустав фаланги безымянного пальца.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18

Промежуточный сустав фаланги безымянного пальца.

HandJoint HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19

Дистальный сустав фаланги безымянного пальца.

HandJoint HAND_JOINT_RING_FINGER_TIP = 20

Сустав кончика безымянного пальца.

HandJoint HAND_JOINT_PINKY_FINGER_METACARPAL = 21

Пястно-запястный сустав мизинца.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22

Проксимальный сустав фаланги мизинца.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23

Промежуточный сустав фаланги мизинца.

HandJoint HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24

Дистальный сустав фаланги мизинца.

HandJoint HAND_JOINT_PINKY_FINGER_TIP = 25

Сустав кончика мизинца.

HandJoint HAND_JOINT_MAX = 26

Представляет размер перечисления HandJoint.


flags HandJointFlags: 🔗

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_VALID = 1

Данные об ориентации сустава кисти достоверны.

HandJointFlags HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2

Ориентация сустава руки активно отслеживается. Не может быть установлена, если отслеживание временно потеряно.

HandJointFlags HAND_JOINT_FLAG_POSITION_VALID = 4

Данные о положении сустава кисти достоверны.

HandJointFlags HAND_JOINT_FLAG_POSITION_TRACKED = 8

Положение сустава руки активно отслеживается. Не может быть установлено, если отслеживание временно потеряно.

HandJointFlags HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16

Данные о линейной скорости сустава кисти достоверны.

HandJointFlags HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32

Данные об угловой скорости сустава кисти достоверны.


Описания свойств

HandTrackingSource hand_tracking_source = 0 🔗

Источник данных отслеживания рук.


bool has_tracking_data = false 🔗

  • void set_has_tracking_data(value: bool)

  • bool get_has_tracking_data()

Если true, данные отслеживания руки действительны.


Описания метода

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) 🔗

Устанавливает преобразование для указанного сустава руки.