Johannes Terhén Sundlöv shared some of the lessons he learned during the production of his amazing environment.
Hey there! I’m Johannes Terhén Sundlöv and I’m studying 3D graphics at FutureGames in Stockholm, Sweden, currently in search for a nice internship (wink, wink). I lived in Japan for over 5 years where I studied Japanese, general computer graphics and later worked for Matrix Software in Tokyo, where I made stylized assets for mobile games.
The reason for returning to school when I got back to Sweden was to learn more about game engines and other modern tools like Substance and making PBR textures, to make myself more prepared for the Swedish game development scene. This piece is kind of a summary of that.
Before I started working on the piece, I knew I wanted to learn to be more efficient when creating environments. I browsed concepts on ArtStation and pretty fast, Old Harbor by Andrei Kotnev caught my attention. I fell in love with its mood on first sight, and I wanted to create something to emulate that.
I started by breaking down the concept art and identifying assets I knew I needed to make, with different colors indicating priorities and materials.
I love structure, so I made a spreadsheet where I, during production, changed colors of the cells for the different assets depending on what I was doing. Green indicated a task to be complete, yellow to prioritize it next and so on.
I started blocking out the scene with basic shapes in Unreal, exporting the shapes to Maya and building the models on top of the shapes, saving them to their own files, then importing and replacing the placeholder shapes in Unreal with my models.
After getting the basic models done, I could just further refine them in Maya if something felt wrong, and re-import them to Unreal again.
Because my main goal was to, as effectively as possible, get to the end result with the mood and overall feeling intact, I didn’t want to over-complicate things and thus decided to use as few and non-complicated assets as I could. I never even had to bake normals, as I modeled mid-poly and got the tasty normal details from my materials.
Most of the assets are made modularly, and reused several times in the scene rotated differently to create a feeling of there being more models than there actually are. The background house pieces are modeled differently on each side, which gives a lot of variation just by rotating them. When it comes to the boat, the same model is used twice, just rotated differently to show various parts of it.
By the way, learning to use Maya’s nHair and nCloth for the ropes and cloths was very interesting, although difficult to understand at first. However, with willpower and a bunch of crashes later, I think I got a decent result for my scene’s purpose!
The textures are all based on a few base materials I made in Substance Designer. I’m still learning to use this tool, so the materials I used are basically the good results of experimenting with nodes.
Below is the node graph for the wood base material. As you can see, I make good use of grouping different parts, making everything easier to work with. I also strived to not overdo the shapes, and grouped noise nodes by themselves for easier control and re-usability in the graph, optimizing performance.
I exported the image files of my main materials from Substance Designer to Substance Painter, where I would apply them to the individual models as Fill Layers. I then baked all the Additional Maps in Painter, so I could add dirt generators and other nice stuff. I played around with sliders and just blended everything until the assets got a look I was happy with. Fast and effective!
The setup is pretty simple. I used the First-Person Shooter template, created another camera in the scene with the settings and position I wanted, and took my main screenshots with that camera. The fog is a simple particle effect that I duplicated a couple of times around the scene. I lit the scene with several Point and Directional Lights with some variation in colors, making them use different Light Channels for different models depending on how I wanted different areas to look.
After I studied how the standard sky sphere in Unreal works, I managed to get a look that I’m happy with. If you also want to play around with it, find “SkySphereBlueprint” in the World Outliner and change its settings. Look at the settings in the picture below to get an idea of what they do.
As for the moon, that’s just a sphere that I’ve applied a material with blue-tinted white emission. To get the god ray effect, I simply activated “Light Shaft Occlusion” under “Light Shafts” in the settings of my main Directional Light, then rotated the main Directional Light to make it seem like it comes from the moon. This is a fairly new but very nice and simple-to-use feature in Unreal Engine 4.
Let’s ruin the illusion and reveal how this magic trick works by turning up the light:
As you can see, there were a lot of shortcuts involved to get the silhouettes I wanted. I made lots of duplicates of nonsense models, and all the pillars are basically one wood pillar used a lot of times scaled differently, for all kinds of silhouettes (the railing for example). The two characters in the picture has a very important purpose of giving everything a sense of scale, but they are nothing more than a cutout straight out of the concept art. I think if the purpose of the scene is to look like it does in my final render, I think all of this is OK.
I made this scene in a bit over three weeks, from planning to upload. The biggest challenge for me was to get more feeling of depth into the scene and I think I managed okay in the end. Maya’s different simulation features were new to me, so they also proved to be big challenges, but I came out of those alive too!
To sum it up, don’t make things unnecessarily complicated if the end result doesn’t require it. You don’t have to throw in lots of different tools into the mix. I used Maya, Substance, and Unreal in the best way I could within the time limit, and that worked out just fine!
Thanks for reading!
Johannes Terhén Sundlöv3D artist.
Interview conducted by Kirill Tokarev.