18: Moving around in VR
This post was published in 2016 and is kept here for reference. It may contain information that's outdated or inaccurate.
Unless your VR experience is a roller coaster or some other sort of rail-based experience, you shouldn’t take movement control away from the user. Lack of movement control can cause VR sickness.
Here are a couple of approaches for user-controlled movement in VR:
Gamepad
An obvious hangover from non-VR first-person games, moving around with a gamepad is an easy way to provide movement in your 3D space. You can still look around using orientation-based movement.

D-pad to move back/forward/left/right and an additional button to jump or interact.
Teleportation
A movement device that is becoming more prevalent in VR is teleportation. If you’ve got some sort of motion-controls (such as the Vive controllers) in typical VR this is quite easy to achieve. In Google Cardboard WebVR experiences you’ll need to rely on retical-based movement.
The user is projects a circle or marker to where they want to move to, and then they are teleported there.
In my day 12 hack – AAAAH! Zombies – I used retical-based teleportation. I actually stole this from Pete’s earlier day 11 hack: Blink.

Voice control
I played around with this in day 09’s hack: Speech Recognition to move a ball around, but it could easily be adapted to moving the user around. Simple commands such as “move forward 10” or “move left 5”, much like the old Television series “Knightmare” where the team command their blind team-mate around with commands

Gesture-based
Something I’ve been thinking about (but have yet to execute) is gesture-based movement. This would be something like listening for a motion pattern (such as nodding your head) and acting based on that.
You could more simply make the user move in the direction they’re looking when the screen is touched for a period of time.
Recently I played an Android game (Gravity Pull) that used a method of movement called “VR-Step”. VR-Step uses “Inertial sensing” to allow you to move in the direction you’re looking. You can see how it works here:

See also:
Part of the "Cardboctober" series
- Announcing Cardboctober
- 01: Basic VR
- 02: Raycaster based look interaction
- 03: Even better gazed based look interaction
- 04: Skyboxes and generating meshes
- 05: Loading external models
- 06: VR Pairs Game
- 07: Cardboard hardware (cardware?)
- 08: Playing sounds
- 09: Speech recognition
- 10: HTML5 Video
- 11: Webaudio Beat Sequencer
- 12: AAAAH! Zombies
- 13: AAAAH! More Zombies
- 14: Debugging your Cardboard with Chrome
- 15: The Hierarchy of Needs in Quick Google Cardboard Hacks
- 16: Getting in and out of Fullscreen
- 17: Displaying Pertinent Information
- 18: Moving around in VR
- 19: Which way is North? Part 1
- 20: Which way is North? Part 2
- 21: One size doesn't fit all
- 22: Putting it all together
- 23: Planning Tetrominoes in VR
- 24: Basic Game Board
- 25: Creating and Moving Pieces
- 26: Rotating Pieces
- 27: Moving with gaze
- 28: Planning Revisited
- 29: Blocks out of the pram
- 30: Github Contributions
- 31: Something in the Shadows
Want to reply? I've hooked up Webmentions, so give it a go!