A photo of Max Glenister Max Glenister

18: Moving around in VR

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:

Cardboctober

To see the latest Cardboctober hacks, follow @cardboctober on Twitter

Check out my other Cardoctober posts here: /cardboctober

About the author

A photo of Max Glenister

Max Glenister

Max Glenister is a Front-end Developer based in Oxfordshire. For work he spends his time designing, validating and implementing user interfaces. For fun he tinkers with Virtual Reality, 3D printing, embedded systems, game development and many other things.

You can keep up with Max on Github, Twitter and Reddit