Project 1: Development Blog

For my first project I wanted to create an environment where the experiencer would feel imprisoned. Instead of focusing on the prison itself I wanted to create the feeling of entrapment by creating the sense of a vibrant and flourishing world outside.

This is an alternate reality where the experience is held at arms length from the world. Able to see the briefest glimpses of light and life while unable to see them clearly or experience them completely.

The prison itself resembles a cocoon or a nest with a smooth, curved surface. The walls are of smooth concrete and impossible to climb. The curved surface is also what makes it impossible to get out of like the inside of a pitcher plant.

Through an opening far overhead the experiencer can see a sliver of sky and some overhanging branches. Some vines spill over the edge and dust dances in the sunlight. Shadows of birds flitter across the opening. The experiencer can also hear creaking branches, twittering birds and rustling leaves, but muffled and in the distance.

Initial Concept Sketches

I built the main structure in Maya, a 3D modeling software I am familiar with. It took two tries to get it right. The first one I made looked strange when I imported it into unity and placed the camera inside it. I ended up going for a simple shape, taking a sphere, elongating it, deleting some surfaces and extruding the sides.

The First Try
The Final Shape

Importing the .fbx file of the object into Unity, I placed the camera inside it, facing upwards. I imported assets from the Nature Starter Kit 2 to play around with the vegetation.

I placed the vegetation based on how it would look from inside the trap. Looking at it from the outside is pretty strange since some of them are floating in mid air.

From Inside
From the Outside

I found a free skybox seires from Avionix that had a wide variety of skies to choose from. I decided it was a little strange to have clouds that weren’t moving so I decided to go for one that just had a gradient and some lighting as if dawn was just breaking. Perhaps this could create the feeling that the user just woke up in this strange trap? I may hunt for some animated skyboxes as well, however.

I added a concrete texture to the main object using an image I found.

Texture Image
Material for the Trap Object

The main components of the environment are ready! My next steps would be to experiment with lighting and perhaps add a sun object overhead. I would also like to add some sound and movement to the environment. It also remains to test the environment out with Google Cardboard.

Searching through the asset store, I managed to find a bunch more assets that I could use to make the environment more lively and make the contrast between the vibrant outside world and the dingy space inside more apparent.

I found an animated prefab of a moving sky to create the feeling of the passing of time. I found another useful asset that took the form of animated beams of light that shine into the space from time to time. I introduced a little, animated butterfly, hovering in the bushes. I also introduced a little bird flying overhead. The bird was a little harder to add since the asset did not have an animation attached to it. I had to attach the animation to the model of the bird and create a script that would keep the bird looping in a circle. It appears over the mouth of the trap for the briefest of moments before it continues on it’s loop, allowing just the right amount of a delay before it appears again.

Outside View of all the Objects and Light Sources
Layers of Objects

Here is the script I used to make the bird fly around in a circle:

<!-- wp:paragraph -->
<p>using System.Collections;<br>
using System.Collections.Generic;<br>
using UnityEngine;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>public class Oscillator : MonoBehaviour<br>
{<br>
    float timecounter = 0;<br>
    float speed;<br>
    float width;<br>
    float height;<br>
    // Start is called before the first frame update<br>
    void Start()<br>
    {<br>
        speed = 1;<br>
        height = 10;<br>
        width = 5;<br>
    }</p>
<!-- /wp:paragraph -->

// Update is called once per frame
void Update()
{
    timecounter += Time.deltaTime*speed;

    float x = Mathf.Cos (timecounter)*width;
    float y = 2;
    float z = Mathf.Sin(timecounter)*height;

    transform.position = new Vector3(x, y, z);

}
}

Finally, I worked further on lighting, changing the skybox and adding other light sources. I wanted it to be sufficiently dark inside, in contrast to the brightness outside. The extra light sources I added cast interesting shadows through the leaves on the inside surface of the space.

The Final Lighting Situation
The Shadows on the Inside

Finally, I added some audio to have the sound of distant birds constantly playing in the space.

Here is a link to the final product…. enjoy!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.