Sebastian Walchshäusl
Supervisor:Prof. Gudrun Klinker
Advisor:M.Sc. Sandro Weber
Submission Date:15.9.2019


Locomotion is one of the biggest current Problem for Immersion in VR. You need Locomotion if you want your virtual space to be walk able and if it is bigger than your tracked space. But when you use Locomotion techniques you easily can induce Cyber Sickness. To diminish Cyber Sickness, you need to make the player believe he stays static, which usually competes with the aspect of Immersion.

The goal of these Thesis is to find a viable trade off for low Cyber Sickness while keeping Immersion High in a working environment. For That Reasons two different approaches are developed and tested through user studies. In the first psychological approach the user should believe he moves through separate mechanics and is not moving himself, to diminish motion sickness. The second physiological approach uses Walking in place to move. Technology used is the HTC VIVE with 3 VIVE Trackers.


The tracker should be activated after the controllers are already connected and at best first activating left foot, than right foot and then hip tracker. Otherwise you may have to switch trackers.

Sometimes trackers and ligthouses or trackers and controllers will be switched, I found no good solution for that problem. Even if you cahnge the id manually, at least for the controllers input will still not be registered. Best course of action is to restart the Application

Components inside scene:

On the SteamVR CameraRig should be the VRLocomotionTracker script and the SteamVRControllerInput script. The Vive tracker script should have references to the child of a tracker (Tracker target), which should represent the initialized tracker position, not depending on the original tracker, which could be put on incorrectly. If ShouldShowAxis is true the y and x axis of each tracker will be shown. The SteamVRControllerInput should have the tracked object Controllers as script references. SimulateMovePress when activated simulates the button press to move the player. Speed In MperS is the max speed for walking in place and the base speed for hovering. The Locomotion changes at runtime by switching SetLocomotionBehaviour. 

A Manager Object should have the audio manager and particle manager attached with references to the audio files and particle systems, found under mixamorig_RightToeBase and mixamorig_LeftToeBase with the JetShoes Prefab for the Hovering method and also on right jet shoe audio the footstep sound.

In SteamVRControllerInput Logic for Input is defined. From their you can change which button presses should do which action. When pressing the left Application menue button the roation of the trackers will be corrected. Should be done before the heading is corrected, which can be done by pressing the right Application menue button. The right button also initializes the y position of the foot tracker to place them on equal hights.

Movement when Hovering is Done by pressing the touchpad and leaning in the direction you intended to go. More leaning is faster speed. To stop press one of the touchpads again. Walking In Place is similar, but to move forward you have to walk in place by hoisting your feet above a threshold and movement is again in the direction of leaning.


The Walking in Place method generated much less Cyber Sickness than the Hover method. But the Hover method was more immersive and usable.


Walking in Place should be applied if high sensitivity for Cyber Sickness is present, because it still has a high value of Immersion. Hovering should be used if Cyber Sickness isn't that important of a factor, so using the more usable and higher immersion method. For that reason its best to build in both methods and make switching, depending on users subjective sensitivity and choice, dynamic and easy to do.

[ PDF (optional) ] 

[ Slides Kickoff/Final (optional)]