This project is developed using Unity 2021.3.6f1, and VRTK v4 to help build a Virtual Reality application. The application was developed for the Oculus/Meta Quest platforms, to be tested with the Quest 1 headset.
For this project, we were provided with a starter kiosk model from https://assetstore.unity.com/packages/3d/props/coffeeshop-starter-pack-160914 that is placed in a very simplified model of the atrium of the CDRLC building at the University of Illinois at Chicago. We were tasked with adding more appropriate models, sounds, lights, and interactives to it.
After adding models and modifying several things, I created a chill and halloween-themed kiosk at nighttime while it is raining outside. The kiosk sells a few types of cakes, candy bars, and cookies, but the cashier of the kiosk (which is supposed to be me) is slacking off and sleeping on the sofa at the back with a book on top of his face.
To use the application, it is as simple as loading up the project files in Unity first, which has Android Build Support module installed alongside VRTK v4 Tilia Packages imported to the project.
If you want to run the application through the simulator on Unity, make sure to have CameraRigs.SpatialSimulator enabled, and CameraRigs.UnityXRPluginFramework disabled in the scene hierachy. Then press play button and the simulator would be running.
If you want to run the application on a Quest headset, connect the headset to your computer via a data USB cable, put on the headset and accept the PC connection. If there are no popups, the developer mode might not be turned on, so follow the instructions here to turn it on. Afterwards, make sure to have CameraRigs.SpatialSimulator disabled, and CameraRigs.UnityXRPluginFramework enabled in the scene hierachy. Then go into the Unity Build Settings to make sure you are building for Andriod and make sure your headset shows up in the Run Device list. If it doesn't show up, you may want to reconnect your headset and accept the PC connection in the headset again. You might want to save the project and restart Unity to re-configure itself properly. After that, you can click on Build and Run, and the application will be loaded onto the headset and open itself. You are then set to explore the kiosk in VR.
The project files can be dowloaded here.
List of 3D Assets Created by me using ProBuilder for the Project:
Book
Clock
Lamp
Sofa
TV
List of 3D Assets and Textures Used for the Project:
Empty Vending Machine: https://sketchfab.com/3d-models/empty-vending-machine-5839da52996147cbb3a4a2364b1bf894
Soda Can: https://sketchfab.com/3d-models/soda-can-db066d9c0c4e4bf98e6fdd8f94ad4a6e
Trash Bins: https://sketchfab.com/3d-models/trash-bins-8323d12537124305a9c70e9658eaba6e
Jack-o’-Lantern: https://sketchfab.com/3d-models/jack-o-lantern-41cfd36fb7304f6ca4c737951a676c10
Wooden Plate: https://sketchfab.com/3d-models/wood-plate-fbx-320e43788a54406ebb237dc47abfd524
Glowing Glass Spiral: https://sketchfab.com/3d-models/glowing-glass-spirals-art-bedac96827044689b023c2d232cc011f
Pumpkin Pie: https://sketchfab.com/3d-models/pumpkin-pie-3december2020-day-8-01cf70b90ab8487d8a822abf13454406
Chocolate Cake: https://sketchfab.com/3d-models/chocolate-cake-7a1c5357e44b4c63993d7842b188047a
Cheese Cake: https://sketchfab.com/3d-models/cake-bd2b824c98b34bd2a09462524452492c
Sponge Cake: https://sketchfab.com/3d-models/sponge-cake-1652bc71e9e24418afcbefde8dd0b296
Candy Bars: https://sketchfab.com/3d-models/candy-bars-e46b661ab1744b03b9f89d38d186d5d9
Cookie: https://sketchfab.com/3d-models/cookie-school-project-434b04afb75d4525ae5eb272282d736d
Wand: https://sketchfab.com/3d-models/megumin-wand-75a6115352ec4697adb16411dfb32773
Ghost: https://sketchfab.com/3d-models/ghost-383d9cdb6bb34285843a50b637e372ec
Neon Sign: https://sketchfab.com/3d-models/cc0-neon-sign-open-9a924db296cf4a1eb12991702ab48da5
Human Model created using MakeHuman: http://www.makehumancommunity.org
Human Model "Laying Idle" animation using Mixamo: https://www.mixamo.com
List of Audio Assets and Songs Used for the Project:
AUGH Sound (Human Avatar Noise): https://tuna.voicemod.net/sound/13ea69f4-17da-4a45-b22a-78a9f46dd101
Rain Background Audio (Ambient Sound): https://soundbible.com/2011-Rain-Background.html
LoFi Girl - Cozy Winter Playlist (3D Spatial Sound for TV): https://www.youtube.com/watch?v=_tV5LEBDs7w&t=272s
Robot Machine Sound (3D Spatial Sound for Vending Machine): https://soundbible.com/1193-Robot-Machine.html
Evil Laughter (3D Spatial Sound for Jack-o'-Lantern): https://soundbible.com/2055-Evil-Laugh-Male-6.html
Missile Launch (3D Spatial Sound for Wand): https://soundbible.com/1847-Bunker-Buster-Missile.html
Models that have physics and colliders to be grabbable, droppable, and tossable, and collide with other parts of the kiosk and floor:
Book (Created by me)
Soda Can: https://sketchfab.com/3d-models/soda-can-db066d9c0c4e4bf98e6fdd8f94ad4a6e
Jack-o’-Lantern: https://sketchfab.com/3d-models/jack-o-lantern-41cfd36fb7304f6ca4c737951a676c10
Wooden Plate: https://sketchfab.com/3d-models/wood-plate-fbx-320e43788a54406ebb237dc47abfd524
Pumpkin Pie: https://sketchfab.com/3d-models/pumpkin-pie-3december2020-day-8-01cf70b90ab8487d8a822abf13454406
Chocolate Cake: https://sketchfab.com/3d-models/chocolate-cake-7a1c5357e44b4c63993d7842b188047a
Cheese Cake: https://sketchfab.com/3d-models/cake-bd2b824c98b34bd2a09462524452492c
Sponge Cake: https://sketchfab.com/3d-models/sponge-cake-1652bc71e9e24418afcbefde8dd0b296
Candy Bars: https://sketchfab.com/3d-models/candy-bars-e46b661ab1744b03b9f89d38d186d5d9
Cookie: https://sketchfab.com/3d-models/cookie-school-project-434b04afb75d4525ae5eb272282d736d
Wand: https://sketchfab.com/3d-models/megumin-wand-75a6115352ec4697adb16411dfb32773
Models that produce new objects through interaction:
Empty Vending Machine: https://sketchfab.com/3d-models/empty-vending-machine-5839da52996147cbb3a4a2364b1bf894
Produces Soda Can: https://sketchfab.com/3d-models/soda-can-db066d9c0c4e4bf98e6fdd8f94ad4a6e
Models that are animated or moving some of their parts:
Clock (Created by me)
Hour and Minute hands keep spinning inside the clock
Glowing Glass Spiral: https://sketchfab.com/3d-models/glowing-glass-spirals-art-bedac96827044689b023c2d232cc011f
Spinning chandelier hovering on top of the kiosk
The frame rates stayed pretty consistent, running above 60 fps for most of the time no matter where I was in the world as the kiosk is tightly packed together in an area. However, as I was recording the demo, there were a few dips in the frame rates, but it just might have been caused by the headset heating up as it had been running for a while, and also it being low on battery. Overall, I would say the frame rates are decent and would not make someone motion sick (unless they just get motion sick from simply being in VR).
As I was developing the project, I relied a lot on the simulator in Unity to check and test several things that I just implemented. It was very convenient for me to keep running it whenever I wanted as it loads very fast and shows up as a window right within Unity with no need to really build the project.
Despite the convenience, it was very difficult to thoroughly view and interact with the world in the current implementation of the project. I can move quite slowly using the WASD keys only with no option to teleport around as far as I am aware, and I can’t do things such as crouching or tiptoeing to move around the world more intuitively. I can also control the simulated hand controllers only one at a time. Even then, I can’t move and use the controllers at the same time, and I can’t really test functions such as grip and swap. The only function I could test fairly easily was the touch interaction. Another downside of the simulator is that I can’t really grasp the scale of the objects in the scene when compared to a human as I am seeing a 3D world and objects through a flat screen.
On the other hand, the Quest headset allowed me to interact with the world a lot better. I could use the teleporter to move around the world quickly, and I could also physically walk around to move in the world (although I didn’t have enough space in my room to fully test this out at the time of development). With the headset, I can also move around both hand controllers at the same time and use them to interact with the world as I walk around too. As someone who has quite a bit of experience playing some VR games, actions such as gripping objects, swapping hands on objects, and even crouching or tiptoeing to reach things came very naturally to me. It might sound cliche for someone wearing a VR headset, but it was as if I was really there, even if the objects are low poly and the graphics are not realistic at all. I could also finally see the scale of the objects in the world with the headset, just how big or how small they are compared to the player.
However, in exchange for such immersion, there are downsides to the headset in terms of convenience. First, you need to turn on the headset, find an appropriate data USB cable, connect it to the computer, put on the headset and click on the confirmation message. Then you might often run into issues building the project for the headset, and it can also take some time. Afterwards, you also need to find an appropriate space to move around and interact with the virtual world. In addition, if you are using the headset for the first time for development, you also need to figure out how to turn on developer mode.