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.
Checking the stable version of the documentation...
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) 🔗
Устанавливает преобразование для указанного сустава руки.