Dominique Buttiens broke down his Wild West ArtStation contest entry that was finished in only 4 weeks and won an honorable mention!
Hello, my name is Dominique Buttiens. I always loved games and wondered how they were made. I first played around a bit with modding and realized I loved how I could use games as a way to tell stories. I ended up choosing a school where I could keep practicing these skills. Growing up in Belgium meant there was only one school to choose from, Digital Arts and Entertainment at Howest University.
My first job was at Studio Gobo working on Star Wars – Disney Infinity. After that, I experimented a bit with VR and mobile games back in Belgium at a company called Triangle Factory. Eventually, I ended up back in the UK with Studio Gobo in partnership with Ubisoft Montreal working on the game For Honor.
Tomb of the Iron Horse Project
I was actually not planning to join the Wild West competition at all. My co-worker joined it and halfway through the competition, he managed to convince me to join as well. Since I only had 4 weeks left, I decided my goal would simply be to pick a small scene and see it all the way through. Often I would find myself starting projects but rarely finishing them! I also was keen on trying a very dark scene. I ended up choosing a piece by Connor Sheehan.
The first week I just played around with ideas and blockouts, a bit of lighting etc. As time progressed I tried picking out small things I wanted to practice, like certain workflows and playing around with shader tricks and texturing workflows that I’ve been meaning to try out. Towards the final two weeks, I got really invested and went all in trying to make it into something I could proudly add to my portfolio. I wanted to see what I could pull off in roughly 3 to 4 weeks. I was quite happy when I heard I received an honourable mention!
My first focus was on getting the composition right. I figured I could blockout the key structures really quickly. This meant a blobby cliff wall, a cube for a wagon, a very blocky locomotive and an orange pointlight. Then for the first week or so, I tried to stick to the concept as much as possible. When I felt confident I had taken the composition and mood in a good direction, I made a trimsheet for the metal and started rendering out the blockout a bit more.
I tried splitting everything up into small daily tasks. For example, the trimsheet, then using said trimsheet to do the first pass on the wagon, etc. Eventually, I started spending my ‘day tasks’ on single assets like the lantern and the gold coins.
Working on the Train
In my mind, quality work comes from lots of iteration. In the case of the train, I started with a very rough blockout and a simple metal trimsheet (pictures above). After I had the obvious shapes in there, I went looking for interesting elements to add: things that would look cool and a story.
I tend to do a lot of my work in 3ds Max, but from what I’ve seen in ZBrush, Blender, Maya, etc. I should say you can pull this off in any software solution. I tend to start with the object ‘in tact’ and adding in all the details like bolts. Only when I like the object in a normal state with neutral lighting, I’ll move on to adapting it for the scene. In this case that meant bending and tearing to make it look damaged. During this, I kept in mind where the weight of the object would be and how the material would respond under pressure. What also helped a lot to sell the idea of damage was vertex paint. For every scratched or a torned up surface, I would blend away the paint coat and dirt to leave a spot of shiny metal (example below, no custom normal bake, just a blend material and weighted vertex normals).
Most of the scene is created with tiling textures and a common industry practice called vertex painting. On top of that, I used weighted normals to make sure everything looked polished without having to bother with making highpolys or baking normal maps. I blend in rust and polished/painted metal, based on the same mask of the trimsheet (I just export it separately from Substance Painter). Another way to do it is by making tileable textures and giving the individual objects you want to texture a color mask. You then use the RGBA channels to distinguish between the materials. You’d still need a normal map separately if you work like that. I have to admit though, for the challenge I did it quite rushed and lazily, it’s not exactly as I describe it. But I recommend the above way more than my rushed work here!
The second shader trick I managed is quite easy in Unreal. I basically used a slope node that uses the world position with a gradient to project sand/dirt on top of the meshes. The result from that I blend with a random noisy mask to break up the soft edge and create some randomness in the sand/dirt.
As I said ‘most’ is a tileable texture, but for a few of the key elements that I had planned to really put in the camera/player’s face, like story elements, I made a unique normal bake and mask. The key elements in this case were the wheels and front of the locomotive. I won’t lie, this was also partially because I just wanted to have fun with those and make a highpoly.
Sidenote: I’m hoping to do an in-depth video tutorial on my workflow in the future and will post any updates here.
Playing and re-iterating with light was something I loved on the project. Probably a little too much. I experimented a whole lot before I settled on this look. When I started this project, I had two goals in mind: finish the project and make it a dark scene.
My first version was just some fog and a pointlight. Up until this project I hadn’t played with Unreal’s new volumetric lighting, and now I love it! Throughout the weeks that followed, I played with a lot of different setups including spotlights, directional lights and everything else in the Unreal 4 toolbag! The final setup is made up out of lots of tiny elements that are quite simple on their own, but the whole scene turned out a bit more complex than people would probably expect. It required a lot of tweaking and polish and I’ll try to break it down as best as I can.
The main scene has a combination of volumetric fog and a skylight for the base, but then I went in and added point lights as fill lights to accentuate the glow from the lantern. I also ‘cheat’ a bit sometimes by placing local reflection spheres with an increased brightness. If I hadn’t done this, the scene would have been too dark and you would only be able to see 20% of the scene.
I also did a lengthy pass on making sure that highlights were caught nicely by the surrounding objects. As a concept artist, you have the luxury to make the lighting ‘pop’ wherever you feel like bending the rules. But as a 3D artist, it can get a bit tricky. A method I used, just like in e.g. Max or Maya, is to tell particular objects to ignore specific lights. This gave me so much freedom to experiment even more.
Finally the lantern itself! It might look like it’s just a pointlight, but in fact, there are quite a few different things at play. First of all, there are in fact 3 point lights for optimal control of the spread. There is also a small pointlight for the little glow effect inside the lantern. There is a ‘light cookie’ or alpha image for the shadowcasting of the lantern. Inside the lantern, I’ve put a small moving mesh with an emissive material that changes intensity to simulate a flame. And last but not least, the shadow on the cliff wall (from the locomotive) is casted by a spotlight just in front of the lantern.
If anyone is keen on learning more I could try to do a full, more detailed lighting tutorial on this scene and share it with the fine folks of 80.lv. Let me know in the comments! Also, any questions can be sent to me here.
During the final week, I did a lot of polishing and experimenting with what looked crisp and what didn’t. There were also two minor ‘tricks’ to make sure I kept as much of the sharp details as possible. One is quite simple: increase the screen percentage. This can be either in the engine or when you render out a screenshot. I took my final renders at 4k and then downscaled them in photoshop to 1920×1080. That way it keeps the details in there a lot better. You can do this realtime, but it’s not ideal for your framerate. A more framerate-friendly trick is adding a sharpness filter in your post-processing! It’s surprisingly easy to figure out and I’m actually surprised at how few people do it. I think I discovered it on the Unreal forum years ago. I made a quick free tutorials for it, you can find it here.
I hope this was informative. I’m planning to do more in-depth tutorials and breakdowns in the near future and I actually want to try to release the full scene to the public. It just takes some time to write it all down and clean it up. If you want to follow along or ask specific questions you can find me here:
Dominique Buttiens, Environment Artist at StudioGobo
Interview conducted by Kirill Tokarev