timaarntzen.com

The Duelling Club VR

This project was part of my graduation project, developed together with Joey van Merode. I was responsible for developing and testing the player avatar functionality. Due to my lack of engineering knowledge at the time, this was not an easy task for me. I developed a debugging tool to test the features of the game. In the debugging book I could for example set different avatar models. This way I could test if having a simulated full body was necessary to maintain immersion during battle gameplay. In conclusion, having a simulated body does help with making the illusion of VR work better.

The goal of the project was to develop the mechanics of the game. The visuals are not final in any way or shape, most visual assets were downloaded using Unreal Marketplace. This game prototype made for PC VR was made in Unreal Engine 4.25 and several free plugins were used, thanks to the creators.

The player has to cast magic spells using their wand to defend themselves and to attack other wizards and creatures.
To select different types of spells the player has to wave the wand around using pre defined gestures.
My task was to create a system where the game would recognize the motion of the wand. After some research the choice was made to implement VR Expansion plugin made by Joshua Statzer to speed up development.

After analysing several free plugins, I made the decision to use the UBIK plugin made by Jonas Molgaard for the avatar functionality and build upon it. I added a tool to change player meshes so I could test different avatar options like only arms+hands or full body. The core functionality could also be used for player character customization. Having good performance is key in VR so I looked at ways to reduce the disksize of several features by using Soft Object References instead of Hard Object References. 

One problem I encountered when in VR is that not everyone is the same height so the ingame avatar would not always portray the right scale.  A fix for this was to create a heigth calibration tool. The tool would take the Headset Height data and armwidth data (distance between the controllers when T-posing) and would divide the two to get an avarage height. But this meant that players would need to T-pose.
I needed the player to push their controller as far away as possible. So to combat I wanted the player to push two levers away from each other. This was not really intuative for most players. So after much iterating, in the end the player had to move a slider and then confirm their choice.

Scroll naar boven