You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Was having some trouble getting good results on a humanoid rig, so stripped things back today and hacked together a scene which just spits out marker meshes for all the (75) joints found in XRServer.get_trackers(32).get("/user/body_tracker"). It showed JOINT_RIGHT_SHOULDER and JOINT_LEFT_SHOULDER behaving very weirdly... as if their order of rotation-translation was messed up or something?
Digging into the specs* and openxr_fb_body_tracking_extension_wrapper.cpp, I see we don't map the scapula - which makes sense enough - but then ALSO that there's an adjustment made to those very same two joints: JOINT__SHOULDER? Suspicious. Then came across a magic number (-0.07) and couldn't get my head around how the adjustment is actually meant to work beyond that, I'm afraid :-/
I'll be first to admit... issue could easily be on Meta's side, my headset, even my big bushy beard getting in the way! Or just my imagination. However, don't seem to have any tracking issues of the ilk on any other platforms, and all signs point to this as the biggest anomaly on the rigging I was attempting.
Are we confident the 'adjustment' of shoulder_offset, along with the mapped starting quaternions, are working as intended?
Yep. Definitely something off. It appears we can force a shoulders worse case scenario by tracking a character / avatar at 45deg to ref. IE, shoulder placement may seem passable when avatar basis matches XROrigin / World, as the green capsules indicate here.
But reference the world 45deg 'clockwise', and you find both shoulders appearing on the same side of the torso... whereas all the non-adjusted trackers - where the vendor plugin simply maps them 1:1 - are where they should be!
The-Cyber-Captain
changed the title
'Adjustment' mapping for XRBodyTracker::JOINT_<XXXX>_SHOULDER appears borked?
XRBodyTracker::JOINT_<XXXX>_SHOULDER is broken ('Adjustment' mapping bugged)
Oct 28, 2024
Tested versions
plugin v3.0.1
Editor 4.4-dev1, 4.3-stable
Issue description
Was having some trouble getting good results on a humanoid rig, so stripped things back today and hacked together a scene which just spits out marker meshes for all the (75) joints found in XRServer.get_trackers(32).get("/user/body_tracker"). It showed JOINT_RIGHT_SHOULDER and JOINT_LEFT_SHOULDER behaving very weirdly... as if their order of rotation-translation was messed up or something?
Digging into the specs* and openxr_fb_body_tracking_extension_wrapper.cpp, I see we don't map the scapula - which makes sense enough - but then ALSO that there's an adjustment made to those very same two joints: JOINT__SHOULDER? Suspicious. Then came across a magic number (-0.07) and couldn't get my head around how the adjustment is actually meant to work beyond that, I'm afraid :-/
I'll be first to admit... issue could easily be on Meta's side, my headset, even my big bushy beard getting in the way! Or just my imagination. However, don't seem to have any tracking issues of the ilk on any other platforms, and all signs point to this as the biggest anomaly on the rigging I was attempting.
Are we confident the 'adjustment' of shoulder_offset, along with the mapped starting quaternions, are working as intended?
*https://developers.meta.com/horizon/documentation/native/android/move-ref-body-joints
https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#_conventions_of_body_joints
The text was updated successfully, but these errors were encountered: