top of page

Project 2

Virtual Reality

Introduction

This project is about exploring Virtual Reality. The purpose of this project is to explore what a kiosk in the new computer science building could look like. In this project you will see an example of an clothing accessory kiosk selling hats, watches, etc. .

This project was developed with the Unity Engine using a virtual reality library called VRTK. VRTK allows the application to be cross-platform and provides tools to help develop virtual reality applications. For this project you will need to have a Quest 1 or newer virtual reality headset. By running the application on the virtual reality headset you will be able to see, hear and interact with objects in the scene. 

Build From Source

- Links -

Source code: GitHub

VRTK SDK: Link

Unity Hub: Link

Unity Editor: Link

- Versions Used During Development -

VRTK SDK: 4.0.0

Unity Hub: 3.3.0

Unity Editor: 2021.3.6f1

- Recommended Versions -

VRTK SDK: 4.0.0

Unity Hub: 3.3.0 or Later

Unity Editor: 2021.3.6f1 or Later

1. Install Unity

a. Install Unity Hub from the link above

b. Use the Unity Editor link above to navigate to a valid editor version and select download with Unity Hub

c. When the modules screen shows up select Android

d. Wait until the install process is complete!

2. Configure Directory

a. Download code from link above

b. Put folder in desired directory

c. Extract folder if zipped

3. Open Project

a. Open Unity Hub and add root project directory 

4. Configure Project

a. Within the Unity Editor double click /Scenes/AccessoryKioskScene to open the correct scene

b. Running in Unity:

     i. Make sure that CameraRigs.SpacialSimulator GameObject is active and CameraRigs.UnityXRPluginFramework is inactive

             ii. Press Play!

 c. Running in virtual reality headset:

            i. Make sure that CameraRigs.SpacialSimulator GameObject is inactive and CameraRigs.UnityXRPluginFramework is active

               ii. Make sure headset is connected to computer

               iii. Go to File > Build Settings

               iv. Switch to Android Build Platform

               v. Change run device setting to connected device

               vi. Build and Run!

Open Source Assets

 1.Cell Phone

Web Asset, Source of Sound Based on Distance

Source: Link

2. Sombrero

Web Asset, Grabbable, Source of Sound When Collided With

Source: Link

3. Top Hat

Web Asset, Grabbable, Source of Sound When Collided With

Source: Link

4. Police Cap

Web Asset, Grabbable, Source of Sound When Collided With

Source: Link

5. Feather Hat

Web Asset, Grabbable, Source of Sound When Collided With

Source: Link

6. Jazz Music

Ambient Music

Source: Link

7. Old Radio

Web Asset, Grabbable, Source of Sound Changes Based on Distance

Source: Link

8. Café Seating

Web Asset, Customer Seating

Source: Link

9. Glasses Case

Web Asset, Grabbable

Source: Link

10. Glasses

Web Asset, Grabbable

Source: Link

11. Collared Shirt

Web Asset, Grabbable

Source: Link

12. Grey Belt

Web Asset, Grabbable

Source: Link

13. Grey Belt

Web Asset, Grabbable

Source: Link

14. White Belt

Web Asset, Grabbable

Source: Link

15. Tie Display

Web Asset, Grabbable

Source: Link

16. Phone Call

Ambient Sound Based on Distance

Source: Link

17. Excuse Me

Ambient Sound Based on Distance

Source: Link

18. Shoes

Web Asset, Grabbable

Source: Link

19. Coffee Cup

Web Asset, Grabbable, New Objects Generated by Coffee Machine

Source: Link

20. Coffee Sound Effect

Triggered by Interacting with Coffee Machine

Source: Link

21. Ticket Machine

Web Asset, Grabbable, Generates New Objects

Source: Link

22. Ticket Sound Effect

Triggered by Interacting with Ticket Machine

Source: Link

23. Ticket

Web Asset, Grabbable

Source: Link

24. Painting

Web Asset, Grabbable

Source: Link

25. Cloth Sound Effect

Triggered by Interacting with Hats

Source: Link

26. Plastic Sound Effect

Triggered by Interacting with Glasses

Source: Link

27. New Radio

Web Asset, Grabbable, Source of Sound Changes Based on Distance

Source: Link

28. Disco Music

Ambient Music

Source: Link

29. Book

Web Asset, Grabbable

Source: Link

30. Bunny

Web Asset, Animated

Source: Link

31. Monkey

Web Asset, Animated

Source: Link

32. Pig

Web Asset, Animated

Source: Link

32. Sheep

Web Asset, Animated

Source: Link

32. Watch Case

Web Asset, Animated

Source: Link

Custom Assets

1. Belt

Created Asset, Grabbable

2. Bracelet

Created Asset, Grabbable, Source of Sound When Collided With

3. Chain

Created Asset, Grabbable, Source of Sound When Collided With

4. Cologne Bottle

Created Asset, Grabbable

5. Green Glasses

Created Asset, Grabbable, Source of Sound When Collided With

6. Headband

Created Asset, Grabbable

7. Ring

Created Asset, Grabbable, Source of Sound When Collided With

8. Tie

Created Asset, Grabbable

9. Wallet

Created Asset, Grabbable

10. Green Lever

Created Asset, Grabbable, Generates New Objects

11. Red Lever

Created Asset, Grabbable, Generates New Objects

Makehuman Models

1. Model of Rahul

Makehuman, Animated, 

2. Model of Customer

Makehuman, Animated, 

3. Model of Ben

Makehuman, Animated, 

Performance

The frame rate becomes stable once all the assets have loaded into the scene. In most areas the frame rate maintains around 35 fps when looking at one section of the kiosk. The frame rate jumps to around 40 fps when you get closer and focus in on a specific section of the kiosk. The area where the frame rate drops the most is on the right most section of the kiosk where there is many objects to look at as well as the make-human model. Overall the frame rate of the scene maintains a minimum of 30 fps throughout the scene.

How is Viewing and Interacting with the World Different in the Virtual Reality Simulator and Headset?

Response 1

Viewing and interacting with the world is very different in a virtual reality headset when compared to a virtual reality simulator. The main differentiator being that in virtual reality you literally have no sight of reality. The virtual reality headset allows you to see virtual objects in three dimensions as well as allowing you to manipulate them in 3D space. Virtual reality headsets also allow you interact with objects and hear sounds emit from all around you. For example if there is a character talking infront of you and you walk around them, you can hear their voice isolated in one ear or even behind you. This level of immersion offers a great platform for users to be immersed in any virtual reality activity. This is why video games such as Senua's Sacrifice has developed popularity in the virtual reality community. Games or activity that take advantage of virtual realities ability to harness our senses can invite us to experience new environments or stories that were previously thought impossible. On the other hand, the virtual reality simulator provides us the ability to experience the virtual world in a limited capacity without sacrificing much of our actual reality to do so. The simulator can often be imprecise and usually only allows for stereo sound which is often enough for us to break immersion with the virtual world. Humans like to touch and interact with things and I think people would prefer using the virtual reality headset over the virtual reality simulator due to the fact that you can manipulate objects in 3D space, hear directional sound all allowing users to be totally captivated by consuming the content.

In terms of development, the virtual reality headset allowed better feedback to how objects would interact than in the virtual reality simulator. The simulator was useful for provide quick shallow feedback confirming that our implementation was working properly. In the headset we can get a sense of how big an object should be because it can be seen in 3D as well as in scale. How big an object should be in the headset is difficult to gauge in the simulator because the 3D scale the object will have is difficult to determine from a 2D image. In the simulator, is is much more involved to move the "users" view vertically or horizontally. This limitation makes closely looking at objects that are near the camera’s view very difficult to look at. In the headset, the user can move their head downward and get a closer view of an object in the scene. For example in the virtual reality simulator, it might be difficult to see if there is a ticket behind a hat since the hat is taller than the ticket and blocks its view from the camera. In a virtual reality headset, I could look above and around the hat to see what is behind it allowing me to see the hidden ticket. The simulator and headset both have their uses, but generally I prefer using the simulator for quick testing and the headset for all other tasks.

Response 2

During this project we faced some hurdles the biggest being how to test our changes and if the simulator would accurately reflect those changes in the headset. When testing on the simulator, there were several issues that made it hard for use to make sure that everything was working properly. One example is the grabbing simulation. On the simulator we are able to simulate someone grabbing and we used that to test if our models were grabbable, but we were not able to test if the model truly followed their movement and if it’s physics were correct as well. Also, the feel of the simulator was static as the
controllers were always displayed stationary in front and if you were to move the hand forward and forget to pull them back then it stays in that position even while walking. In addition, when you are wanting to hold something in one hand you would not have the ability to hold another object on the
other hand without clicking again which would cause the other object to fall out of the other hand. This wouldn’t give us the ability to test if we are able hold both those interactable and see if they would collide together, fall together, rotate together etc. The only thing that did feel nature and not static was the camera. The camera was the closest thing to being in the headset as you can look anywhere in a natural flow.

 

In the headset, things were much easier to test our changes and be able to interact with the world overall. In the headset, we can test out the physics of our objects as well as testing the sounds as you head over to certain parts of the Kiosk. When walking within the world, we can freely move and touch anything to see if what we did works. For example, we walked around the world while holding a cup of coffee and a chain. We brought it up close to our face and walked to other table to set those objects down and see how they interact with the table. This was done quickly and naturally opposed to
the simulator where you couldn’t do that. Another way we interacted with the world was crouching. We took some objects and let it fall to the ground to make sure it would not go through the floor and if it didn’t, we would then crouch down to get it. These small movements were critical to test as the simulator did not let us or gave us little room to really test if everything was working the way it needed it. The only disadvantage on being on a headset was the quality of the objects. In the headset you can see the polygons and its not the best but, in the simulator, everything looks smooth and has a better quality. Overall, I would say that the headset was a better experience on testing and being able to interact with the world.

Thumbnail2.png
bottom of page