I am currently setting up scenes and developing them with interactable objects. I first got a demo scene working in Godot which I plan to reverse engineer when I get the chance, but in the meantime, I am focusing on setting up VR and an Oculus 2 headset to work in Unity and I am making interactable objects.

I have been testing the VR Room scene in my Oculus 2 connected to my computer and I have also been building the scene and sending it to play in my Oculus headset.

VR Development

The current XR Rig has an empty object called Camera Offset where I want the Main Camera to be which is a child of the Camera Offset.

I 3D scanned a small pumpkin with Polyscan and re-meshed a low poly version and put a face on it’s textures for fun. I am using it as my head in the VR scene and you can put different hats on the top of the pumpkin head. The sockets I put on top of the head are used to hold the hats. There is also a LeftHand and RightHand controller.

I set up the movement to use teleportation to avoid motion sickness, but you can look around in the room by moving your head. I created my own custom reticle that pulses different colors with a c# script.

Another fun thing I did was put my own real-life painting in the VR scene. I created a digital canvas in Blender and unwrapped it. I made a custom material with a texture I created from a photo of my gouache painting. It is my colorful succulents painting.

I also 3D scanned a second small ghost pumpkin and re-meshed a low poly version and made it an interactable object, and I could bounce it on a tennis racket. I also set up a tennis ball but I thought the pumpkin was more fun. The tennis racket also has an XR Grab Interactable script and it needed an empty object on the handle and oriented in a correct way that it would look natural when you pick it up.

The mirror is made with a Render Texture, a URP Unlit Material, and a camera. The camera is viewed towards you and it projects through the Render Texture on the URP Unlit Material. You can see my pumpkin head reflection with witch’s hat and my VR hands.

I made a flappable book where the cover can open if you pick it up, and you can look at the details with the magnifying glass. The illustrations are from the children’s book I illustrated called “Ivan and the Silver Seeds”. The cover and the back of the book at held together with a Hinge Joint.

The magnifying glass is an interactable object that I set up the hand to hold like the tennis racket, the lenses are set up like the mirror with Render Textures, URP Unlit Materials, and cameras facing in opposite directions, to give a magnifying effect in both directions. I adjusted the Field of View in the cameras to make the views zoom in more.

Watch me interact with the objects in a quick video I uploaded to YouTube to demonstrate the interactions.

Hanging Art on Sockets

I started taking the paintings a step further and created more digital canvases and put more of my gouache paintings on them, and then I made them interactable objects that you can hang on sockets on the wall. I created a wall hook on which to hang them. Now I have the ability to decorate with the paintings by changing their locations by interacting with them! A great way to make a gallery.

New VR Prototype

I started a prototype with the idea of focusing on an environment that looks nice in the Oculus 2 headset, and allowing the player to plant a seed and watch it grow, and being able to pick or shake fruit off the plant. When I have that completed and working, I will build upon that idea.

Screenshot from within the Oculus 2 headset

Here is a breakdown of the start of the scene:

I created a circular platform that the player can walk on, a main tree, and 3 layers of background textures that wrap around 360 degrees.

Breakdown of the background: A mountain layer, a forest layer, and a bushes layer. These are all 2D textures that are wrapped around the player’s view. There is a script to control the subtle paralaxing of the background layers.

I have been creating some 3D assets for the area closest to the player, such as rocks and plants, and the main tree there serves as the focal point of the starting area.

Optimization Considerations: My goal is to try to balance the visual quality while maintaining the standard framerate 70 Hz framerate to avoid motion sickness. I have a script to tell me how many tris are in the scene in Unity, and I am keeping the tri count within a 50 to 60k limit. I’m also putting the textures in Atlases and controlling the compression and resolution. I test with each new introduction of an asset with profiling in the Oculus 2 headset as well as publishing to the headset to test untethered from the computer.

Interactable objects:

I am working on a gardening prototype, allowing the player to plant a seed, watch it grow, and pick or shake fruit off the plant. I will show my progress on that soon.

Tree, platform and background plane models in Blender.

Screenshot of setup in Unity to show the how the background wraps around the area where the player moves.