Big devpost today. I'm still really happy that we are doing away with SteamVR for the controller bindings. Let me summarize the history behind it with me in Unity:
>Viva Project implements SteamVR back in v0.5
>SteamVR was an unofficial solution to the growing problem for developing in the VR ecosystem with new devices popping up every month (2019)
>SteamVR as a result is a mess and hardly worked, bindings had errors
>Viva Project implements OpenXR for v0.9
>SteamVR is no longer required as button mappings are now handled by Unity's implementation
>yay
The next big challenge for the new VR player rig is creating the rig itself. Today I finished the first iteration of it and it works very well so far. There were a few headaches when I was trying to create it.
The first problem was that I wanted the VR player controller to operate with ragdoll physics, meaning every limb must be physics-y. This turned out to be not feasible because every tiny bump with the feet made the VR user throw up from disorientation. So it was back to the drawing board. Eventually I settled on removing the physics from the legs and only keeping the torso. However, I had a new problem, handling the animations of the feet. Since they were no longer going to be animated by physics, I had to implement a way to make them seem like they are still grounded in the world. And so I wrote footstep IK for it. Here's the progress for it:
First I made a simple IK for each leg and I made each foot stand on the surface:

I'm beaming down rays from the hips to test for surfaces. I decided to use rays instead of sphere casts because they are cheaper and not a very common thing actively looked at (low visibility). Then I added a way to smoothly transition to each surface:

Then I had to look at situations where the legs crisscross into each other:

The solution for this was to clamp the knee to one side of the body, effectively constraining the knee to one side of the plane formed by the right normal of the hips:

Notice how the knees now maintain their side. After finishing animating the feet ik I began building a way for this half-physics half-ik rig to interact with the environment while also being moved by the VR camera. 1 big problems arose: In Unity, the physics happens at a different rate than the framerate. So there may be 3 frames happening before every tick of the physics. This lead to stuttering when I first implemented the VR rig to move to where the headset is. The solution for this was to have the physics bodies interpolate and moving the physics body every frame instead of every physics frame. All in all it came out very well so far. Here is the rig in action:

The upper half of the rig is physics so you can push yourself up a wall. Example:

I should have used a taller wall to test this out but I did pull myself off the floor.
As for the next update. Since I said I want to start doing more frequent beta releases, this VR upgrade will be part of build #3 in about 2 weeks! I now need to test it out with the mod tools!
Stay tuned!