Decreasing VR motion sickness with proximity based speed
The most important hurdle for virtual reality to become a big success is motion sickness. In this article I describe a technique that can decrease motion sickness when moving around using controller input. The core of the technique is that the speed at which you a moving around depends on the proximity of objects around you. This technique will be implemented in the next release of InstantVR.In many games there is a need for moving around, either by foot of in a vehicle. When the virtual movements are completely derived from the physical movements this is very natural. However, most people cannot move around physically very far without bumping into real walls and other objects. And besides that, we are still limited by several wires of the controllers we use. Therefore we use additional input which results in movement in the virtual world without actual movement in the real world. This difference is a main cause of motion sickness.
You should notice that not all environments cause the same amount of motion sickness. The awkward feeling is not very strong when walking in an open field but when you walk close to a wall, the risk for getting sick is much higher. This is because you can see a lot more movement which tells your brain something is wrong. Small movements will cause big changes on the display but the same movements in the open field have hardly any effect on the image shown on the display.
As you might know, I am working on modelling a historical village as part of my Virtual Time Travel activities. I do a lot of walking around using the left thumbstick of my controller. When in the streets, this works well, but when I enter a house things get worse. I feel the need to slow down. Slowing down prevents me from running against door frames, but also reduced the motion sickness feeling.
So I decided to do a number of experiments to investigate whether motion sickness can be reduced by slowing down when you are in the proximities of objects. For this, I added a collider with a radius of one meter around my avatar. When this collider hits an static or dynamic object, the speed is reduced. When we get closer to the object, we reduce the speed more up to the point where we are against the object and then we stop.
This technique has a twofold effect:
- Deceleration is smoother when the are running into walls. The avatar is no longer stopped abruptly when hitting a wall. Rapid changes in speed are known to induce motion sickness.
- The avatar moves more slowly when in the neighbourhood of objects. This reduced the motions on the display caused by artifical movement input and therefore reduced motion sickness as I have described above.
Proximity base speed will be part of InstantVR version 2.1.