VIRTUAL DREAMSPACE
Project Brief:
“With this project, we'll begin the exploration of virtual environments. We'll look at how digital spaces can emulate or build upon the physical realm, and we'll take on the spaces that present us with some exciting creative possibilities in the digital medium.
The project introduces Unity as a creative tool, but at the same time it is meant to be an overview of (some) conventions, constraints, and opportunities in the digital 3D space.”
Concept Ideation:
My interpretation of a potential ‘dreamspace’ is one of comfort and intriguing serenity. Like a secret hideout in an otherwise untouched mountain valley.
I started with sketching and modeling a basic treehouse. I wanted the shapes to be simplistic, but asymmetrical. The form was made to follow the idea of a child’s idea a secret clubhouse.
As well, since the idea of intrigue and whimsy seemed to take a forefront, I began incorporating ideas of spinning lanterns or wind chimes.
These simple movements would also lend themselves better to helping me learn the fundamentals of C# coding and Unity.
Environment Mapping:
Using Unity’s terrain building tools, I created a small, yet “virtually hike-able” map. Surrounded by mountains and valleys, the visitor could hypothetically explore the forest, searching out more lampions or secrets.
Lastly, I situated the hideout near the center of the map, as if it were the home base of the valley.
Coding Interactions:
This then brought me to my biggest challenge: coding.
Before this project, I had never worked with C# coding. As well, the little visual coding experience I did have, was 10 years old.
So I decided to start with simple movements like pushing, and spinning.
Cola Cans:
I decided to use cola cans as a target for RayCasting and Force Mechanics.
The interaction was easily repeatable due to the object tagging system, and proved to be a readily customizable code.
As well, the cans provided a simple target, but also fit within the “story” of the space. A secret hideout, tucked away as a place to relax, would be the perfect place to sneak a couple extra sodas. And what better way to waste time, then whacking them off the balcony.
Trouble Shooting:
The next interaction caused more difficulty.
I had downloaded a premade lampion asset from the Unity Asset Store, and was attempting to apply a RayCast affect to make the lamp spin, but it had no effect.
So I attempted two other codes after this, which introduced me to new concepts such as AddTorque and OnMouseDown… yet nothing seemed to work.
After several rounds of troubleshooting, I came to find that the asset’s mesh colliders and pre-set lighting scripts were somehow interfering with the rotation script.
In the end, I moved the script to affect the cube beacon lampions instead, and the interaction functioned correctly.
2. Lampions:
After finally creating an interaction that functioned during gameplay, I was left with a spinning motion applied to the floating beacon lampions.
The final script I used relied on the OnMouseDown and transform functions rather than torque applications.
These beacons exist across the map, floating between trees or above valleys. Though the easiest to observe floats curiously above the hideout’s table.
Final Test
This project was incredibly informative for me. Though my final product is simple and less developed than most of my work, I feel as if I learned some valuable lessons about coding.
As well, it was both exciting and informative to apply more practice into using programs new to me, such as Unity.
This ‘dreamspace’ may be a place I revisit periodically to help me further my skills.