Great work Gabe!
Incredible job, love the breakdown and can't wait to see what you make next!
Maxim Dorokhov did a full breakdown of his Wild West Challenge submission, detailing how he created modular assets, effects, master materials and smaller tricks, which helped him to build this outstanding UE4 environment.
My name is Maxim Dorokhov, I’m 27 and I am a 3d environment artist currently based in St. Petersburg, Russia. At the moment I’m working on an unannounced project at Goblinz studio and as a freelance artist at Blue Twelve studio, I’m also a member of Dekogon Kollab project.
My first 3d software program was 3ds Max 5. I was 14 back then and since then CG has become my main focus of interest. At the age of 18 I started working professionally as a freelancer. The projects I worked on were ranging from product and interior visualization to commercials and music videos. The last 3 years I have been working in video game industry and I feel that my background helps me a lot in this.
Some of my personal works:
I created this scene for the Artstation Wild West Challenge. You can check my submission thread here.
Original concept was created by Dave Jones.
When I first saw the concept, it immediately brought to my mind the Emmett Brown’s lab from Back to the Future 3. Since I’m a big fan of that movie, I’ve thought it would be fun to change the machine function to the time traveling and make other small changes to the room accordingly.
For the time travel machine, I came up with the idea that machine’s sphere projects the light beam, inside of which time-traveling happens.
Most of the references I took from photos of Edison’s lab and various online antique stores. For the machine parts, I used photos of antique power generators.
At the blockout stage I’ve made a draft room and set the light closely to what I wanted to achieve at the end. I tried to fill up the space with blockout meshes for all of the biggest props that I wanted to see in the final scene and placed them the way they are placed in the concept.
At this stage I paid a special attention to objects scale and spaces between them, so the scene matched the concept and didn’t look too spacious or narrow. For achieving a realistic feel to the interior I tried to think about how the actual person would use the space, what objects would they move to make the space more comfortable for themselves.
I also assigned a simple photo texture to the room geometry to imagine the end result better.
It always helps to think about how an object would’ve been created and used in the real world. What technologies were available in that era. What manufacturing processes are behind the objects I want to create. How are they functioning? What design and materials are inherent in that era. What features could appear in the process of using these objects. When you have all the answers, it only remains to be transferred to your model.
For the machine, I tried to add details that would’ve helped to define it as assembled machinery, not a solid piece of metal.
For the modeling part, I mainly use 3ds Max and add details in Zbrush if needed. In this project Zbrush was used for creating folds on the armchair(using Wrinkle VDM Brush) and dents on the water tank, merging separate elements of the stove and creating nicely rounded edges. This last technic really speed up the process of creating complex shapes and was perfectly explained in this Polycount thread.
I used 5cm grid only to create modular pieces of the room like walls, doors, windows. For the rest of the assets it wasn’t necessary in this case.
I always create my scenes in real world scale. I think proportions is one of the things that is crucial for achieving realistic feel to the environment. I always try to rely on real world measurements while creating something: for example, chair seat is usually 45cm above the floor, door is about 80cm wide, desk height is about 75cm etc. These are the things people constantly see in real life so it would be noticeable that something is wrong if distances are a way off. If I’m not sure about object scale I try to find something similar in online stores to check dimensions.
Randomization of smaller props
When I started this project, I’ve made a simple Excel file to write down everything I wanted to create within the project and how many time it will take. It turned out that I needed much more time than I had, so I knew that I would have to simplify a lot of things. I set myself a strict deadline for the creation of each asset and tried to work on the scene at least an hour every day.
There is a lot of props in this scene, about 90, but almost all of them consist of simple shapes.
First I’ve made the stove and the armchair. They are in the center of the room and I think it wouldn’t be right to simplify them too much. For the rest of the props I’ve made a bet on the materials.
Despite its importance in the scene I left the time machine to the middle of the project to better understand how it should look like, and that there still was time to spend on it.
When all the biggest props were done, I’ve made books and bottles. Because of the shaders I created for them, It was very easy to randomize their appearance and it helped to fill up the room quickly. All the other small and simple props I left to the end of the project, so that in case of lack of time, they could be done quickly, and this would not greatly affect the overall picture.
I also used details of the machine and trim sheet to create some spare parts to fill up the place even more.
For texturing I’m using Substance Designer to create some of the base materials and Substance Painter to add individual details.
At the very beginning of the project I created few smart materials, like varnished wood and brass for the furniture, raw wood, oxidized black steel for the machine, rusted cast iron for the stove. It speeds up the texturing process very much.
The machine uses 4 texture sets: 3 unique and 1 trim sheet.
All of the rest of the props use one texture set.
For texturing convenience I imported to Substance Painter whole and exploded versions of the model.
Texel density for the scene is 1024px per square meter. All textures are not bigger than 2K.
Most of the assets in the scene use one master material. UE4 uses PBR shading model and very flexible material editor, it allows recreating the appearance of real world objects pretty accurately. For most of the assets I used Albedo, Normal and packed RMA (Roughness, Metalness, AO) textures. I made some of the materials animated, because I wanted to make a video.
It contains parameters to control albedo fresnel to imitate the soft textile fabric, parallax for the depth effect on the wood planks on the walls, emissive mask and emissive color. It also allows adjusting Roughness, Normal intensity, Albedo tint, AO intensity to avoid going back to the Substance Painter every time you need to make small changes, and that there was an opportunity to create several versions of the material while using the same textures.
In this scene it is used only on the floor. To add dust in the corners and at the entrance of the room, and to add oil stains from the machine around it and near the workbench.
It was the most challenging material in this scene for me.
It’s used on the stove doors, lab flasks and for all of the bottles placed on the shelves.
The material I created allows me to change color, dirtiness, dustiness, and refraction of the glass.
To speed up the work with bottles these parameters vary depending on the position of the object in the scene. For this, I used Object Position node that controls the UV coordinates of the textures. It also moves the vertices of the cork, label, and contents of the bottles.
Books material works the same way. The Object Position node shifts the gradient texture, which multiplies albedo through the mask.
For the belts of the machine, I made a material that simulate their rotation.
The two main parameters are the rotation speed and the deflection of the hanging vertices.
For rotation, I animated the movement of the texture along one of the axes.
For the effect of a sagging belt, I painted the vertices hanging between the wheels of the machine, and animated their displacement along the vertical axis by the movement of the noise texture.
For lightning, I made an object consisting of all possible variations of the position of lightning. And, just like with the belts, color the vertices and animated their displacement in the material.
For lightning to light up by turns, I placed them sparsely on uv, and used a stretched by single-axis moving noise texture in Opacity.
Here I used Unlit shading model, because I only needed two parameters: Emissive and Opacity.
Here I also used Unlit shading model and shifted texture in the Opacity across the UV to simulate the dust moving in the air.
I used Depth Fade node to avoid sharp intersections with the geometry of the scene, and Pixel Depth node to avoid camera clipping.
The same material is used for the light beam from the spotlight of the machine. I only added here a vertical gradient to the Opacity, so that the light gradually dissolved at a distance from the light source.
Posters and Blueprints
For the posters I used blueprints of old machines, some of the Tesla’s blueprints, star maps. For the posters with the machine blueprints I rendered it in different angles with toon shader, and then added random mathematical formulas.
For the small papers I used different old letters and random blueprints. In the end I got 8 small notes that I combined in 6 different small stacks.
My lighting setup is pretty simple. Directional light as the Sun, Skylight and Atmospheric fog as ambient light, emissive light from machine sphere material and a few point lights to highlight some areas that I think was too dark. Also I used Light Portals in the windows to help Skylight find the best way to the room. All lighting is baked.
At the post process I’ve adjusted the white balance, increased the contrast, made shadows a bit greenish and added yellow to highlights.
More final shots and my other works on Artstation. Thanks to Kirill Tokarev for the interview! Hope it’ll be helpful for someone.