I’m trying to figure out the best way to move my Character’s head and arms using my headset and controller movements. My objective is to get that IK-like movement for my character, similar to VRChat or other VR games. So when I move my hand, it should move the rest of the arm, or if I physically crouch, the knees bend just by following my head movement.
So far I managed to move the head nicely using a custom SkeletonModifier3D script. For the arms and legs I’m not sure what to do. I looked at a couple of nodes:
LookAtModifier3D: I found a nice video on YouTube that shows you how to chain bones to get that IK like effect. Not sure if this is a good tool for the job though.
SkeletonIK3D: I completed ignored this node since it’s deprecated.
SkeletonModifier3D: This is what I used for the head, but can I chain the legs and arms to get the same effect?
XRBodyModifier3D: I read this was experimental y could or could not be removed? I can’t find any tutorials.
XRHandModifier3D: Never got it to work, but still need to look into it.
I’ll add some extra context just in case it helps.
Headset: Quest 3
OS: Windows 11 Pro
Godot 4.5.1 Stable
Using Virtual Desktop (not deploying Standalone)
Character is using a BoneMap of SkeletonProfileHumanoid
Ok, there is a lot to unpack here, there is no straight answer to this. I’m just going to discuss in reverse order.
XRHandModifier3D purely applies posing of the finger bones provided this is supported on the runtime. On standalone hardware it does require the vendor plugin being installed and the correct permission being setup. SteamVR supports it out of the box, I do not know if Virtual Desktop supports it.
You can find an example of it being used here: https://github.com/godotengine/godot-demo-projects/tree/master/xr/openxr_hand_tracking_demo
XRBodyModifier3D is a system that abstracts obtaining a half or full body skeleton from an external source.
I don’t believe SteamVR supports this, and I don’t think Virtual Desktop does either.
SkeletonModifier3D is just a base class on which all the modifiers are build. You can build your own IK solutions on top of this and some people have. But this is plugin territory. You can have a look at V-Sekai, they have a full body tracking system based on IK that I think does this.
SkeletonIK3D is deprecated, but currently the only built-in option you have if you want to animate your skeleton through IK, it works decently but is fairly limited.
LookAtModifier3D I haven’t used, so I can’t really comment.
It’s no longer being maintained but the Godot XR Avatar Project is still a decent demo project to check out. Though it uses older implementations of the IK node (from before skeleton modifiers were introduced). Still its provides some decent input.