Welcome to the final VRGO blog post and episode for 2016. From VRGO and Autodesk, we hope you all have a great end of year break. VRGO will return in January, so keep your eyes on AREA for the next episode then. In Episode 5, we spend time looking at the great progress Tim and Cathy have made. The game is nearly complete, and now has an animated hero character, some rough effects, and the level background has been modeled and added to the game.
UI in VR
Building the user interface is an important part of any game pipeline. Some games have lots of UI, while others take a minimalist approach. When developing for VR however, using traditional on-screen HUD elements can cause a strange parallax effect and ultimately can lead to what has been called simulation sickness. Simulation sickness, ultimately really just motion sickness, should be a major concern for VR developers to focus on avoiding. One way to help prevent it is to use what is known as a diegetic user interface. Diegesis is a type of story telling, where the world is shown through a character's narrative. In game development, a diegetic interface is a user interface or HUD that the player's avatar, as opposed to the player, can see. Of course, the player can see whatever the avatar sees.
For instance, rather than having a traditional HUD health bar that only the player can see, a diegetic health bar might take the shape of a health bar on a space marine's arm band. The space marine could look at his arm band (perhaps a wearable computer) to see how much physical harm he has received. Good VR games will use this type of UI to both create a more "present" player experience and avoid simulation sickness.
Rotation Animations vs. Controller Rotations
Another common issue that comes up when developing VR titles is that of how to deal with animations that affect or are affected by controller rotations, such as is possible with HTC Vive's controllers. In the case of our VRGO project, we have a handheld mouse, who is attached to an airplane wing. When you flip the airplane wing over, the mouse should dangle appropriately due to gravity. The airplane wing rotates naturally as the player rotates the Vive controller in his hand. In a traditional game, this rotation might be handled instead by a button press or joystick motion. And very often a keyframed animation is created in Maya or Max that rotates the object. In the case of VR controllers, this keyframed animation step is eliminated. So for our mouse character, rather than rotating the wing in Maya, we simply leave the wing upright, and animate the mouse as if the wing has flipped. Then, in the game engine's code, or in the animation state machine, the game watches for the controller to rotate to a specific threshold value at which point we play the appropriate animation of the mouse flopping or dangling as it reacts to the controller's motion.
- As always, you can catch VRGO live on the Autodesk Twitch channel: http://www.twitch.tv/autodeskgamedev
- Be sure to watch Rocket 5 Studios on their channel: http://www.twitch.tv/rocket5studios
Enjoy episode 5 folks!