Giacomo Bonanno shared the production details of his latest project Social Hacker Hideout made in UE4, Maya, and Substance Painter.
In case you missed it
You might find these articles interesting
I'm Giacomo, from Italy, I’m working in QA at Ubisoft Berlin transiting to be and Environments Artist soon.
I always wanted to work in the video games industry since I was a child but there weren’t any online courses at the time when I finished high school (yes, I’m old) and a university abroad… was too expensive for my pockets.
I got stuck in the loop of not being happy with my previous job so I decided to pursue my dream job. I started learning by myself with everything I could find online, then a couple of years ago I started studying environment art seriously and decided to attend Think Tank Online program. It was the first time they offered an online course and I couldn’t lose the chance.
Once I had finished the course I started for a job and after many art tests from different companies, I had the chance to apply for an open position at Ubisoft Berlin. I contacted one of the producers via LinkedIn to get some feedback and he said that I didn’t have any experience but I had an interesting portfolio, so after an art test, they gave me the chance to start in QA and then after some time transit to my desired position.
Social Hacker Hideout: Idea
With this project, I wanted to improve my prop workflow. I started modeling one of the concepts from Shen Lam during my lunch break, then moved to the next one and decided to do it all.
Meanwhile, I was also thinking of how I can integrate these props in an environment, what could be the story behind them, so I started gathering some concepts for inspiration. I always try to avoid copying concepts, I want to give my own twist and personal touch to the environment but I can get inspired by them, especially in regards to mood and lighting!
I modeled all the main assets: the ones from Sheng Lam's concepts, the lamp, the table, the planks for the basement room, the green screen, and the chair. For the rest, I took existing models modified to fit my need.
Usually, my workflow starts with modeling in Maya where I spend a lot of time working on the blockout. You have to nail the proportions, otherwise, you’ll have to deal with issues later and you’ll lose a lot of time – I learned it the hard way! Some of the shapes of the props weren’t clear from the concept, so I had to decide how to model them. Setting up a camera matching the angle in the concept can help nail the proportions. Also, setting up some basic material with colors is useful.
Once I finished the blockout, I made a copy (it will save time during the low poly stage) and started working on the high poly. I use Maya or ZBrush for the shapes depending which is faster to get what I want.
When working on the high poly, it’s important to check if the surface is properly smoothed. I apply a blinn shader in Maya with a darker gray color and an orange in the specular color, so when I use the smooth preview I can spot the problems with my surface on the fly. This works especially well for round surfaces. Another tip is to keep your bevel wide so that you don't have any issues when you bake later.
The low poly is almost done from the blockout, so it's just a matter of laying out the UVs and getting everything ready for bakes in Marmoset. I used a lot of floating geometry to get the right details, it's really time-saving since you don't have to get super clean geometry in the high poly because you don’t have to model it on the mesh.
Then I bring everything in Substance Painter where I texture the asset. Nothing fancy here, just stacking different layers to make the prop interesting and tell a story with it.
Using Ready-Made Assets
I used some props from Dekogon, their Toolshed/Garage combo has a lot of props that fit my needs, plus I also took some packs from the Unreal marketplace. I constantly keep an eye on sales and Unreal's monthly free packs.
You need to choose what story you want to tell in your scene, then look for the assets that could fit. But more importantly, always ask for feedback from friends and co-workers, they will give another perspective on what to improve. After some time, your eyes can get used to seeing the same thing.
I had to tweak the textures of some assets since they were standing out too much and taking too much attention. For example, the paper – I toned down the albedo map since it was too white. You can modify the colors in UE4's texture editor if it’s a minor adjustment, like hue, brightness, saturation, and so on. This way you’ll save a lot of time on the production side and you'll be able to focus on the artistic side of the environment!
Texturing in Substance Painter
First of all, you need to be sure that you nailed your baking, avoiding AO issue or skewing normals. Marmoset is the best software for this – it's flexible and it remembers where you export your HP and LP, so once you set up your baking it will load everything automatically.
Like with modeling, I start blocking out the main materials on the asset, ID map or UV/Geo selection in SP makes the job easy. Then I break the color by adding variation in the color map, light and dark values can make the color already interesting. After that, it's time for breaking the roughness from the main material.
Finally, I add some hand-painted textures. You can find a lot of them on Artstation, for example, this one from Ayi Sanchez. This type of alpha can help you break down the predominant procedural feel that smart materials have in SP. With time, you’ll create a library that will improve your texturing process.
It's crucial to have some good reference for texturing. You need to choose what look you're going for, whether the object is brand new, used or old, what's the environment around it, who used this kind of props, etc. That's why I like to think of a story behind each of my scenes.
I tend to start with a smart material and modify it to fit my needs. This way, you can save some time on the texturing process. Once you’re happy with the result you need to check if the output is valid for the PBR chart (albedo and metal). These values are crucial since otherwise, the object can look weird in the engine, too dark or too light for example. I use a combination of two free tools, PBR Validate from Wes Mc Dermott (a filter that shows you in red the areas you need to fix) and Automatic PBR Fixer from Gregorio Piscitelli (it tries to automatically fix the wrong values, you can either keep the result or change it by hand).
From one of Quixel's videos, I also found out a cool trick to make the edge highlights and cavities pop (see below). You need to bake the curvature and the concave map, and with a couple of adjustments, you can get a cool result.
Cavity highlights on/off:
For the board, I used an asset that came with a cool shader which allows you to place any decals you want on top. The asset came with some decals already on it, but I changed them with a custom texture that uses RGB channels to store different handwriting texts. Getting packs with existing material can also help you understand how some shaders work, it can save your life in UE4 and it's always a way of learning.
The scene went through a lot of iterations and trial and error. Setting up some key cameras helps easily see how the scene feels and gives a good overview of your progression. You can set them up by clicking Ctrl+1 - Ctrl+9 and quickly scroll through them.
I used the foliage editing for the paper on the ground. All the other assets are placed by hand since it is a small scene.
In the beginning, you can stay messy since you're trying to get stuff in the scene and see how it feels but after a while you'll have to try and stay organized. This will save your life in the long run. Setting up groups of assets makes it easy to select and move things, for example, all the assets on the table are in one folder, same for the TVs on the shelf, the card boxes, or the shelf close to the entrance.
Same thing for the light, especially when you’re trying to establish the mood: grouping lights and staying organized can make it easy to check light bakes issues and change your light on the go.
Reference can help you choose the mood or inspire you to create one. Most of the time I find myself looking at movies or series that have the same feeling/color I want to achieve, then looking at some key shots and trying to see how that works. And once again, feedback from friends and co-workers helped me a lot! After the modeling blockout, I also try to block out the light. It helps to see if you’re going in the right direction.
I used a mix of lights: baked lighting to get some nice GI and then I switched some lights to dynamic to get a better result. I tend to use the light to guide the viewer's eyes, like with the light coming from an open door that illuminates the fallen camera. I also used exponential height fog, set up volumetric fog to get that nice effect from the light on the board, the light on the table, and the one from the TVs.
At first, the whole environment was too light, so after some feedback, I tried a different approach, darkening the room and setting a cool and warm contrast between the cold blue light from the TVs and the yellowish light that illuminates the board.
I found a cool tutorial on how to understand composition (see below). I think it’s crucial to learn how to light your scene up properly, otherwise, all the work you put into modeling or texturing will not get enough attention!
For post-processing, I took a couple of screenshots from the main cameras and played with the values in Photoshop a bit, luminance and levels to get the right feeling, but nothing too fancy. I like to play with the post-process effects in Photoshop, then apply a LUT. It feels more controllable compared to all the effects in UE4. But of course, some of them got tweaked directly in the engine.
I recommend checking this video to understand better what I mean and learn more about post-processing: