Godot Version
4.6
Question
I am currently working on implementing Full-Body IK (Inverse Kinematics) for my VR game. I’ve run into a common issue regarding the discrepancy between the player’s real-world body dimensions and the pre-rigged 3D avatar’s proportions.
The Problem: When the player’s height or arm span does not perfectly match the avatar’s skeleton, the IK solver produces awkward results. For example:
-
If the player is taller than the avatar, the avatar’s knees are constantly bent even when the player is standing straight.
-
If the arm spans differ, the avatar’s hands cannot reach the actual controller positions, or the elbows look unnatural.
My Question: What is the standard workflow or best practice to solve this?
-
Uniform Scaling: Should I simply scale the entire
CharacterBodyorRoot Nodeuniformly to match the player’s eye height? -
Bone Scaling/Retargeting: Is it better to procedurally scale specific bones (e.g., lengthen the spine or upper arms) at runtime to match the player’s measurements?
-
View Offset: Or should I just adjust the camera offset and accept some mismatch in the limbs?
Any advice, algorithms, or references to how other VR titles handle this calibration process would be greatly appreciated!
Thanks in advance.