logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Making Abandoned Blowers with Blender, Substance 3D & Unreal Engine 5

Aleksandra Zając explained in detail how the Abandoned Blowers project was created, discussed the texturing process using the Multiple UV workflow and Vertex Paint, and told us how rust was made. 

Introduction

My name is Aleksandra Zając. I come from Poland, from the charming town of Pszczyna. Currently, I work as a Senior 3D Artist at Bloober Team and as a Contract 3D Artist at Dekogon Studios. I've been working in the game dev industry since 2014, and my biggest experience lies in creating vehicles and props. However, for the past few months, I've also been exploring environment art.

My journey with 2D graphics started with my studies in 2009, which lasted for 6 years. Unfortunately, there were no regular 3D classes available, but the curriculum included painting, drawing, photography, illustration, 2D animation, and more. During that time, no universities in Poland offered 3D classes. For a long time, I was unsure of what to pursue and which professional path to take. I was leaning towards 2D animation, which I was quite good at and enjoyed, but I felt that it wasn't quite the right fit. Then, one day, I discovered that students organized 3D classes after the mandatory courses! I attended these classes with a strong interest in the subject. That's when it hit me... Since I've always loved computer games since childhood, I should get involved in their creation! During the few classes that took place, we covered only the basics of Cinema 4D, but it provided me with a direction for what I wanted to do next. I then switched to 3ds Max and started learning on my own.

Two years before completing my studies, in December 2013, I was hired by my first game development company. It was an indie studio, and I spent almost 5 years there. We worked on mobile games and gradually started entering the PC gaming market. I worked as a 2D and 3D Generalist and was the only 3D artist in the company. As you can imagine, it was a significant challenge for a junior artist who found himself in deep water and had to handle literally everything. However, this experience greatly empowered me. I developed problem-solving skills and the ability to find the best solutions, which I consider extremely valuable.

In 2018, I joined The Farm 51, and for nearly 5 years, I worked on the World War 3 project as a Vehicle Artist. I quickly began to develop my artistic skills because I was able to focus on honing my abilities in one specific field. I specialized in creating vehicles, ranging from military to civilian. I was responsible for the entire creation process, including modelling, texturing, as well as setup, which involved rigging and skinning the gameplay vehicles. Equally important, I was lucky to work with the extremely talented 3D artists, Konstantin Korol and Viktor Korneliuk, from whom I learned a lot at that time. I would like to extend my warm greetings to them! 

After years of creating vehicles and props, I felt the desire to seek new challenges and learn new things. I didn't want to stray too far from what I do with immense passion, so I chose environment art. Because of limited experience in this area, I enrolled in a 10-week CGMA course called Modular Environment by Clinton Crumpler. The result of that is The Abandoned Blowers project I will discuss here. I must say, the course was fantastic! It was well-organized and packed with valuable content. It covered all the necessary topics to create a fully realized environment, with plenty of links, references, and instructional videos. Every week, there were feedback sessions and Q&A meetings. The course had an active community with mutual motivation, support, and the opportunity to track the work-in-progress of other participants, which was both enlightening and fascinating. And of course, Clinton Crumpler himself! He possesses immense knowledge, which impressed me greatly. He is a brilliant artist and mentor who can help you with any problem you may encounter.

This year I started cooperation with Dekogon Studios. I have already watched the actions of this company with great admiration. High-quality assets are something that always catches my eye and is what I like to do the most. When I met Clinton on the course, which is the head of the studio, I immediately thought that I would love to work with him and be part of this talented community! That's why I applied to Dekogon as soon as possible and that's how I work here as a Contract 3D Artist.

Since this year, I have also been working at Bloober Team as a Senior 3D Artist. The studio specializes in horror games, which has always been a dream of mine to work on. I've had a strong affinity for this genre since childhood, so I'm incredibly excited to be here. The studio is well-known for titles such as Layers of Fear, Observer, Blair Witch, and The Medium. Currently, among other projects, we are working on the remake of Silent Hill 2!

The Abandoned Blowers Project

As I mentioned earlier, I decided to take the CGMA Modular Environments course by Clinton Crumpler. Each participant had the freedom to choose their own environment and even the stylistic approach. Knowing that I had 10 weeks to complete the course and wanting to go through all the stages in a timely manner, I had to be careful in choosing the scale and level of detail for my location.

Idea

From the very beginning, I knew that I wanted to create an environment for a first-person perspective (FPP) horror game with a realistic style. Additionally, I have a passion for industrial, post-apocalyptic, and abandoned settings. I love rust, which can form intricate patterns like brushstrokes on canvas and showcase fascinating colors and textures.

Rust

Dust, dirt, and debris are also interesting elements that add character and history to a location. When combined with intriguing lighting, they create contrasting variations of roughness, especially noticeable on the floor.

I began my research, which lasted for about two days. I explored various urbex websites and photographs. Here are some of the great sources I found. Ultimately, I chose a French location called Soufflantes Decazeville. I found plenty of references both inside and outside the location, which proved to be very helpful during the creation process. The place had everything I wanted to include in my environment, and I was particularly fascinated by a large symmetrical machine with a wheel. I knew I had to incorporate it into my project.

All References

Main References

References

I was struggling with thoughts of whether I would be able to handle such a complex and detailed location, especially as it was my first time working on such a large-scale environment. Damaged places require a lot of work and effort. However, in the end, I decided to trust in my skills and pursue what I truly wanted to create, questioning whether I will actually be able to achieve it in such a short time. I worked on the course after my regular work hours, but I set myself a great pace and used my free time to the limit to achieve my goal.

At every stage of my work, one of my main sources of reference and a benchmark for overall graphic quality was screenshots from The Last of Us.

The Last Of Us References

Planning – First Part

It was very helpful right at the beginning to organize my work into separate parts on Trello, listing what needed to be done: assets, materials, damage, debris, etc. Additionally, I often jot down quick ideas or details on a piece of paper that I want to implement. This way, I don't waste time and energy trying to remember everything, and I don't have to worry about forgetting something.

Quick notes with ideas and a to-do list

Trello Project

Blockout

To determine the scale of the building, I first used an external photo that included a person standing next to it, which is always helpful because it provides an easy point of reference. I recreated the outline of the building in Blender, added a 180cm-tall figure, and aligned it with the reference photo.

Blockout Scale

Knowing that the building is approximately 2200cm long and 2000cm wide, I could start planning the modular pieces of the walls. In the original location, the distances between windows are not regular along the entire length (as seen in the external references), which I also took into account in my project.

Modular Walls

I started working on the blockout in Blender, where I set everything up to align properly. In modular planning, it's important to use the grid, so I enabled that option before starting to place anything.

Blender Grid Snapping and Units

Once I made sure everything fit together perfectly, I created the blockout for the remaining unique props and exported all the elements to the engine. Here, the Blender For Unreal Engine addon comes in handy, which you can download from this link

Blockout Elements

I divided the Blower Machine into 4 separate parts simply because the Lumen lighting doesn’t tolerate large meshes. Additionally, maintaining a consistent naming convention like [SM_NameMesh_01a] helps keep the project organized and makes it easier to identify and work with specific assets.

Naming Convention

In the engine, I set everything up in the same way, using the grid, of course.

Blender and Unreal Blockout

At this stage, I also added an additional light-blocking mesh with cutouts for the windows to prevent Directional Light from passing through the walls.

Planning – Second Part

With the blockout ready in the engine, before moving on to the next stage, I took the time to carefully plan the entire scene in terms of trims, unique elements, tiles, and trim hybrids. This proved to be one of the most helpful aspects of the planning process. I determined the texel density of the project to be 512px/m as a minimum requirement for a 2048px texture, and I kept this in mind, periodically checking if a particular trim would meet this criterion.

Planning Trims

Below is a screenshot of all the modular elements and unique props that I created for this project.

Blender and Unreal Blockout

Modeling

Trims

I started modeling the trims by creating them in a traditional way. I modeled high-poly strips and arranged them side by side, then baked them onto a flat plane in Marmoset. This topic is clearly explained in tutorials by Polygon Academy: 

Trims high poly

Decals

A useful technique to achieve damage on modular walls was to add Decal Edges on their edges. In ZBrush, I sculpted simple damages and baked them onto corner pieces, which I then placed on the edges of the walls. Leonardo Iezzi provides a more detailed description of this technique: 

Decal Edges

I used a similar approach for the cracked planks. I wanted to achieve the effect of protruding splinters at a low cost. I quickly sculpted the broken plank, focusing only on its ends, in ZBrush. I baked it onto a piece of box geometry, which I placed over the end of the plank. Additionally, I added a few planes with alpha textures in some areas to create the illusion of more splinters.

Planks

To save time, I often use the Welder addon. It allowed me to quickly create welds on the Blower Machine with just a few clicks.

Welder Addon

Workflow

For more complex objects like the Blower Machine in this case, I use ZBrush to refine the high poly model by polishing the edges. The process is very simple, and you can achieve the desired effect quickly. In Blender, I prepare the base mesh, often using booleans to cut out certain parts. Then I export it to ZBrush, where I use DynaMesh and polish the edges to achieve a smooth result. For those unfamiliar with this technique, I recommend checking out the Military Radio Tutorial by Simon Fuchs.

ZBrush Polishing Edges

I quickly create the low poly model based on the base mesh that I used for creating the high poly model.

Bakes Blower Machine Low Poly

When modeling simpler meshes, I use the Bevel modifier combined with Subdivision. This approach is much faster than the traditional subdivision workflow because you don't have to add support loops everywhere. If I encounter any limitations, I seamlessly blend these two techniques on the same object without any issues.

Bevel + Subdivision Modifier Workflow

Vegetation

I downloaded vegetation for the area around the building from the Megascans library to save time. For larger trees, I placed them manually. While for grass and smaller elements, I scattered them using the brush tool in Foliage Mode. This allowed for a more efficient distribution of foliage throughout the scene.

Vegetation

Texturing

Multiple UV Workflow

The Blower Machine asset was quite an interesting challenge. The Multiple UV workflow is the ideal solution for large props like this, which is why I chose to use it. As I mentioned before, I aimed for a texel density of at least 512px/m per 2048px texture. To meet this requirement, I divided the entire asset into three separate parts with distinct materials.

Blower Machine – Materials

I prepared 3 UV sets for each of the 3 parts:

  • 0UV – Normal Map + Ambient Occlusion
    Unwrapping the UV in this case, I made overlaps where possible to get the highest TD. I made mirrors literally everywhere it was possible. Overlaps don't affect the texture channel in this case and are not noticeable in any way, but they allow for more efficient use of space. I applied this technique separately to all three parts of the Blower Machine.

Blower Machine 0UV overlaps

Blower Machine – 0UV – Normal Map & Ambient Occlusion

  • 1UV - Base Trim 
    Before unwrapping the UV channel, I prepared a texture with 2 trims and then aligned the shells accordingly. For this specific channel, I used a single texture and applied it to all three parts of the Blower Machine.

Blower Machine – 1UV – Trim

Blower Machine – 1UV – Trim Albedo

  • 2UV - RGBA Masks - Dirt, White Paint, Oil 
    This stage was challenging because I couldn't fit everything on the UVs to achieve good TD. Here, I also used overlays, but in a way that wouldn't be noticeable. I didn't include certain elements on this channel at all to save space. I prepared three masks like this, corresponding to the three parts of the Blower Machine.

Blower Machine - 2UV - Masks

Blower Machine - 2UV - Masks

At around the same time, I was refining the master material and checking how the results of my work looked in the game engine.

Blower Machine - Master Material

The finished Blower Machine looks like the screenshots below:

Blower Machine - Final

Blower Machine - Final

Multiple UV workflow has been extensively covered online, and below I'm sharing links to the ones that were particularly helpful to me:

Cairo Goodbrand 

Hamish Ames

The DiNusty Empire

Vertex Paint

Another interesting topic is Vertex Paint. I used this technique on the walls and floor. I also increased the density of the mesh on these elements to enable painting. Below, you can see short videos demonstrating how the master material I created for this environment works.

For vertex painting, I utilized all available channels. I added the Parallax Occlusion Mapping option to each material, and I used masks to control the painting, allowing for additional surface detail based on the masks prepared and assigned to specific channels. In the case of the floor, I followed this process:

  • R - Tiles Detached
  • G - Tiles Rubble
  • B - Dirt
  • A - Water

Vertex Paint Master Material

Vertex Paint Master Material - Zoom In

Vertex Paint Master Material - Zoom In

I recommend familiarizing yourself with these tutorials on Vertex Painting, which served as the basis for my work:

Tiles

When making the base texture of the tiles, I added variations on the normal to imitate their collapse or the micro detail and porosity on their surface. To achieve the pattern found in the original location, I prepared an alpha in Photoshop and applied it in a way that it tiled on each tile. I also added some dirt to diversify the roughness and cracks, but I was cautious about the amount to ensure it didn't stand out too much when viewing the entire floor.

Tiles Texturing

Floor Reference

Props

When texturing props, I often use anchors, rely on generators, and do a lot of hand-painting to break up repetition or add distinctive details. Additionally, I extensively use stencils, which greatly speed up the workflow and add realism.

I will describe my workflow for painting rust using the example of the lamp shown below, alongside the reference photo I used as inspiration.

Lamp

To achieve rust beneath the damaged surface, I followed these steps:

  1. I created an empty Fill Layer called "MASK RUST HOLE" and manually painted the damages in its mask. I placed an anchor on top of it.
  2. I created another Fill Layer called "Rust Hole – Edges Subtract" with the blending mode set to Passthrough. I added an HLS Perceptive filter with a high Lightness value and set the Height to 0.02. This layer aims to emphasize the edges of the holes and lighten them to create contrast. In the mask of this layer, I connected the previously created "MASK RUST HOLE" anchor. I used a Blur filter to expand the boundaries of the mask and then duplicated it without the blur, setting the blending mode to subtract to extract the center and obtain only the outline.
  3. Next, I added a shadow within the holes, right at the edges. I created another Fill layer called "Rust Hole AO" with a black color, roughness set to 1 and Height set to -0.03. I also masked this layer with the "MASK RUST HOLE" anchor.
  4. Lastly, I added the rust material, masked once again with the "MASK RUST HOLE" anchor.

Lamp Texturing - Rust Under Surface

I also added a different type of rust, this time on the surface. Similarly, I created a Fill Layer that contains masks linked to the "MASK RUST ON SURFACE" anchor. I connected it to two layers with different colors: yellow and orange. To create a smooth transition based on the grayscale value painted with a brush, we can adjust the sliders in the respective sub-layers linked to the anchor. In the mask of the yellow color layer, set low-level values, and in the subsequent color layer, set high-level values.

By adjusting the levels in the masks, you can achieve a smooth color transition based on the grayscale values, effectively simulating rust on the surface of the prop.

Lamp Texturing - Rust On Surface

Composition

The most significant work in the final review of the entire scene is done with Vertex Paint, decals, and lighting. I adjusted the walls and floors to best reflect the real location in terms of materials. The composition of stains on the walls in the references looked very interesting, and I didn't want to change anything. I recreated those stains similar to the original. I used a lot of decals and placed them where it made sense: cracks on the walls, debris, and dirt that accumulate the most in corners or hard-to-reach areas. I also scattered a small amount of rubble to create contrast and generate shadow on the floor, which cannot be achieved with decals alone.

To make the scene more engaging and not just a boring representation of the real location, I added storytelling elements. As I mentioned before, I have a strong resonance with the horror genre, so I could indulge in creating a heavy atmosphere and a sense of unease. To break the symmetry of the room, which is intensified by the symmetrical Blower Machine, I decided to stretch a large bloodstain from the building's entrance to the most illuminated spot under the hook. At this point, at the end of the blood trail, I placed large entrails for which I made a model, and the texture was taken from Quixel Megascans. I enriched the walls with graffiti decals, also sourced from Megascans.

I created the blood trail using a spline in the engine, and I textured it in Substance 3D Painter.

Blood Path Texture

Blood Spline

I covered the ends of the splines with additional blood decals. Below are screenshots of the blood trail on the spline itself and a screenshot with the additional blood decals added:

Decals - Puddle Of Blood

Unlit & Wireframe

Lighting & Rendering

I decided to use Unreal Engine 5 due to its excellent performance and new features such as Nanite and Lumen. This is a popular choice as many companies have completed projects in Unreal Engine 4 and are now transitioning to Unreal Engine 5. This choice is natural, considering the updated interface and new technologies available in the latest version of the engine.

When building the atmosphere with lighting, I once again took inspiration from references from The Last Of Us.

The Last Of Us - Lighting References

I set the main light, Directional Light, to a very high value and added an Exponential Height Fog, which created a sense of atmosphere and added realism to the environment. I illuminated the scene using Rectangular Area Lights placed in the windows. I also lit two lamps by the door. In the Post Process Volume, I didn't make many changes except for adding Color Grading LUT and the Sharpen material.

Exponential Height Fog ON/OFF

Rectangular Area Lights

Lights

Work In Progress

Conclusion

Creating Abandoned Blowers posed several challenges for me, but I progressed smoothly at each stage of production. One significant challenge I faced was the glass material for the windows. I struggled with it for a while, but eventually achieved a satisfactory result. Another challenge was creating the Vertex Painting material to meet my requirements. I had limited experience in creating materials in the engine before, so I wanted to learn everything from scratch. I tested various techniques to see how they worked, which also opened my eyes to many things.

Creating hero props is my main area of expertise, and on top of that, I am a perfectionist. It can be very demanding when you have the need to achieve excellence in everything, but I have learned that sometimes it's better to let go and finish the project within the given deadline if it looks decent. It's better to move on to the next topic and continue growing, rather than endlessly digging into the same thing. I realized that in the case of environments, it's the entirety that matters, not individual elements. The most important thing is the general reception, so you shouldn't force everything to be a hero prop. It's important to be aware that there are many things to be done, so it's crucial not to focus on less significant details that could hinder the completion of the project within the specified time. I believe that the ability to set priorities and stick to established goals is extremely important in projects of this kind.

I spent a long time experimenting with lighting, but I only set it up towards the end, and that's when the environment came to life. Up until that point, everything looked flat and unappealing. Therefore, I would recommend setting up preliminary lighting early on in the level design process so that the atmosphere of the location can be gradually built along with the rest of the elements.

As this was my first project of this kind, I felt a bit uncertain throughout the process. For a long time, the level didn't seem appealing to me until I set up the lighting and added final touches such as vertex painting, decals, and storytelling elements. What I can advise is to trust the creative process and your own skills. In reality, projects often start to look nice only toward the end, which can be frustrating or discouraging for some.

I highly recommend dedicating a significant amount of time to creating a solid blockout, and I strongly suggest planning out trims by colorizing based on reference photos. Personally, I can't imagine working on an environment without these steps. I've discovered that investing enough time in these preparations pays off greatly in the subsequent stages of production.

If you have the opportunity, I highly recommend exploring courses like CGMA. They are highly intensive, but if you put maximum effort and passion into them, the results will be impressive. Such courses can help further develop artistic and technical skills.

Hard work pays off, but from my experience, I know how important it is not to get lost in it and take care of eye and body health. I recommend using the 20-20-20 technique.

Personally, I use the Pomy app, which is designed in a way that is not distracting but prevents eye strain during long hours in front of a monitor. Using a vertical mouse to protect the wrist and a sit/stand desk that relieves the spine will also be a great idea. I am an advocate of ergonomic solutions and have been working on such a setup for a long time, which brings many benefits to my body.

Final Render

You can find more screenshots, videos, and a full presentation of The Abandoned Blowers here

Thank you to all the readers! I hope the article was helpful and interesting to you. If you have any questions or would like to get in touch, you can find me here.

I also want to express my heartfelt gratitude to 80 Level for inviting me to participate in this interview! It provided me with the opportunity to look at this project from a different perspective and break it down into its fundamental elements, which brought me a lot of joy!

Aleksandra Zając, Senior 3D Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 2

  • Anonymous user

    Amazing! Amazing! Just Amazing!!! Love the efforts you have put to break it down to such a simple manner!

    5

    Anonymous user

    ·a year ago·
  • Al Mahmud Abdullah

    I was gathering all the necessary information/knowledge to start my own environment design. And I found this gem. So much detailed information you have shared that I won't need to search day after day to get started anymore. Thanks for helping. Keep doing good work and share with us. <3

    1

    Al Mahmud Abdullah

    ·a year ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more