XRHandTracker
Наследует: XRPositionalTracker < XRTracker < RefCounted < Object
Отслеживаемая рука в XR.
Описание
Система отслеживания рук создаст экземпляр этого объекта и добавит его в XRServer. Затем эта система отслеживания получит данные скелета, преобразует их в скелет руки гуманоида Godot и сохранит эти данные в объекте XRHandTracker.
Используйте XRHandModifier3D для анимации сетки руки с использованием данных отслеживания рук.
Обучающие материалы
Свойства
hand |
|
|
|
||
|
||
type |
|
Методы
get_hand_joint_angular_velocity(joint: HandJoint) const |
|
BitField[HandJointFlags] |
get_hand_joint_flags(joint: HandJoint) const |
get_hand_joint_linear_velocity(joint: HandJoint) const |
|
get_hand_joint_radius(joint: HandJoint) const |
|
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 🔗
void set_hand_tracking_source(value: HandTrackingSource)
HandTrackingSource get_hand_tracking_source()
Источник данных отслеживания рук.
bool has_tracking_data = false 🔗
Если 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) 🔗
Устанавливает преобразование для указанного сустава руки.