XR Player Controller [03] | Dencho

XR Player Controller [03]

My third attempt was focused on better locomotion and hand tracking for full body avatars

One of the earliest prototypes to exist at the time (2020) that I know of, to contain a full body avatar and finger tracking.

Devices tested:

  • Oculus CV1
  • Oculus Quest 1

Technologies used:

  • Vroid SDK (Avatars)
  • Oculus VR SDK
  • UnityXR SDK

I was one of the first developers in the industry to achieve fullbody avatars working with finger tracking. Once you get past the hurdle of different bone orientations the rest is pretty simple, I was just a dev with just enough free time to actually do it.

Skeletal Mesh Orientation Mismatch (S.M.O.M.)

S.M.O.M. happens when one mesh skeletal bone structure has incompatible orientations with another set of bones, leading to misalignment when trying to animate or manipulate them consistently. It’s essential to ensure that both hand meshes follow the same bone orientation conventions to avoid issues during animation and rigging processes. However sometimes this cant be avoided when sourcing from different third parties, in this case I had trouble aligning VRoid Hand Skeleton to match with the Hand Skeleton from the OVR SDK used for hand tracking.

Bypassing S.M.O.M.

When dealing with skeletal mesh orientation mismatches between two hand skeletons, you can use a transformation formula to align their orientations. This approach allows you to transfer the orientation from one hand to another, even if they initially have different orientations.

Using this formula here I was able to avoid this issue, however the custom tool I made requires a basic understanding of how Quaternions work.

Using a Homemade VRoid Avatar, which uses a Universal Skeleton Armature. This is what happened when trying to sync up rotations from OVR custom hand skeleton to the VRoids hand.

Locomotion Testing

Locomotion Jumping with Physics still needs work.

Related