Skip to content

Add Meta full-body support to lovr.headset.getSkeleton('body') - #1003

Open
jsepulveda-nvidia wants to merge 2 commits into
bjornbytes:devfrom
jsepulveda-nvidia:quest-skeleton
Open

Add Meta full-body support to lovr.headset.getSkeleton('body')#1003
jsepulveda-nvidia wants to merge 2 commits into
bjornbytes:devfrom
jsepulveda-nvidia:quest-skeleton

Conversation

@jsepulveda-nvidia

Copy link
Copy Markdown

Previously getSkeleton('body') only ever queried the BD tracker (XR_BD_body_tracking, 24 fixed joints), ignoring the FB/Meta tracker entirely even when XR_META_body_tracking_full_body was active. It now prefers the Meta full-body tracker (84 joints, positions + orientations) when active, falling back to BD otherwise, and reports the actual joint count and source ("bd"/"meta") back to Lua instead of assuming a fixed 24.

Previously getSkeleton('body') only ever queried the BD tracker
(XR_BD_body_tracking, 24 fixed joints), ignoring the FB/Meta tracker
entirely even when XR_META_body_tracking_full_body was active. It now
prefers the Meta full-body tracker (84 joints, positions +
orientations) when active, falling back to BD otherwise, and reports
the actual joint count and source ("bd"/"meta") back to Lua instead of
assuming a fixed 24.
@bjornbytes

Copy link
Copy Markdown
Owner

Thanks for the PR. I don't think it's very good to return 3 different kinds of skeletons from lovr.headset.getSkeleton('body'). This forces people to look at the headset/extension in use and remap joints themselves, which is too unfriendly compared to the rest of the API.

Instead, we probably need to massage the underlying data into a consistent format, either by picking a lowest-common-denominator skeleton or returning empty data for unsupported joints. Alternatively, we could continue the current strategy of doing nothing and waiting for an EXT extension 😄

It's probably worth opening an issue to discuss what the universal body skeleton should look like. I'd be interested in contributing to it when I have time.

@bjornbytes

Copy link
Copy Markdown
Owner

There's also this old body tracking issue that could get resurrected #840

HTC body skeleton support will not be pursued in the near term. Drops
the HTC body tracker creation/destruction, extension registration,
XrSystemBodyTrackingPropertiesHTC query, and the htc output of
lovrHeadsetGetBodyTrackingProviders(), keeping BD and Meta full-body
tracking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants