XRBodyTracker

实验性: This class may be changed or removed in future versions.

继承: XRPositionalTracker < XRTracker < RefCounted < Object

XR 中跟踪的身体。

描述

身体跟踪系统将创建该对象的实例并将其添加到 XRServer。然后,该跟踪系统将获取骨架数据,将其转换为 Godot 类人型骨架,并将该数据存储在 XRBodyTracker 对象上。

使用 XRBodyModifier3D 通过身体跟踪数据来动画化身体网格。

教程

属性

BitField[BodyFlags]

body_flags

0

bool

has_tracking_data

false

TrackerType

type

32 (overrides XRTracker)

方法

BitField[JointFlags]

get_joint_flags(joint: Joint) const

Transform3D

get_joint_transform(joint: Joint) const

void

set_joint_flags(joint: Joint, flags: BitField[JointFlags])

void

set_joint_transform(joint: Joint, transform: Transform3D)


枚举

flags BodyFlags: 🔗

BodyFlags BODY_FLAG_UPPER_BODY_SUPPORTED = 1

支持上半身跟踪。

BodyFlags BODY_FLAG_LOWER_BODY_SUPPORTED = 2

支持下半身跟踪。

BodyFlags BODY_FLAG_HANDS_SUPPORTED = 4

支持手部跟踪。


enum Joint: 🔗

Joint JOINT_ROOT = 0

根关节。

Joint JOINT_HIPS = 1

髋关节。

Joint JOINT_SPINE = 2

脊柱关节。

Joint JOINT_CHEST = 3

胸关节。

Joint JOINT_UPPER_CHEST = 4

上胸关节。

Joint JOINT_NECK = 5

颈关节。

Joint JOINT_HEAD = 6

头关节。

Joint JOINT_HEAD_TIP = 7

头部尖端关节。

Joint JOINT_LEFT_SHOULDER = 8

左肩关节。

Joint JOINT_LEFT_UPPER_ARM = 9

左上臂关节。

Joint JOINT_LEFT_LOWER_ARM = 10

左下臂关节。

Joint JOINT_RIGHT_SHOULDER = 11

右肩关节。

Joint JOINT_RIGHT_UPPER_ARM = 12

右上臂关节。

Joint JOINT_RIGHT_LOWER_ARM = 13

右下臂关节。

Joint JOINT_LEFT_UPPER_LEG = 14

左大腿关节。

Joint JOINT_LEFT_LOWER_LEG = 15

左小腿关节。

Joint JOINT_LEFT_FOOT = 16

左脚关节。

Joint JOINT_LEFT_TOES = 17

左脚脚趾关节。

Joint JOINT_RIGHT_UPPER_LEG = 18

右大腿关节。

Joint JOINT_RIGHT_LOWER_LEG = 19

右小腿关节。

Joint JOINT_RIGHT_FOOT = 20

右脚关节。

Joint JOINT_RIGHT_TOES = 21

右脚脚趾关节。

Joint JOINT_LEFT_HAND = 22

左手关节。

Joint JOINT_LEFT_PALM = 23

左掌关节。

Joint JOINT_LEFT_WRIST = 24

左腕关节。

Joint JOINT_LEFT_THUMB_METACARPAL = 25

左大拇指掌骨关节。

Joint JOINT_LEFT_THUMB_PHALANX_PROXIMAL = 26

左大拇指指骨近端关节。

Joint JOINT_LEFT_THUMB_PHALANX_DISTAL = 27

左大拇指指骨远端关节。

Joint JOINT_LEFT_THUMB_TIP = 28

左大拇指指尖关节。

Joint JOINT_LEFT_INDEX_FINGER_METACARPAL = 29

左食指掌骨关节。

Joint JOINT_LEFT_INDEX_FINGER_PHALANX_PROXIMAL = 30

左食指指骨近端关节。

Joint JOINT_LEFT_INDEX_FINGER_PHALANX_INTERMEDIATE = 31

左食指指骨中间关节。

Joint JOINT_LEFT_INDEX_FINGER_PHALANX_DISTAL = 32

左食指指骨远端关节。

Joint JOINT_LEFT_INDEX_FINGER_TIP = 33

左食指指尖关节。

Joint JOINT_LEFT_MIDDLE_FINGER_METACARPAL = 34

左中指掌骨关节。

Joint JOINT_LEFT_MIDDLE_FINGER_PHALANX_PROXIMAL = 35

左中指指骨近端关节。

Joint JOINT_LEFT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 36

左中指指骨中间关节。

Joint JOINT_LEFT_MIDDLE_FINGER_PHALANX_DISTAL = 37

左中指指骨远端关节。

Joint JOINT_LEFT_MIDDLE_FINGER_TIP = 38

左中指指尖关节。

Joint JOINT_LEFT_RING_FINGER_METACARPAL = 39

左无名指掌骨关节。

Joint JOINT_LEFT_RING_FINGER_PHALANX_PROXIMAL = 40

左无名指指骨近端关节。

Joint JOINT_LEFT_RING_FINGER_PHALANX_INTERMEDIATE = 41

左无名指指骨中间关节。

Joint JOINT_LEFT_RING_FINGER_PHALANX_DISTAL = 42

左无名指指骨远端关节。

Joint JOINT_LEFT_RING_FINGER_TIP = 43

左无名指指尖关节。

Joint JOINT_LEFT_PINKY_FINGER_METACARPAL = 44

左小指掌骨关节。

Joint JOINT_LEFT_PINKY_FINGER_PHALANX_PROXIMAL = 45

左小指指骨近端关节。

Joint JOINT_LEFT_PINKY_FINGER_PHALANX_INTERMEDIATE = 46

左小指指骨中间关节。

Joint JOINT_LEFT_PINKY_FINGER_PHALANX_DISTAL = 47

左小指指骨远端关节。

Joint JOINT_LEFT_PINKY_FINGER_TIP = 48

左小指指尖关节。

Joint JOINT_RIGHT_HAND = 49

右手关节。

Joint JOINT_RIGHT_PALM = 50

右掌关节。

Joint JOINT_RIGHT_WRIST = 51

右腕关节。

Joint JOINT_RIGHT_THUMB_METACARPAL = 52

右大拇指掌骨关节。

Joint JOINT_RIGHT_THUMB_PHALANX_PROXIMAL = 53

右大拇指指骨近端关节。

Joint JOINT_RIGHT_THUMB_PHALANX_DISTAL = 54

右大拇指指骨远端关节。

Joint JOINT_RIGHT_THUMB_TIP = 55

右大拇指指尖关节。

Joint JOINT_RIGHT_INDEX_FINGER_METACARPAL = 56

右食指掌骨关节。

Joint JOINT_RIGHT_INDEX_FINGER_PHALANX_PROXIMAL = 57

右食指指骨近端关节。

Joint JOINT_RIGHT_INDEX_FINGER_PHALANX_INTERMEDIATE = 58

右食指指骨中间关节。

Joint JOINT_RIGHT_INDEX_FINGER_PHALANX_DISTAL = 59

右食指指骨远端关节。

Joint JOINT_RIGHT_INDEX_FINGER_TIP = 60

右食指指尖关节。

Joint JOINT_RIGHT_MIDDLE_FINGER_METACARPAL = 61

右中指掌骨关节。

Joint JOINT_RIGHT_MIDDLE_FINGER_PHALANX_PROXIMAL = 62

右中指指骨近端关节。

Joint JOINT_RIGHT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 63

右中指指骨中间关节。

Joint JOINT_RIGHT_MIDDLE_FINGER_PHALANX_DISTAL = 64

右中指指骨远端关节。

Joint JOINT_RIGHT_MIDDLE_FINGER_TIP = 65

右中指指尖关节。

Joint JOINT_RIGHT_RING_FINGER_METACARPAL = 66

右无名指掌骨关节。

Joint JOINT_RIGHT_RING_FINGER_PHALANX_PROXIMAL = 67

右无名指指骨近端关节。

Joint JOINT_RIGHT_RING_FINGER_PHALANX_INTERMEDIATE = 68

右无名指指骨中间关节。

Joint JOINT_RIGHT_RING_FINGER_PHALANX_DISTAL = 69

右无名指指骨远端关节。

Joint JOINT_RIGHT_RING_FINGER_TIP = 70

右无名指指尖关节。

Joint JOINT_RIGHT_PINKY_FINGER_METACARPAL = 71

右小指掌骨关节。

Joint JOINT_RIGHT_PINKY_FINGER_PHALANX_PROXIMAL = 72

右小指指骨近端关节。

Joint JOINT_RIGHT_PINKY_FINGER_PHALANX_INTERMEDIATE = 73

右小指指骨中间关节。

Joint JOINT_RIGHT_PINKY_FINGER_PHALANX_DISTAL = 74

右小指指骨远端关节。

Joint JOINT_RIGHT_PINKY_FINGER_TIP = 75

右小指指尖关节。

Joint JOINT_MAX = 76

代表 Joint 枚举的大小。


flags JointFlags: 🔗

JointFlags JOINT_FLAG_ORIENTATION_VALID = 1

该关节的方向数据有效。

JointFlags JOINT_FLAG_ORIENTATION_TRACKED = 2

关节的方向是主动跟踪的。如果跟踪暂时丢失,则可能无法设置。

JointFlags JOINT_FLAG_POSITION_VALID = 4

该关节的位置数据有效。

JointFlags JOINT_FLAG_POSITION_TRACKED = 8

关节的位置是主动跟踪的。如果跟踪暂时丢失,则可能无法设置。


属性说明

BitField[BodyFlags] body_flags = 0 🔗

捕获的身体跟踪数据的类型。


bool has_tracking_data = false 🔗

  • void set_has_tracking_data(value: bool)

  • bool get_has_tracking_data()

如果为 true,则身体跟踪数据有效。


方法说明

BitField[JointFlags] get_joint_flags(joint: Joint) const 🔗

返回有关给定身体关节的跟踪数据的有效性的标志(请参阅 JointFlags)。


Transform3D get_joint_transform(joint: Joint) const 🔗

返回给定身体关节的变换。


void set_joint_flags(joint: Joint, flags: BitField[JointFlags]) 🔗

设置有关给定身体关节的跟踪数据的有效性的标志。


void set_joint_transform(joint: Joint, transform: Transform3D) 🔗

设置给定身体关节的变换。