After deciding ropes are not viable for us we had a long discussion about the mechanics that we considered before we tried implementing ropes. In the end we felt that none of these mechanics were right for us nor did we want to just create a game in VR. We fell back on an idea that our lecturer Lloyd Savickas briefly mentioned about creating an Ironman-esque UI.
We took a look at various styles of UI that can be used in VR. These include Diegetic, Non-diegetic, and Spatial.
Non-Diegetic UI is the form of UI most games use, in which UI is overlaid on a flat plane over the game world. Things such as inventory screens, the players health or mana bars, and other such elements typical in PC games.
Spatial UI is UI that is placed somewhere in the world and has no attachment to the player. Elements such as arrow trails in the world to point the player to the next destination or quest, or an HP bar above an enemy’s head.
Diegetic UI is a form of Spatial UI, except that unlike other forms of UI which display information to the human behind the screen, this UI is also known to the in-game characters, performing some kind of functionality or being mentioned by AI. This type of UI is more integrated in to the environment than Spatial UI. As mentioned previously, HP bars above an enemy’s head is Spatial UI, but if those HP Bars are only shown when your character purchases and equips advanced high-tech observation goggles then that UI becomes Diegetic, as its existence is now related to the game itself.
There’s also Meta UI, which is a form of Non-Diegetic UI except it also has some kind of link to the in-game character itself. For instance, a blood splatter effect around the screen edges or water droplet effect on the screen to show that something happened to the in-game character would be a type of Meta-UI.
We’ve decided to create a Diegetic UI that the player can move and configure in VR. The player will ultimately be able to place different forms of headgear such as glasses and helmets on their in-game characters, each of which has a different set of UI panels that the player can then customise the position of relative to his own in all 3 axis of movement. So far we’ve implemented billboarded UI elements that can be picked up and placed relative to the players view, including being placed further or closer to the view. We have a few bugs we need to fix but at the moment it’s working well.
One of those bugs is when the player looks up, the UI spins around. The reason for this is the rotation hitting 360 degrees and instead of then increasing further, it’s resetting to zero causing it to spin crazily.
It’s hard to see, but there is a “hello” in the images below which is interactable.