Over the past few weeks, our Interns has been focusing on incorporating networked motion capture from Axis Neuron into our multiplayer in-house VR game, Salvaged.
This was no easy task, as data from the Axis Neuron application had to stream into Unity and onto the player model. However, this game is VR, and so the motion capture model had to be as perfectly aligned as possible with the real users body.
With some time and trickery, a solution was eventually found. All displacement data from axis Neuron is removed, and the model is forced to the headsets position, adjusted for the users height. The models root bone is the hips, meaning any movement in the vr headset moved the hips, not exactly brilliant for VR! This was accounted for by calculating the horizontal distance between the hips and the headset, then constantly removing this value from the headsets forward facing position, a bit of jargon, but it worked!
The motion capture suit adds a whole new dimension to the game, immersing the player whilst also adding some useful gameplay benefits! For example, the player health is now displayed on the models inside forearm, allowing for health at a quick glance without hindering the VR experience.
That’s not the only change our interns made. The game now features projectiles for each weapon, new damage types, new player roles, networked laser pointers, an in VR main menu, active games finder, in VR weapon customisation, new map selection mechanics, new menu navigation mechanics, new quality of life improvements (Auto aligning weapons with VR trackers, etc), real-world linked spawn locations, revamped calibration and more!
Though it was no easy feat, the Interns had a great time working on the project and problem solving their way to new solutions. The motion capture tech, however, is still fairly experimental, and the alignment is not always 1-1. This largely occurs to the ingame model not being the perfect size for the user playing the game, the game contains a ‘Set Height’ feature, however, this only adjusts the players overall height, not individual limb length.