When a VR user is lying down (recumbent), their default orientation is orthogonal to the world’s, and a few challenges are introduced. The one I am currently tackling is how to have an intuitive, but non-invasive menu.
In most Cardboard apps, the standard is to place the menu at the “feet” of the user, or directly downward from their head. Clearly, this will not work for someone who is lying on their back, as the menu would be beneath them. Placing the menu at their “feet” also doesn’t work, because one of the most necessary uses of the in-game menu is to recenter the world’s orientation to that of the user.
The gyroscopes of most mobile phones introduce drift to the user’s orientation, causing it to slowly change over time. The user needs to be able to set up the initial orientation of the virtual world to match their own, and to occasionally re-synchronize the two. To this end, I need to be able to have the user bring up the menu from any point around the world’s vertical axis.
Since the entirety of this VR experience’s action takes place in the sky, I consider the hemisphere above the user to be the “game space”. Firing fireworks into the ground, after all, does not produce a desirable effect (also it means I would need to add collision detection to the terrain). So, when the user looks down past a certain angle, the UI menu appears, and tracks their orientation around the vertical axis, allowing them to re-orient the world to their physical position with ease. Once the user looks back up into the sky, the menu slides underground again, out of view.
I find it fairly easy to use, although I’ll leave it to user testing to see if it’s an effective and intuitive method of presenting a menu to a prone user. The fact that the user is lying down looking the sky also means that synchronizing their orientation with their real self is not particularly important, but maybe I just like an interesting problem to solve.