The next step for us will be to fix some of the bugs we’ve encountered such as the UI spinning while making the UI as well as add in two pairs of glasses that we can equip and remove from our player, each of which with different UI elements that can be adjusted as the player sees fit.
Image: group member Oscar playtesting
Implementing glasses
One key aim for our implementation of this virtual reality experiment was to make it possible to use different styles of UI. We chose to create different glasses (downloaded models from the asset store) each with their own UI canvas (made by us) attached to them which are enabled when the glasses are equipped. The goal is to make putting on the glasses and taking them off feel natural, and this is what we found:
The glasses had a tendency to collide with the UI. By this, we mean if there was already UI enabled and the player brings the glasses to their face through the UI, it will hit the UI’s colliders and mess with the physics. Our fix for this, other than disabling UI from being enabled before the glasses are equipped rather than enabled as soon as they collide with the head, was to use a different script provided by NewtonVR which disables collisions on objects which are being held. We did question disabling the collisions on the UI however this would mean the UI is no longer interactable.
After fixing this, we made it so the glasses snap to the player’s head when they are brought to the head and released. This works better than just having them attached wherever they are placed because it means the player doesn’t have to perfectly align them to their face; the glasses will snap to the perfect position (that position took a lot of tweaking of numbers for it to feel natural).
We deliberated on whether the glasses should be visible whilst attached and decided to make them invisible due to our own opinion when testing and playtester’s feedback in the first stage: they felt it was obscuring the UI and reducing the field of view. When thought about logically, those who wear glasses in real life generally can’t see their glasses/they forget they are there. The same doesn’t seem to apply to VR. Looking into the issue we decided having the glasses become mostly transparent when they are equipped would be the most practical and natural. Now when the glasses are donned the glasses quickly fade out just so that the player can still see them as well as the UI being visible. This way the player won’t forget they have them equipped and know they can remove them.
Another issue testers encountered was it was difficult to pick the glasses up off of the floor. Simple solution: put them on a table (standard white cube in Unity).
Just like putting them on, we also made it possible to take them off of course (with them becoming visible again). The intention of implementing glasses with different UI was to provide different potential styles the player can chose to use in a wider game and be as easy as trying on glasses. The final demo we create may be something which can be placed in an options menu.
The next steps from here would be to create more glasses each with a full UI with individual styles and also make the UI elements rotate in relation to the player’s head position almost as if the canvas is a concave sphere around the player.