9 Tips to Preventing Motion Sickness When Developing For Virtual Reality 3


Developing for Virtual Reality (VR) is unlike any other type of software development. Not only do you need to be concerned with the development of the VR experience itself, you also need to make sure it will not make the user sick. If you create something amazing, but no one can play it then it is no good.

My goal in this post is to offer 9 tips on what you can do during development to make sure your VR experience will not cause the majority of your users to become sick while in VR.


Add a Point of Reference

Adding a point of reference can easily improve the level of comfort of your users while they are in VR. This is the reason why in many VR titles you will find that the player is wearing some sort of helmet or in an enclosed object like a cockpit. Just adding a simple point of reference, like a nose helps provide a sense of stability and grounds the player. These point of references give the player something to look at when they are doing fast turning in VR.

Here are some examples of VR titles that make use of different types of point of references:

Nose

Eagle Flight

Eagle Flight – nose reference point while in motion

Notice that there is the tip of an eagle’s beak at roughly where your nose would be relative to where your eyes are. It is hard to tell from the image, but in VR, the nose would be barely noticeable, much like your nose in real life.

Cockpit

Eve Valkyrie

Eve Valkyrie – turning cockpit with HUDs as reference point

The reference points here are the cockpit and the 3D heads-up display (HUDs). When the user turns their head, the cockpit will follow their head rotation while the spaceship moves forward slowly. For some people, this will be nauseating, if they were not looking at the cockpit or HUDs while turning.

Project Cars

Project Cars – fast motion turn with wheel or car itself as reference points

The reference point is the car the user is inside of or the wheel. When making quick turns looking out of the car can be nauseating, but if you are looking inside the car it is unlikely. In addition, being inside the car makes you feel safe and grounded, whereas without being in the car, you would feel like you are floating very fast in space.

Use Slow Motion

If your VR experience allows for slow motion, you should definitely make use of them. The more predictable the movements of the camera and the VR environments are, the less motion sickness the user will experience. Slow motion, fewer rapid camera movements, fewer accelerations, blur effects, and camera shakes, will help address the issue of motion sickness. The better the user can understand where they are in the virtual world, the more comfortable they will feel. In addition, slow motion means you are not doing a lot of frame draws, which helps in maintaining a high FPS (frames-per-seconds).

Here is how the Bullet Train make use of slow motion

Bullet Train – slow motion bullets

Use Teleportation

Robo Recall – teleportation with trajectory

Many VR experiences utilize teleportation as their primary locomotion. Teleportation removes movement visualizations, which are the cause of motion sickness. It also allows the user to explore a vast VR environment in a compact play area.

There are other forms of locomotion that you can use in VR beside teleportation. To find out about more types of locomotion, you can visit my post about the current state of locomotion in VR.

Always Give the User Full Control of the Camera

Do not make the camera move without explicit action from the user. Any movement to the camera without the user’s action will easily induce motion sickness. This applies to cinematic sequences and even a menu selection when the experience is paused.

Free movement of the camera is definitely a difficult challenge to overcome. It is possible that the user will miss something important. A common way developers get around this problem is to introduce a buddy for the user in the experience. This buddy drops hint from time to time to help the user when they missed something.

Avoid Complex Environments

Create the VR environment with simple polygon objects and do not cram too much into a small area. This helps in not overwhelming the user, thus improving their level of comfort. The more comfortable the user is, the more likely they will not experience motion sickness.

Keep Your VR Experience Optimized

One of the most important aspects of your VR experience is how well it runs. When your VR experience is running at a rate that is below the threshold of the VR platform you are targeting, your user will get sick. Generally, the requirement for high power VR (Vive and Rift) it is a minimum of 90 FPS. The exception is the PlayStation VR, which requires 120 FPS.

The best way to optimize your VR experience is to analyze its performance whenever you add something new. If you wait until the end then try to optimize, you will have a tough time. It is possible that functionalities need to be redone for it to be optimized. Some graphics might need a complete rework because it is dragging down FPS too much. These scenarios are more on the extreme end, but it can be a possibility if you wait until the end to do optimization.

If you want to keep your VR experience optimized throughout development, you can apply some of the performance checks I talk about with VR development in Unreal Engine 4 (UE4). Even if you are not using UE4 for your VR development, the idea is similar.

Avoid Traditional HUD

Do not use two-dimensional HUDs in VR. This is because it will obstruct the user’s view and cause eye strain.

If you want to use HUDs in your VR experience you will have to make them into three-dimensional ones and have them be part of the VR environment. The HUDs can be floating in space, but they should not always follow the user. Try to use graphical HUDs because those are easy to see in VR. If you do use text, make sure they are large or else it will be strenuous to the user’s eyes.

If you are interested in using HUDs in your VR experience, I have a post about creating and using HUDs in VR.

Dynamic Field of View

Our perception correlates with sickness in VR. Therefore, reducing the user’s field of view (FOV) when they move can help with sickness in VR.

To reduce the user’s FOV means shrinking the area of the screen that the user sees and filling in the rest with black. This creates a similar view as if the user is looking through a pair of binoculars. The fixed black zone gives the brain a fixed reference, which helps with sickness when the user is in motion. This trick is used in various VR titles such as Google Earth VR and Eagle Flight.

Eagle Flight – dynamic FOV while in flight

The User’s Individual Characteristics

Despite all the software solution that you may try to introduce into your VR experience, there is one aspect that you cannot control and that is the user’s characteristics.

Some users may have certain physiological problems such as illnesses related to motion coordination, casual tiredness, lack of sleep, etc. All of them are beyond your control as a developer. Some people are more likely to get sick when they are in a car or sitting on an airplane. No amount of solutions that targets motion sickness is going to help them.


I hope this post helps you develop some smooth VR experiences. If you found this post helpful, share it with others so they can benefit from it.

Did you implement something else that I did not talk about and would to share it? Do you have any questions? If so, feel free to leave a comment, send me a tweet, or send me an email at steven@brightdevelopers.com. I will be glad to hear from you.

To stay in touch, you can follow me on twitter.


About Steven To

Steven To is a software developer that specializes in mobile development with a background in computer engineering. Beyond his passion for software development, he also has an interest in Virtual Reality, Augmented Reality, Artificial Intelligence, Personal Development, and Personal Finance. If he is not writing software, then he is out learning something new.

3 thoughts on “9 Tips to Preventing Motion Sickness When Developing For Virtual Reality

Comments are closed.