Lim Jun Liang shared with us a step-by-step breakdown of modeling an Ironclad Workshop scene with a gloomy atmosphere based on a 2D concept, sharing experiences of creating and utilizing trimsheets and tileables as well as tricks to save time and ensure a consistent art style.
Introduction
Hi! My name is Jun Liang, a recent 3D art graduate based in Singapore. I first got into 3D art during my tertiary education as a 3D Animator. Wanting to bring worlds and characters to life, I decided to delve into the world of 3D modeling! I learned my skills from a school called 3dsense Media School located in Singapore, where I enrolled in their Game Art course. Their lecturers are from the industry, so the workflow they teach is up-to-date and industry-standard.
About the Ironclad Workshop Project
As this was an assignment where I had to model an environment from a concept reference, I chose a concept that caught my eye, which was this environment concept done by C_Liang. I really loved the overall storytelling and mood of the scene. More importantly, I found the robot to be really cool!
Undergoing this project, I wanted to learn and familiarize myself with the whole workflow of creating an environment, which consists of workflows such as creating and utilizing trimsheets and tileables, as well as setting up materials and lighting in Unreal Engine.
Before starting the project, I broke down the scene into sections so they feel easier to manage. I also did some research to gather references for each of my assets. I found the 3D references for every asset using a variety of sources, such as Google, Pinterest, and Yandex. These references serve as a guide when modeling my assets. I also searched for lookdev references, which gave me a rough guide of how my model should look in the final render.
Blockout
To match the view and perspective of my reference to the camera, I used fSpy to help me achieve an accurate camera position and angle relatively fast. Afterward, I blocked out the larger shapes first in Maya while focusing on their silhouette to get a basic feel of how the environment would look in the 3D space. At this stage, I had to scale the scene to its real-life dimensions, as lighting and materials would be affected if not scaled correctly.
After completing the blocking, I started to model every asset and place them in their respective positions. Generally, I would model every asset by going from larger shapes then adding secondary details, such as nuts and bolts. Tertiary details are then sometimes sculpted or done in the texturing stage.
I modeled the robot based on the concept provided by the artist. There are certain parts of the robots that I used a trimsheet as I was trying to use as few texture sets as I could, while certain more important and unique parts were treated as unique assets and textured separately. An example of a unique part was the seat cushion. I first detailed the asset in ZBrush, retopologized it using Maya’s Quad Draw, and then baked the details onto the low-poly mesh in Marmoset Toolbag.
One trick that I used to save time was using Marvelous Designer to get a base for the cloth in the scene and then further adding details in ZBrush. Other than that, I used trimsheets to texture a lot of assets in my scene, which saves time while ensuring the art style stays consistent.
Unwrap
For this project, I modeled most of my assets while thinking of having good topology from the start, so there wasn’t really a need for retopologizing. However, for complex assets like the tarp on the floor, I used Decimation Master in ZBrush, as it keeps the tri-count low while still holding the shape of the mesh.
I used Maya to unwrap everything, keeping all UVs at the same texel density of 10.24 to ensure that every asset in the scene has the same level of detail fidelity.
Texturing
In my environment, the majority of my scene was textured using trimsheets and tileables. I created trimsheets using a combination of Quixel Mixer and Substance 3D Painter. I planned my trimsheets by first unwrapping the larger assets in Maya and arranging them in the UV Editor to inform me of how much space that asset would take up on the trimsheet. I then used the multi-cut tool in Maya to mark out the spaces on a plane, which was then brought into Substance 3D Painter to texture.
For my unique assets, I generally like to use smart materials and modify them, further adding and/or removing layers to save time. For the robot, I wanted it to have an old and used look. So, I added various dirt and edge wear layers. Most of these were done by blending different grunge maps together with different blending modes to get the results that I wanted. I also added height information for surface imperfections, such as dents and scratches. Other than that, I added color variation on the metal surface to stain the metal and give it a more complete look.
Final Scene
As the goal of this project was to match the concept reference as much as possible, I had to stay faithful to the concept chosen. However, assembling the scene came with its own challenges, as the depth of the asset placements was hard to gauge. I found myself adjusting the assets around often in Maya to get the placements of the assets right.
Lighting
I first started out with the directional light as it is the main light source of my scene. The directional light also created the “window light” on the floor. As my scene was in a room, it was quite dark after adding the directional light. So, I lit up the room with many different lights, accentuating certain highlights while lighting up the scene overall.
For post-processing settings, I changed the exposure meter mode to manual so that the lighting in my scene would always remain the same. I also turned on Infinite Extent, so post-process settings would affect the whole world.
The fog in the scene contributed the most to the gloomy atmosphere. Initially, I used exponential height fog to add overall fog into my scene. However, some parts of the fog were tough to achieve, so I used EasyFog by William Faucher as they provide a good look and are easier to manipulate to fit the look that I want. Also, the god ray in my concept was quite soft, and there was no way to achieve the results using the parameters of exponential height fog. So, I added EasyFog with a modified alpha mask along the god ray to soften the harsh ray.
Summary
This project was done in approximately three months, from blocking all the way to lighting and rendering. The main challenge that I faced was trying to integrate my assets into Unreal Engine. From material integration to lighting, there were always issues to troubleshoot every step of the way as technical issues and limitations always popped up. But by encountering these challenges, I was able to experiment and come up with creative solutions for my problems.
As the timeline for this project was super tight and rushed, I learned how to manage and plan my time as well as hit the milestones required for the project.
Advice to beginner artists is to always seek and implement feedback from peers and mentors. Without the help and feedback from my classmates and lecturers from 3dsense, I wouldn’t be able to complete this project at this level of quality. That’s the fastest way to improve!
Thank you for reading this article. I hope that I was able to offer some helpful tips!