At the time of this request, the client's application was 100% in 'screenspace'. They were going to begin the process of porting their content over to VR. I was tasked with creating a design document that would account for all current forms of in-world navigation.
CLIENT: How do we bridge the gap of 'screenspace' navigation to VR navigation?
• Review current 'screenspace' application
• Itemize all possible methods of in-world navigation.
• Review current VR applications
• Create Documentation & User Stories
• Review with Team
Below is an example of the Screenspace UI...
The user has many methods of moving about the environment they are in..
1. Step Teleport Icon - Clicking on this teleports the user to where they needed to be for the current step.
2. Keyboard/Mouse - (Unless locked) The user could click about the scene or use the Arrow Keys.
3. Teleport List - The user is presented with a list of locations to teleport to.
Note: Options 2 & 3 are not possible (at this time) in the client's VR interface.
VR Navigation Options
So below I list out some possible options for navigation in VR...
01. Arc Jumping via Controllers
Some user may have different set-ups (room-scale or static/sitting). Due to these variables, we will be implementing an Arc Jump system. This type of teleportation/instant movement is common in most VR experiences that requires movement.
The concept is simple. The user points their VR controller in a direction. A preview of the trajectory is shown, so the user knows where they are going. The user interacts with the VR controller to move where they picked.
The user should be able to move around the environment via arc projection.
1) Touch L2 or R2 to display Arc.
2) Move the same VR controller around to adjust where the Arc terminates.
3) Click the L2, or R2, to teleport to the point of arc termination.
To cancel the Arc preview, the user will stop touching L2, or R2.
02. Zone Jumping
We have, and will have, many different types of simulations in VR. Some will be in one room, others may encompass an entire house. Having such a wide array of environments we are going to implement Inter-Zone and Intra-Zone movement.
What are those things, Chris? Well I am glad you have asked. So, let’s say, you are in a house. From where you stand (in the Living Room) you can see the Kitchen and Laundry Room. It is very clear where one room ends and another begins because they either have physical walls or some kind of visual cue. Now instead of rooms, let’s call them zones. You have 3 zones, one of which you are current in.
‘Intra Zone’ Movement
Now maybe I want to go sit on the couch in the Living Zone. I would use the Arc Jumping interaction written above. As long as I am within the boundaries of my zone I can jump to a precise location. Now I am really hungry and would like a snack…
‘Inter Zone’ Movement
I really want a snack, so I am going to go to the Kitchen Zone. From where I stand I can see the Kitchen but it is a different zone. So when I point my VR Controller over to that area I would see the boundary of that zone light up/highlight. When I decide to jump there I will be placed at a default location for that zone. Again the controls/UX for this is the same as Intra Zone movement, but the result is different.
The main difference here is the precision of the jump. This system has benefits to our application. We wouldn’t have to load up a (1) fully detailed area, that I am not in, at launch and (2) also the interactions associated with all the elements in that other zone.
03. Via UI Element
The other method of moving about an environment is via a UI element. This UI element is usually a map, or blueprint. The intent here to discuss how this UI element would help movement.
The user should be able to move around the environment via a UI element (Map/Blueprint/List).
1) The user will be presented with a UI element that contains locations to teleport to:
a) This element could be:
i) A text list of locations.
ii) The Step Teleport icon.
iii) A visual list of locations, with labels (i.e. map, blueprint)
iv) A miniature version of the environment/locations.
2) The user can use either VR controller to ‘Laser Point’ at their selection.
a) The selection being ‘pointed at’ will highlight to clarify to the user that it is the one they are considering.
3) To finalize the selection the user will ‘Trigger Pull & Release’.
4) The user will be teleported to the location they have selected.
Comments & Concerns
It is necessary to list out the things that were of immediate concern, and possible future issues.
To Teleport or Not Teleport...
As we create new VR experiences and port over our Screenspace simulations we will encounter situations where the user will not be presented with a complete robust teleportation experience. Simply put in some simulations the user will have options for both Intra and Inter Zone Movement. In other simulations the user may not have this feature enabled.
•Inter/No Intra - The simulation is about interacting with specific objects in different areas.
Let's say the user is working on the MSP in the basement but they need to also check some machinery in the attic. The user would have no need to jump around the basement, but they do need to jump to the Attic.
•Intra/No Inter - The simulation is about interacting with specific objects in one area.
Let's say the user is only working on the MSP and Water Heater in the basement. The user would be able to jump around the basement but will have no need to change rooms.
•No Intra or Inter - The simulation is about interacting with one specific object or many objects in one very small area.
Let's say the user is only working on the MSP in the basement - or- working on the MSP and another device adjacent to it. The user would not need to jump around at all, since both things are within reach of each other.
It might be worth discussing the user's expectation across simulations. If we feel that users assume teleportation would be in all of our simulations then it might be necessary to inform them in some way. We could mention it in a popup, maybe in the settings or on launch. We could also have a popup appear if the user attempts to teleport (the criteria for this would need to be determined).