reckfellENGINE

XRBodyTracker

Суставы тела, возможности и отдельная валидность данных.

На этой странице
class XRBodyTrackerReckfellSharpНаследует XRPositionalTracker

XRBodyTracker хранит скелетные данные поставщика, не решает IK по отдельным трекерам. Наличие объекта не подтверждает аппаратное tracking. Новый экземпляр имеет Type=Body, Hand=Unknown, HasTrackingData=false и BodyFlags=0.

Подтверждён дефект: начальные JointFlags не инициализированы. Собственный поставщик должен заполнить флаги и трансформы нужных суставов до включения данных; игровой код не должен обходить проверку ручным true. В текущем SDK 87 суставов, а Joint.Max — граница.

Проверяйте HasTrackingData и валидность каждого используемого сустава. BodyFlags описывает поддерживаемые области и не заменяет JointFlags. GetJointTransform возвращает копию в пространстве поставщика; для локальных костей нужна отдельная работа с Root/родительскими суставами. Потеря данных сохраняет старые значения.

Проверены искусственные данные и законченный reader относительно Root, а не реальный поставщик или полный аватар. Пример, роли трекеров и диагностика: отслеживание тела.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

XRBodyTrackerКонструктор
# XRBodyTracker
C#
public XRBodyTracker();

Создаёт контейнер тела: Type=Body, Hand=Unknown, HasTrackingData=false, BodyFlags=0. Дефект: начальные JointFlags не инициализированы. Собственный provider должен заполнить их до включения данных. Не обнаруживает тело и не регистрирует устройство автоматически.

Свойства2

BodyFlagsСвойство
# BodyFlags
C#
public XRBodyTracker.BodyFlagsEnum BodyFlags { get; set; }

Побитовая маска поддерживаемых областей: UpperBodySupported, LowerBodySupported, HandsSupported; изначально 0. Метаданные возможностей, не флаги валидности суставов. Setter не вычисляет HasTrackingData или наличие суставов.

HasTrackingDataСвойство
# HasTrackingData
C#
public bool HasTrackingData { get; set; }

Флаг данных тела, изначально false. Setter не заполняет суставы, не меняет BodyFlags и не создаёт positional pose default. При false значения суставов сохраняются, но не являются текущими. Игровой код читает состояние поставщика, не включает пустой контейнер.

Методы8

GetBodyFlagsXRBodyTracker.BodyFlagsEnum
# GetBodyFlags
C#
public XRBodyTracker.BodyFlagsEnum GetBodyFlags();

Читает сохранённую маску возможностей. Ненулевое значение не подтверждает текущие данные суставов.

Возвращает XRBodyTracker.BodyFlagsEnum

Маска возможностей, изначально 0.

GetHasTrackingDatabool
# GetHasTrackingData
C#
public bool GetHasTrackingData();

Возвращает флаг тела в целом; дополнительно проверяйте каждый нужный сустав и его родителя.

Возвращает bool

Сохранённый bool тела.

GetJointFlagsXRBodyTracker.JointFlags
# GetJointFlags
C#
public XRBodyTracker.JointFlags GetJointFlags(XRBodyTracker.Joint joint);

Читает маску Position/Orientation VALID и TRACKED. До заполнения поставщиком значения не гарантированы из-за дефекта конструктора. TRACKED не заменяет VALID; выберите политику для оценённых pose.

Параметры
ИмяТипПо умолчанию
jointXRBodyTracker.Joint—
joint

Сустав XRBodyTracker.Joint; Max — граница, не допустимый сустав. Проверьте диапазон до вызова.

Возвращает XRBodyTracker.JointFlags

Маска сустава; до инициализации не гарантирована.

GetJointTransformTransform3D
# GetJointTransform
C#
public Transform3D GetJointTransform(XRBodyTracker.Joint joint);

Возвращает копию трансформа сустава в пространстве поставщика без проверки флагов. Не считайте его автоматически мировым или локальным относительно кости-родителя. Для сопоставления нужны согласованные трансформы Root и родителей.

Параметры
ИмяТипПо умолчанию
jointXRBodyTracker.Joint—
joint

Сустав XRBodyTracker.Joint; Max — граница, не допустимый сустав. Проверьте диапазон до вызова.

Возвращает Transform3D

Transform3D по значению в пространстве поставщика.

SetBodyFlagsvoid
# SetBodyFlags
C#
public void SetBodyFlags(XRBodyTracker.BodyFlagsEnum flags);

Побитовая маска поддерживаемых областей: UpperBodySupported, LowerBodySupported, HandsSupported; изначально 0. Метаданные возможностей, не флаги валидности суставов. Setter не вычисляет HasTrackingData или наличие суставов.

Параметры
ИмяТипПо умолчанию
flagsXRBodyTracker.BodyFlagsEnum—
flags

Маска поддерживаемых областей тела, не валидность суставов.

SetHasTrackingDatavoid
# SetHasTrackingData
C#
public void SetHasTrackingData(bool hasData);

Флаг данных тела, изначально false. Setter не заполняет суставы, не меняет BodyFlags и не создаёт positional pose default. При false значения суставов сохраняются, но не являются текущими. Игровой код читает состояние поставщика, не включает пустой контейнер.

Параметры
ИмяТипПо умолчанию
hasDatabool—
hasData

Флаг данных тела в целом; не делает все суставы валидными.

SetJointFlagsvoid
# SetJointFlags
C#
public void SetJointFlags(XRBodyTracker.Joint joint, XRBodyTracker.JointFlags flags);

Сохраняет маску одного сустава, не меняя трансформ, BodyFlags или HasTrackingData. API поставщика, не команда включения аппаратного tracking.

Параметры
ИмяТипПо умолчанию
jointXRBodyTracker.Joint—
flagsXRBodyTracker.JointFlags—
joint

Сустав XRBodyTracker.Joint; Max — граница, не допустимый сустав. Проверьте диапазон до вызова.

flags

Маска валидности/tracking выбранного сустава; не BodyFlags.

SetJointTransformvoid
# SetJointTransform
C#
public void SetJointTransform(XRBodyTracker.Joint joint, Transform3D transform);

Сохраняет трансформ без пересчёта флагов или остальных суставов. Не выполняет IK, не создаёт pose default и не перемещает модель аватара.

Параметры
ИмяТипПо умолчанию
jointXRBodyTracker.Joint—
transformTransform3D—
joint

Сустав XRBodyTracker.Joint; Max — граница, не допустимый сустав. Проверьте диапазон до вызова.

transform

Трансформ в согласованном пространстве поставщика. Не локальная pose кости, если provider явно не определил такое соглашение.

XRBodyTracker.BodyFlagsEnum

ЗначениеОписание
HandsSupported = 4

Поддерживается отслеживание рук.

СОВМЕСТНАЯ РОТА

LowerBodySupported = 2

Поддерживается отслеживание нижней части тела.

UpperBodySupported = 1

Поддерживается отслеживание верхней части тела.

XRBodyTracker.Joint

ЗначениеОписание
Chest = 3

Грудной сустав.

Head = 6

Головной сустав.

HeadTip = 7

Сустав кончика головы.

СОВМЕСТНЫЙ СЛУЧАЙ

Hips = 1

Тазобедренный сустав.

LeftFoot = 16

Сустав левой стопы.

LeftFootTwist = 81

Поворотный сустав левой стопы.

СОВМЕСТНЫЙ ТЕЛЕФОН

LeftHand = 22

Сустав левой руки.

LeftHeel = 82

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

LeftIndexFingerMetacarpal = 29

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

LeftIndexFingerPhalanxDistal = 32

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

LeftIndexFingerPhalanxIntermediate = 31

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

LeftIndexFingerPhalanxProximal = 30

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

LeftIndexFingerTip = 33

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

LeftLowerArm = 10

Левый нижний сустав руки.

СОВМЕСТНАЯ ЧАСТЬ

LeftLowerLeg = 15

Сустав левой голени.

СОВМЕСТНЫЕ ПРАКТИЧЕСКИЕ СВЯЗИ

LeftMiddleFingerMetacarpal = 34

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

LeftMiddleFingerPhalanxDistal = 37

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

LeftMiddleFingerPhalanxIntermediate = 36

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

LeftMiddleFingerPhalanxProximal = 35

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

LeftMiddleFingerTip = 38

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

LeftMiddleFoot = 83

Левый средний сустав стопы.

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ

LeftPalm = 23

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

LeftPinkyFingerMetacarpal = 44

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

LeftPinkyFingerPhalanxDistal = 47

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

LeftPinkyFingerPhalanxIntermediate = 46

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

LeftPinkyFingerPhalanxProximal = 45

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

LeftPinkyFingerTip = 48

Сустав кончика мизинца левой руки.

СОВМЕСТНАЯ ЧАСТЬ

LeftRingFingerMetacarpal = 39

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

LeftRingFingerPhalanxDistal = 42

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

LeftRingFingerPhalanxIntermediate = 41

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

LeftRingFingerPhalanxProximal = 40

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

LeftRingFingerTip = 43

Кончик безымянного пальца левой руки.

LeftScapula = 77

Левый лопаточный сустав.

LeftShoulder = 8

Левый плечевой сустав.

СОВМЕСТНАЯ ПРАКТИЧЕСКАЯ РАБОТА

LeftThumbMetacarpal = 25

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

LeftThumbPhalanxDistal = 27

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

LeftThumbPhalanxProximal = 26

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

LeftThumbTip = 28

Сустав большого пальца левой руки.

LeftToes = 17

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

LeftUpperArm = 9

Левый верхний сустав руки.

LeftUpperLeg = 14

Левый верхний сустав ноги.

LeftWrist = 24

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

LeftWristTwist = 78

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

LowerChest = 76

Нижний грудной сустав.

Max = 87

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

Neck = 5

Шейный сустав.

СОВМЕСТНО

RightFoot = 20

Сустав правой стопы.

СОВМЕСТНЫЕ ПРЕКРАЩЕНИЯ

RightFootTwist = 84

Поворотный сустав правой стопы.

RightHand = 49

Сустав правой руки.

RightHeel = 85

Правый пяточный сустав.

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ

RightIndexFingerMetacarpal = 56

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

RightIndexFingerPhalanxDistal = 59

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

RightIndexFingerPhalanxIntermediate = 58

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

RightIndexFingerPhalanxProximal = 57

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

RightIndexFingerTip = 60

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

RightLowerArm = 13

Правый нижний сустав руки.

RightLowerLeg = 19

Правый голеностопный сустав.

СОВМЕСТНАЯ ПРАКТИКА

RightMiddleFingerMetacarpal = 61

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

RightMiddleFingerPhalanxDistal = 64

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

RightMiddleFingerPhalanxIntermediate = 63

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

RightMiddleFingerPhalanxProximal = 62

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

RightMiddleFingerTip = 65

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

RightMiddleFoot = 86

Правый средний сустав стопы.

RightPalm = 50

Правый ладонный сустав.

СОВМЕСТНАЯ СВЯЗЬ

RightPinkyFingerMetacarpal = 71

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

RightPinkyFingerPhalanxDistal = 74

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

RightPinkyFingerPhalanxIntermediate = 73

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

RightPinkyFingerPhalanxProximal = 72

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

RightPinkyFingerTip = 75

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

RightRingFingerMetacarpal = 66

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

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ_ФИНАЖЕР_ФАЛАНКС_ПРОКСМАЛЬ

RightRingFingerPhalanxDistal = 69

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

RightRingFingerPhalanxIntermediate = 68

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

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ_ФИНАЖЕР_ФАЛАНКС_ПИСАНИЕ

RightRingFingerPhalanxProximal = 67

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

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ_ФИНГЕР_ФАЛАНКС_ИНТЕРМОДЕНТ

RightRingFingerTip = 70

Кончик безымянного пальца правой руки.

RightScapula = 79

Правый лопаточный сустав.

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ

RightShoulder = 11

Правый плечевой сустав.

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ

RightThumbMetacarpal = 52

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

RightThumbPhalanxDistal = 54

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

СОВМЕСТНАЯ ПРЕКРАЩЕНИЕ

RightThumbPhalanxProximal = 53

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

RightThumbTip = 55

Кончик большого пальца правой руки.

RightToes = 21

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

RightUpperArm = 12

Правый верхний сустав руки.

RightUpperLeg = 18

Правый верхний сустав ноги.

RightWrist = 51

Правый лучезапястный сустав.

RightWristTwist = 80

Поворотный сустав правого запястья.

Root = 0

Корневой сустав.

СОВМЕСТНЫЕ СВЯЗИ

Spine = 2

Позвоночник.

СОВМЕСТНАЯ СВЯЗЬ

UpperChest = 4

Верхний грудной сустав.

XRBodyTracker.JointFlags

ЗначениеОписание
OrientationTracked = 2

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

OrientationValid = 1

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

PositionTracked = 8

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

PositionValid = 4

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

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.