Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: lower level OpenXR-centric hand tracking API #206

Open
goatchurchprime opened this issue May 9, 2022 · 0 comments
Open

Comments

@goatchurchprime
Copy link

There are two Godot interfaces to the hand-tracking features, OpenXRSkeleton and OpenXRHand, both of which set a series of relative transforms to the components of the tree of finger bones entities, and return no further data. See for example

if (hand_tracker->is_initialised && hand_tracker->locations.isActive) {

However, the the OpenXR HandJoint spec provides absolute transforms for each finger joint relative to the ARVROrigin, as well as joint radii (distance from the joint position to the surface of the skin of the palm if you multiply by the -y vector), and cartesian and angular velocities.

It might be easier to develop working code and the hand skeletons if we accessed the transforms provided by the OpenXR interface directly without this processing and multiplying out, because it might not be quite right. For example, the original quest plugin returned a list of quaternion orientations for the bones (instead of full transforms), which meant that the hand was never distorted by any bones being scaled/stretched. The orientations should always point back to the previous joint, but we could use the distance to select different hand meshes (eg child's hands).

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

No branches or pull requests

1 participant