Movement in VR

Movement In VR

by Michael Cosgrove

additions by Robert Koch

Movement in VR

This is a wiki page on different kinds of movement used for VR software. It is meant to be a general guide and analysis on the different options most commonly used.

Physical Movement

Most VR software allows you to physically move your head around the scene as well. The only exception to this might be along certain axes in something that is not a complete 3D scene, such as moving up-and-down in a 360 degree video (try watching one of them sitting in a chair and then try standing up in the middle of it).

Some VR software will only allow physical movement in your space. This does have the benefit of being completely intuitive (you are moving just as you would in the real world), but it can be especially limiting depending on how much space you have to move around physically.

It should be noted that this often complemented by either another movement type (as it often is), or there should be a way to move your environment around you (e.g., as in DinoVR).

Point and Click Teleportation

Many games will use this method to reduce motion sickness. This usually entails seeing some UI highlighting on the floor based on where the user points one of their controllers.

Side Note: VRChat does something similar to this, but somewhat unique. Essentially, you see your avatar walk toward where you are pointing the controller. It seems that this allows users to see what they look like when they are walking, since it would be weird to just see other people teleporting all over the place instead of walking.

Walking in-view

This method essentially involves smoothly shifting the camera in the direction of where a user is pointing an analog stick on their controller. This might be considered more intuitive than teleportation, but it unfortunately has been known to cause motion sickness fairly easily. This is most likely because your eyes receive feedback that you are moving while the rest of your body does not.

VRChat has an example of this method in their settings.

Unity Example

Here is a link to a GitHub repository as an example of these different movement options in Unity.

You can walk in-view using the left analog stick. The right analog stick will quickly shift your view. You can teleport using the grip buttons.

There is a file called "test.apk" that you can directly use on a Quest 2.

WebVR Testing

The A-Frame toolkit for WebVR development provides different options for movement that are relatively straightforward to implement -- see here for an example guide for using the teleport component. Since WebVR is very accessible to different users, you can use these environments to test out different movement options yourself and determine what works best for your app.

Flying Controls

Movement through flying can be an effective way for users to move around an area with a controller, in a potentially more straightforward method than teleportation. However, flying can cause motion sickness in some instances, so it is important to test and provide alternative movement options, if possible. Here is an example of flying movement in an A-Frame project, while allows for adjustable speed.