3d generalist Sonja Christoph talked about her UE4 work and discussed the way she builds moody urban environments.
I actually came to VFX a little bit later in life. I started my professional career on tv and film sets. I worked my way up from Production Assistant to finally a full-fledged Assistant Director. I worked on shows like ER, 2Fast 2Furious, and Dodgeball, just to name a few. It wasn’t until the writer’s strike hit Hollywood in 2008 that I had a bit of time on my hand and became aware of how amazing VFX can be. I attended a presentation by ILM’s VFX Supervisor Roger Guyett and was absolutely blown away by it. I simply had to know how this was done and after asking a few VFX Supervisors I knew, I ended up at Gnomon, School for VFX.
Fast forward to two and a half years later I receive a phone call from ILM out of the blue, asking me if I’d be interested in joining their Generalist Apprenticeship Program. That was how it all started. Later on I found out it hadn’t been out of the blue at all actually. Shannon Wiggins, the Director of Placement at Gnomon had submitted a couple of names (mine being one of them) to the ILM recruiting team so needless to say, I owe her big time.
One of my ILM shots from Dr. Strange
ILM was an amazing experience. It was incredibly challenging, a lot of hard work but it was also very rewarding at the same time. I’m very grateful that I was able to meet and work with so many awe-inspiring, talented and dedicated artists. It truly was a pleasure and an honor. I say ‘was’ because I’m actually about to embark on a new adventure and join another amazing and incredibly talented team: I’m going to Massive Entertainment in Sweden. I am beyond excited and can’t wait to get started!
Honestly, this scene was my learn-Unreal project. It started off as my project for Clinton Crumpler’s CGMA class and I just continued to work on it after the class ended and this was the final result. Clinton was a phenomenal teacher. I highly recommend taking his class if you can.
I picked a shipping center store because I like the challenge of taking something we see every day and making it into something unique and special.I could easily picture the store in different settings with different moods. I really felt like I could tell a lot of different stories with that space and that was important to me.
I did my first initial blockout in Maya but that was mostly to figure out the measurements of my greybox models. Once I thought I was in a good place with them, I brought everything into Unreal and continued to refine the scene there. Working and moving around the scene in Unreal just gave me a much better feel for the space and also enabled me to come up with interesting camera angles much faster.
An example of early greybox models
Efficiency is very important to me because time is the one thing we can’t get back so why waste it? It was even more important to me on this project because I didn’t actually have a lot of time to begin with since I was in the middle of crunchtime at work so I really tried to think about the most time efficient way to approach each asset.
This scene is mostly comprised of hard surfaces. There are some organic shapes that I could have easily taken into ZBrush and spent hours sculpting but in the end I decided to skip Zbrush and use other tools instead. I chose to use Speedtree for the trees in the background, photogrammetry for the sidewalks and Substance Designer for the brick and cobblestone surfaces. The rest of the modeling was done in either Maya or 3ds Max. I prefer using Max for any spline related modeling e.g. cables. I also used Max’s MassFX system to break the window panes. I first ran a Fracture Voronoi script by Garp to pre-cut the windows and then ran Max’s rigid body sim on them for this final result:
Everything else modeling wise was done in Maya.
The biggest headache, however, turned out to be the sidewalks. I used photogrammetry for them but I hadn’t been able to find a sidewalk that was exactly how I wanted it so I ended up using sections of multiple different sidewalks and splicing them together. Not my best idea I must admit.
It was a lot of manual work trying to get the different sections to line up properly, to match the heights and colors so it took more time than I had wanted to spend on them. In retrospect, I should have just stuck with one sidewalk as my base. It would have been much easier to add a few features here and there than to try to match different sections of sidewalks. Next time.
Photogrammetry workflow example
I built the base material in Substance Designer and then I added decals in Unreal for the additional grunge and grime. The graffiti is a decal as well.
I could have done a grungier, dirtier variation of the same brick texture, layered that on top of my cleaner brick and then used vertex painting to reveal the dirt.
In my case, decals were just faster for me to set up and I wanted to experiment with them a bit.
Cobble Stones and Pavement Tiles
The road was actually one of the last things I did in this scene. At this point I felt very comfortable in Unreal and I had a lot of fun experimenting with different things so the material for the road ended up being one of the most complex materials in the scene.
I used vertex paint in combination with additional mix maps or masks to break up the tiled look and to add puddles. Here is an example:
Step 1: cobblestone A
Step 2: cobblestone B (to break up cobblestone A)
Step 3: puddles
Step 4: add additional mix maps/masks to break up the puddles
I then used Parallax Occlusion Mapping (POM) to give the illusion of displacement and depth.It is similar to the Bump Offset node but gives you more accurate results since it raytraces through a height map. It can give you some great results but can be a bit heavy. Since this was a personal project I didn’t have those limitations one would normally have in a production setting.
My road material setup in Unreal
The cobblestone textures themselves were made with Substance Designer. I’m such a huge fan of this software. You can achieve so many different results from a well set up graph and they’ll all look amazing.
Example of my cobblestone graph in Substance Designer
Adapting Textures to Games
Oh, there were quite a few things that are very different in games. I’ll just name a few here. In film, for example, we normally use the specular glossiness PBR model. For Unreal I had to switch over to the Metalness Roughness PBR model. It was just a different way of thinking really and not that drastic of a difference.
The concept of using a master material, however, was a new one for me. This is not something we do in the film but I appreciate the efficiency of it. If I make one change to a master material it automatically gets carried down to the instanced materials and that can be very powerful and save a lot of time.
Example of one of my master material setup in Unreal
Another difference was that I had to think about optimizing my textures and being more conscientious about my uv layout. That is something we don’t generally have to do in film. In film we usually don’t have a lot of time so if we can get away with using auto unwrapping or box mapping, we will certainly do so. I should mention this is not alway the case and usually only applies to the environment artists. Character, prop and vehicle artists are not so lucky.
We use mipmapping (sometimes) but channel packing was yet another new concept for me. I’m a fan. It’s nice to have a few less textures you need to deal with and if it can save you space and time on top of that, what’s not to like.
Example of channel packing
Again, these are just a few of the differences. There are a lot more but I don’t want to keep you too long.
Unreal is extremely user friendly. There is a lot of information and documentation online that makes it very easy to pick up the Unreal engine as a first time game engine user. We also use Unreal at work at ILMxlab so it just made sense.
I love lighting. It can help you feel a certain way, it can focus your attention on some things and cause you to ignore others. It’s an incredibly powerful tool.
That being said, I like to keep my lighting as simple as possible for as long as possible. I’ve found if you start to get too complex too quickly, you lose focus and your original intent gets lost. I usually start with just a keylight and a fill light. Then I move on to my primary focal points. Afterward I will add smaller detail and accent lights, maybe an additional fill light in some areas where it’s getting a bit too dark for me.
After every new light, I add to my scene, I try to take a step back and evaluate the scene as a whole. It can be so much fun to work on one little corner and make it look absolutely magical but you need to remember that this is not just a corner but a corner in a room so your lighting needs to work together. I’d say for me personally balancing can take up more time than placing the lights.
Example of my final lighting setup