Immersion VR

Immersion VR is an interactive building inside which the user can move around, change materials and use a lift, designed for the Oculus Rift. An important aspect of the project was to design a remarkable, intuitive user experience.

User experience

Hands and Controllers

To make the user feel more immersed, I opted to display his or her hands and a simplified version of the Oculus Touch controllers in the application. The simplified version of the controllers is made out of only the top of the controllers, which hides some buttons that aren't used in the application and allows to better see the hands.

Hands and Controllers

To make the user feel more immersed, I opted to display his or her hands and a simplified version of the Oculus Touch controllers in the application. The simplified version of the controllers is made out of only the top of the controllers, which hides some buttons that aren't used in the application and allows to better see the hands.

Choosing a surface

In order to change an object's material, the user simply has to point at it with the index finger of his or her dominant hand, which then either shows a red or green line. If the line is green, the user can change the material by clicking the A or respectively the X button. If he or she presses the A or X button when the line is red, an error sound is played and the controller slightly vibrates.

Choosing a surface

In order to change an object's material, the user simply has to point at it with the index finger of his or her dominant hand, which then either shows a red or green line. If the line is green, the user can change the material by clicking the A or respectively the X button. If he or she presses the A or X button when the line is red, an error sound is played and the controller slightly vibrates.

Clicking on materials

After having selected a material to edit, a selection of materials appear. The currently active material is highlighted, and the user can choose a new one by pressing it with the index finger. The material selection can be closed by moving the hand to the green checkmark sphere.

Clicking on materials

After having selected a material to edit, a selection of materials appear. The currently active material is highlighted, and the user can choose a new one by pressing it with the index finger. The material selection can be closed by moving the hand to the green checkmark sphere.

Moving around

Moving in virtual reality is a complicated topic since the user's brain often is confused when moving in VR but not in the real world. For this reason, I implemented a teleportation mechanism, where a parabolic arc shows where the user will be teleported to.

Moving around

Moving in virtual reality is a complicated topic since the user's brain often is confused when moving in VR but not in the real world. For this reason, I implemented a teleportation mechanism, where a parabolic arc shows where the user will be teleported to.

Lift

As a fun little feature, I made a functional lift. The user simply has to stand in front of it to open the doors. When the user enters, the doors are being closed and the lift starts moving.

Lift

As a fun little feature, I made a functional lift. The user simply has to stand in front of it to open the doors. When the user enters, the doors are being closed and the lift starts moving.

Interactive tutorial

Having to explain how the controls work while someone is wearing a VR headset sucks. During an interactive tutorial at the beginning of the experience, the user is prompted to do various tasks, which takes the burden (or at least some of it) from the presenter's shoulders and in general is a great way to have a user learn the controls.

Interactive tutorial

Having to explain how the controls work while someone is wearing a VR headset sucks. During an interactive tutorial at the beginning of the experience, the user is prompted to do various tasks, which takes the burden (or at least some of it) from the presenter's shoulders and in general is a great way to have a user learn the controls.

Helper texts

During the experience, small helper texts appear next to the controller, which remember the user how to do something.

Helper texts

During the experience, small helper texts appear next to the controller, which remember the user how to do something.

Telling the user where the UI is

If a user is standing too close to an object when wanting to change materials, the material selection will appear left, right or behind him or her. To avoid confusion, the voice that was present during the tutorial will tell the user where the material selection appears.

Telling the user where the UI is

If a user is standing too close to an object when wanting to change materials, the material selection will appear left, right or behind him or her. To avoid confusion, the voice that was present during the tutorial will tell the user where the material selection appears.

Design guidelines

When designing the controls, I did some research on creating an intuitive user experience and good design guidelines. Below are listed the guidelines that have seemed most helpful to me for this project.

Discoverability

The user can find out which actions are possible and how to do them.

Feedback

The user receives information on the result of his or her actions.

Natural mappings

The relationship between the controls and the controlled objects are clear.

Designer's fault

If a user doesn't seem to get how something works, it usually is the designer's fault

Audio

Audio can make one feel as if they have touched something.

Text in VR

Text is difficult to read because of the relatively low pixel density of the VR headset.

Distance restrictions

User interfaces that are too close to the user's eyes (less than 50cm) feel uncomfortable.

Rotation restrictions

Users can turn their heads easily by 30 degrees to the left and right. More than that should be avoided.

Movement in VR

Moving in VR but not moving in the real world can cause sickness.

Usability testing

While the theory is very helpful in the beginning phase of designing the controls, getting an opinion from other people is very important as well. For this project, I originally wanted to do a lot of tests with different people but ended up only doing tests with a few. Nevertheless, their feedback and reactions were extraordinarily useful to me.

Environment design

To have the user enjoy using the app, creating an interesting and visually appealing building was crucial. I decided to design a foyer of a small concert hall since there's a lot of room for creativity in this type of building and the ceiling can be much higher than in an apartment for instance.

Sketching

To come up with ideas for the building, I did a lot of collecting reference photos and inspiration, sketching concepts on paper and then roughly modeling them in Blender.

Sketching

To come up with ideas for the building, I did a lot of collecting reference photos and inspiration, sketching concepts on paper and then roughly modeling them in Blender.

3D Modeling

3D Modeling was entirely done using Blender. Blender's great viewport options allowed to quickly see how the foyer looks with lights and some basic materials.

3D Modeling

3D Modeling was entirely done using Blender. Blender's great viewport options allowed to quickly see how the foyer looks with lights and some basic materials.

Baking

For a lot of models in the scene, I created a high poly version and a low poly version. The normals of the high poly version were then baked in Substance Painter and applied to the low poly version to create a highly detailed look while having an efficient 3D model.

Baking

For a lot of models in the scene, I created a high poly version and a low poly version. The normals of the high poly version were then baked in Substance Painter and applied to the low poly version to create a highly detailed look while having an efficient 3D model.

Texture Creation

For this project, I created a bunch of materials in Substance Designer and reused some I've already created for cgbookcase.com. Displayed are the materials that were created explicitly created for this project.

Substance Designer materials created for Immersion VR.

I also published breakdowns of two materials created for this project.

Development

Development was done using Unreal Engine 4 and C++. I had no prior experience working with C++ and almost none using Unreal Engine 4, so this was the most time-consuming part.

The entire code of this project can be found on the GitHub repository of this project.

Further information

Demo video

Credits

This project was done as my "Maturitätsarbeit" (kind of a final thesis or project) at the school I'm going to. The written part of the project available for download (german).

Voice Acting: Selma Schwager (german voice), Liv Weiss (english voice)
Supervision: Hanspeter Siegfried, Deborah Signer
Hand 3D model created by SuperDasil
Chair and table 3D models are based on models from Vitra. Sink and toilets are from Kohler.

Interested in working together?
Shoot me an email:
dorian@dorianzgraggen.com