Godot Version
4.3
Question
I’m trying to get input from XR hand tracking. Specifically, I need the position of the finger tips (at least the thumb and index finger). I do not need the entire skeleton for any other reason, nor do I need to display the hand itself.
From what I have been able to find, this is best done using an XRNode3D with a XRHandModifier3D. This requires the use of a Skeleton3D, but I can’t find much information on how to use this. For one thing, no-where have I found how to add bones to the skeleton. I have tried using the hands from xrToolkit, but they are badly distorted (the bones are rotated) because they are not OpenXR hands. I did find one hand model that is OpenXR, but then I can’t find how to extract, build, or link (whichever is required) the skeleton.
Any help would be greatly appreciated!
Ive got some OpenXR compliant hand meshes in GitHub - Malcolmnixon/GodotXRHandPoseDetector: Godot XR Hand Pose Detector which can be driven by the XRHandModifier3D.
You can then create BoneAttachment3D nodes as children of the hand skeleton and driven by the tip-bones.
Thanks!
I assume I only need the gltf (and bin) files?
When I add them to the scene I can see the models and they track to my hands during runtime, but the fingers don’t move.
My current setup:
XROrigin
| - XRNode3D
| - - HandModel (gltf)
| - - - Skeleton3D
| - - - - XRHandModifier
But the skeleton contains no bones, and I can’t figure out how to add them. I assume this is causing the issue, that the modifier doesn’t know what to update.
I can also see the armature that is part of the hand gltf, but I don’t know how to access it.
When I try to use the BoneAttachment3D, there are no bones to select
Figured it out, it turns out that I missed the “Make Children Editable” option. All works now, thanks!