Before the release of the Oculus DK1 (which came with a free trail of Unity Pro) in late 2013, I was a minimum wage security guard doing freelance VFX work to pay the bills. I had never even heard of Unity before that. Though many years ago, I worked for Rockstar games on the first Grand Theft Auto game; after leaving the company, I thought my days as a game developer were over. Unity and VR changed all of that. In the following few months, two things happened that changed my life. My daughter was born, and I began creating virtual worlds again. My name is Blair Renaud. These days I'm a VR developer.
I take great inspiration from the films and television I grew up loving. Blade Runner is an obvious example in the case of this project, but I would also count Robocop, Alien, Terminator and Total Recall as well as games like the Mass Effect series (1-3), Tex Murphy, Star Control and many others. We're all products of the culture that surrounds us, thus naming all of my inspiration would take us on a long trip, from me eating cereal and watching Transformers to the moment I started writing this paragraph.
The inspiration for this particular piece started with the flying scenes in the Ridley Scott's Tech-Noir masterpiece Blade Runner. Hence the name. I've always loved the interludes of the flights through cyberpunk L.A. and wanted to see more. So, that's where I started.
My production process is listed below in reverse order from bottom to top, detailing the tools and assets utilized as well as a more in-depth discussion of my process.
STORY - THE SINGULARITY
In the mid 21st century an artificial intelligence singularity occurred. Without warning millions of androids relocated to abandoned sectors of the city and began to build. They built walls and erected signs to keep the humans out. Their purpose was never disclosed. Some remained outside, but were no longer trusted by their makers. They rarely spoke to the humans they encountered. Without purpose, many ended their existence.
015 Out of time!
Well, I'm done. Didn't have a lot of time to finish off, but there are many amazing entries coming in now, so my chances of winning are minimal regardless. I'm okay with that. I had a lot of fun learning Timeline and Cinemachine. Next time I use them, it will be a lot better.
The contest rules say to "edit your video" before upload, so I took a bit of liberty there with the small amount of remaining time. Got a little crazy. haha. The enditing software added some compression and some weird frame skips (which is annoying), BUT.. there it is :) Hope you enjoy it.
Regardless of the contest outcome, I plan to build this world out into a demo for a VR game, that I will try to crowd fund. Probably through Kickstarter. So keep an eye out for me!
014 One Final Run
I need to edit and put the video up tonight. Taking one last run at it. Adding some clutter to some of the scenes. Grabbing some new assets. I don't have a lot of time, but I want to have fun :)
Adding some more neon signs and a few bits of cable. That's it.
013 Sound and timeline animation
I should take a moment to mention sound. I'm pulling it in from a variety of sources. I have some decent sound libraries, but nothing too extensive. The news clip is from my game TECHNOLUST. The main score music is by Jay Lemak, who also provided some cool analog synth sound effects. Crushfield created the track that's playing at street level, and the rest is mixed and mashed by myself.
This update was mostly adding some animation and working with timeline. I added a reaction and a separate reaction shot to the scene where Eve lands on the street. Really digging the way timeline allows blending of animation on the fly. If I have time, I want to add more animation. Maybe a dance scene and some credits at the end. haha.
012 Optimization and working out kinks.
Having started this project in the hopes that it would be extendable into a VR title, optimization was super important. Making sure that anything that doesn't move is marked as static, occlusion culling data is up to date any unnecessary effects are disabled, etc. In this case I found that screen space reflections were hardly noticeable and were more of a performance cost than they were worth.
I've been spending a lot of time just playing with Cinemachine, and I have to say, it's pretty awesome. Camera moves and animation are definitely some of my weak points and Cinemachine is opening my eyes to many possibilities and making everything much easier to grasp. I wish I had more time to get really good with it. Unfortunately, time constraints on my end are tying my hands. I got kind of hung up on transitioning from one camera to the next to do moves rather than animating the cameras themselves. This is something I need to work on in the future. Considering I started from not knowing anything at all about camera work (being a VR dev), I think it's turned out fairly well.
011 Post and Polish
Trying to make everything look as good as possible. Added a lot of Neon! Spending a lot of time tweaking post effects per camera. One thing I still wish was a bit easier is to animate focus independent of everything else. Would be great if it was kind of human and procedural like the camera system. Maybe there's an easy way to do it that I'm just not seeing. There also seems to be a big difference between the full-screen playback of a build and what it looks like playing in the editor that I want to try to match. I think a lot of it has to do with the scale of the grain when its at full resolution as well as the lower frame-rate of the editor accentuating the motion blur. These can both be fixed. I'll keep playing :)
I'm working on a contract job right now, so updates on this are getting slower than I would like, but I really think it's coming along. The top video has been updated to reflect what I've done today. As usual, thumbs up and feedback are appreciated :)
010 Worked out
Spent most of the night working out the details of the story. Will post that at the top of the page. Worked out a few more shots at the end. Smoothed out some rough edges and added motion blur. Something I'm not used to as a VR dev, but it really adds a lot on the flat canvas.
Adding a new work in progress video. As always. Feedback is welcomed almost as much as a thumbs up ;)
009 Not almost done :P
Haha. Well, I managed to optimize things pretty well. Framerate is solid. There's still lots to do though. One thing that's bothering me is the vibration of the cockpit on take off. Not really happy with some of those moves in general (were the first ones I did). I want to add another scene or two at the end as well. There are a lot of things I could mention. Videoplayer material replace isn't working on builds for some reason. I really wish there was an easy way to animate a focus pull on a single camera. Maybe there is and I just can't find it. Easily triggering Playmaker scripts with timeline would be cool as well. Animating the sound clips on the timeline easily would be cool (volume etc.)
Anyhoo, here's a shot of my current timeline. I'll continue to work on things up to the end. Hopefully some inspiration hits me.
008 - Almost done!
I have to get back to real work soon. Not sure how much more time I'll have to put into this thing. Please give me a like up top and let me know what you think in the comments.
Next big step is to do some optimization. I'm dropping some frames in the editor while playing full-screen on my GTX 980. Is there a frame rate and min spec for this contest? There should be. haha. I'll be optimizing regardless.
New video at the top of the page.
007 - Story
Worked on creating a story. Wanted Eve to jump from a ledge (with no animation for it), so I ended up using PuppetMaster and a ragdoll to "kill" her. She tumbles down in slow motion and lands on the street below. No-one pays any notice currently. Maybe that's part of the story? She hits a flying car on the way down. Animation needs to be tweaked. And there's some work to be done with a few camera movies. Maybe I'll destroy the car. Maybe that was part of her mission. Maybe! We'll see. Anyhoo. I replaced the WIP video. Would love some feedback and a thumbs up. Here's a link to PuppetMaster.
006.5 - Cinemachine
I spend the second half of the night playing with Cinemachine. It's very cool. Far from what I'm used to as a VR developer, but pretty easy to get a handle on. I'll upload the result at the top of the page. Some pretty cool shots set up already just from the messing around for a few hours. Also started incorporating some custom sounds. They're all a bit rough right now. I'll smooth them out with better timing later. Maybe a voice over.
006 - Populating
Added a number of high quality photoscanned characters from my past game, Technolust. I kind of randomly placed them here and there, filling out the world and allowing a story to build itself. Unfortunately, I don't have a lot in the way of good motion captured animation, but I dont have some good procedural eye and head stuff.
I placed one character in particular way up on some scaffolding, looking down at the city below. It's a powerful image and will more than likely become the focus of the "story" of the scene. I have an idea about her leaping off the ledge. Possible on to a passing car below, or possibly to her death. Is she an android or an augmented human? Once I get into Cinemachine a bit more and figure out which shots work and don't work, I'm sure it will come together. Will also need a good diving animation.
The next step is to start building out some shots on the timeline with Cinemachine. Not sure how long this video is supposed to be. Oh. I also replaced the ATARI logo with a Unity one. ;)
005 - Second Pass
I played around a bit with the takeoff area and added some traffic. Sci-Fi Race Bike - Streetfighter 88 and Antigrave Hover Racer are both high quality vehicles complete with PDR textures and emissive lighting effects.
I used timeline to animate them moving around the take off zone along with a car that came with the Dark City asset (re-textured).
Starting to look a lot better. I also lit the cockpit interior and added a screen to the center console. This will animate later.
004 - Buckle your seat belts
Let's prepare for takeoff! Let's find a cockpit on the asset store. We want something futuristic, high quality and game ready. It took a while, but I found this one here. It's a little less retro-futuristic than I wanted, but paying an artist to make a custom asset aside, this is a really good find.
I didn't like the color of the displays, but it was easy enough to just tint the emissive channel to get a nice deep amber (my favorite display color).
Getting it to function was another story. I'm sure that there's a decent asset on the store for flight controls, but it happens that a good friend of mine and my VR partner in crime Mark Schramm had a script ready to go. Thanks Mark!
Unfortunately, right now it's only set up for keyboard controls, but hey, it works. I dropped the cockpit over the camera, Mark added the script, I threw in a sound clip from Blade Runner to get the vibe right... and Wow.. my mind was blown.
Regardless of the outcome of this competition, this will be made into a fully fleshed out VR game. It's way too good to let go. The $20,000 would definitely help. Just sayin'.
003 - Street Level
The city looks great from above the clouds, but it's time to hit the streets and get some dirt on the ground. I zoomed around to find a good little street corner to start from and started dragging assets into the scene. Some lamp posts and signage from Dark City, a sushi cart and some computer terminals. But most importantly, some Greebles. I speak breifly about greebles in my kitbashing talk below, but basically they're detail bits. Little chunks of ods and ends that don't necessarily have a function, yet look functional. This kit on the asset store is on the high end of the price range, but I find them invaluable.
I've also added some density particles to pick up some more of the volumetric lights (thicken the air a bit) and some random sweeping spotlights with a splash of color here.
002 - Pimp my city
So, now we have our base location. It looks pretty good lighting and atmosphere wise, but like any production, we need to do a bit of set dressing. Right now it looks like a foggy, raining city, but it's not very futuristic. It needs a to be cyberpunk'd.
A good start for this world is some signage. This is the NEON competition after all.
I love the shot in the Blade Runner 2049 trailer where the spinner is flying between two giant blue ATARI logo holograms. And decided to start there. This is of course all temporary, and in the end I'll remove the trademarked ATARI logo, but it's a good jumping off point. So, I went onto the Google and grabbed the image I needed. And back to the asset store for a good hologram shader. Enter Sinuous Sci-Fi Signs.
Again, I probably spent way too long tweaking the shader to get it to match the film, considering it will be replaced anyway, but I think the end result looks pretty good:
The next asset I grabbed for kitbashing and decoration was Dark City by MANUFACTURA K4. If you're serious about fantastic environmental kits from the asset store, you probably own all of their work, in the case of this set, I'll mostly be using neon signs, billboards and the fantastic girders and scaffolding. Again, the ads will more than likely be changed for the final version (by editing the textures of the billboard assets), but it's a great jumping off point to add some clutter.
001- Location Scouting
I'm inspired by the imagery in Blade Runner (who isn't?). So, I decide to try to match the style of the flying scenes of those films. I put the movie on my second monitor and load up a new scene in Unity. My quest starts with finding a good base for the city itself. I mean.. if you're going to shoot a film in a city, you try to scout out a location before you try build one from scratch. So, it's off to the asset store.
As an aside, this isn't my first rodeo. I've actually done a talk for FITC on this very process. You can have a peak here:
I came across CScape right away, and it's almost too good to be true. A fantastic base for any real time city. Superbly optimized, beautiful, procedurally generated city-scapes and a very fair price.
I load up the demo scene and start mucking about and thankfully, it's very intuitive. It also has a great tutorial on youtube.
I'm coming from a VR background, so I add a camera up high and start messing with my post processing stack, trying to match the color and tone of Blade Runner.
I always start work in the Deferred Rendering Path as it allows me to go crazy with the amount of lights I can use at minimal performance cost. In the case of CScape, it's actually a requirement, so we're off to a good start. I won't get into the nitty-gritty of differences between Forward and Deferred here, but if you're interested, there are plenty of articles online discussing it. I've had many pointless arguments about it with programmers and artists alike.
Linear lighting over Gamma in this case (also articles to be found online about this). Just know that Linear is a bit more realistic, especially with HDR cameras, which we're also using here.
Wheew, Ok, now onto Post Stack. I'm really finicky with this part, so I ended up spending longer than most would find tolerable tweaking it, but in the end, there isn't really much to say. It's more about playing around until it looks right than it is about numbers and values.
Below, you can see my rather modest post stack along with 4 images showing the progression from the default scene to the final product (bottom left to top right).
The next step was getting some dope volumetric lighting going on. Now, if you don't know what that is, don't feel bad, neither does the spell check on this blog. Basically, it means that you can see fog in the light beams, giving them "volume". They cast shadows of light from behind objects look really nice and add depth to any scene. There are quite a few options out there, but I went with Hx Volumetric Lighting as it works well in VR.
This is very important to match the look I was aiming for as well. Blade Runner is volumetric city.
Below is the same shot as above with some Hx Volumetric Lights added. A point light to the left, and a spot casting over a rooftop on the right.
We're getting pretty close already and it's only been a few hours. Most of that time was spent being super anal about how much contrast and saturation to have. Time for a nap though. We'll pick it up tomorrow.