First of all, a big apology to anyone who’s been following this blog. I was having problems with the service that was hosting it, and I needed to switch things over to another service. In the process, all of my previous entries were lost, so I needed to troubleshoot that and restore them. With that out of the way, I can resume my blog entries.
One of the benefits of this new service is that you can now subscribe to the blog, meaning that you’ll receive email alerts every time a new post goes up. For those of you who aren’t following me on Facebook or Twitter, you’ll be able to keep up without having to check back at random. Plus, it has a nice new theme that I hope you’ll all like.
I will return to a recounting of my inital days here, but as the main reason for my being here is to return to being a maker, this entry will focus on the work I have been doing.
My biggest challenge before I came here was figuring out what it was I wanted to do. I knew I wanted to work in VR, and I knew it was going to be something more experiential than focused on gameplay, but that was it. After many conversations with Byron and some considerable amount of introspection, I realized that my interest in motion graphics was going to be my way into this project. In fact, my starting point is going to be a VR version of a project I did last year.
This project was called “Parallelogramme” (yes, the quasi-British spelling is intentional) and I created it while I was teaching an online class in Processing – a language and environment designed specifically for artists. “Parallelogramme” is a procedurally generated piece that randomly chooses from a pool of colors and applies them to a series of rectangles that have been scaled with random values, sheared to provide an isometric perspective, and then animated to the screen with random speed values. I added music to complete the effect. I’m very proud of it. Below is a sample – keep in mind that in actual use, every time it is run, it will never be the same as any other time it is run.
This is essentially a procedurally generated motion graphic, so it felt like a good jumping off point. There are many directions I could take this, and hopefully before the end of the sabbatical I will be able to have several different environments in place.
One of the challenges in adapting this piece is that even though there is a kind of false perspective, it is still very much a two-dimensional work. But VR exists in three dimensions, and is stereoscopic, so I had to solve how this would play out under those conditions. I decided that instead of shearing the boxes, I would have them orbit the player while moving from above to below the player’s position. I would have them emerge from fog or darkness, but the scaling, vertical and horizontal speed, and color would still be pulled from a set of random values. I have also been playing around with new shapes and geometry working their way into the environment almost undetected by the player until they have become almost dominant in the scene. These might be triggered by where the player is looking. But that’s getting ahead of myself.
The first thing I had to figure out was the basic rotation mechanic. This proved to be a little more complicated than I initally thought, due to a quirk in the way Unity (the game engine I’m using for this work) calculates rotation and position. There is a “rotateAround” instruction that you’d think would be a straightforward solution – rotate AROUND something, right? Nope.
Below are from my sketchbook as I tried to work out what I wanted to do and how I might approach this problem.
A conversation with Byron indicated a different approach using sine and cosine values might be the way to go and might offer me more options and control. But I do my best work in solitude, so I had to wait until I was on my own to figure it out. After about a day of cogitating, researching, and bemoaning my stupid brain for not being able to do maths (yes, that’s what they call it here), I finally figured it out. The sine/cosine thing did the trick and allowed me to enter random values for the size of the orbit as well as the scaling of the cubes (they are no longer two-dimensional boxes). Below is the result:
With that sorted, I can now begin figuring out:
- how to add multiple boxes
- how to move them vertically with random values
- how to colour them randomly
- what kind of shader material do I want the boxes to have
That would be enough for the next week. Tomorrow I go to Strasbourg, France to meet up with a couple of folks from my neighborhood back in MN and spend a couple of days in another country. Get some more stamps in that passport, and spend some Euros.
Then later next week I meet with the head of development at Bossa Studios. That’s a meeting I’m eagerly looking forward to!
To my fellow members of the tribe, Shanah Tovah!