logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Creating The Last of Us-Inspired Abandoned Auditorium with UE5

Kateryna Schaefer provided a detailed breakdown of The Last Graduation project, discussing creating the devastating atmosphere, modeling the assets such as destroyed piano and chairs, and scattering the details using Maya, Substance 3D, and Unreal Engine.

Introduction

Hello, my name is Kateryna Schaefer, I’m an Environment Artist originally from Ukraine, now based in Chicago, USA. My passion for art began in childhood – I started drawing at a young age and attended a traditional art school. My first career in art was as a tattoo artist. In 2016, I opened a small tattoo studio in my hometown in Ukraine and worked in the industry for four years before transitioning to freelance illustration.

After that, I spent three years as a 2D Artist at a mobile game company, where I was introduced to 3D software such as Blender and ZBrush. Initially, I used these tools to enhance my 2D artwork. During that time, I started collecting art books from video games, which reignited my interest in gaming. I had played games as a child and teenager, but not as much as an adult. As I got back into gaming, I was fascinated by the environments in titles such as The Last of Us, Uncharted, Days Gone, Alan Wake, Fallout, Death Stranding, Cyberpunk 2077, The Witcher, and Life is Strange. Seeing the art behind these games made me want to understand the creative process behind them.

At first, I aspired to work in the game industry as a Concept Artist. After moving to the USA, I continued learning 3D and took several courses and mentorships in concept art, using 3D mainly for creating concepts. However, over time, I realized that I was more passionate about working in 3D itself. That’s when I decided to pursue a career in game development as a 3D Artist.

I enrolled in Think Tank Training Centre’s 64-week online program specializing in CG asset creation for games, focusing on environment art and learning the AAA game studio pipeline. A few weeks ago, I graduated with a diploma in CG Asset Creation for Games, specializing in props and environments. Some projects I created during the program include Retro Sci-Fi Space Room, Tattoo Parlor, New Life in Catacombs, and The Last Graduation. 
While I don’t have experience working on a AAA title yet, my training at Think Tank, guided by industry professionals, has given me a strong foundation in industry-standard tools and workflows. I’m excited to see what projects lie ahead!

The Last Graduation – Inspiration

The Last Graduation is my graduate project at Think Tank Training Centre, completed under the mentorship of Jeremy Cerisy. Since I’ve always been drawn to narrative-driven games, I wanted to create an environment that evokes strong emotions. Instead of using a specific concept piece, I chose to create my own, as I have a background in concept art and wanted more creative freedom. Additionally, I’ve learned that in many studios, concept art isn’t always provided, and environment artists often build their scenes using real-life references.

One of the main inspirations for this project was my visit to Chernobyl and the Chernobyl Nuclear Power Plant in 2021. I was deeply impacted by the sense of abandonment in the environment. Walking through the rust-covered amusement park, seeing scattered children’s toys, clothing, books, and small gas masks beside them – it felt like there were so many untold stories left behind.

Another major inspiration came from games like The Last of Us, Days Gone, and Fallout. Post-apocalyptic narratives have always held a special place in my heart, so I wanted to capture a similar atmosphere in my environment. While playing The Last of Us Part II, one of my favorite scenes took place in an old theater. That moment sparked the idea of creating a school auditorium. I wanted to create a beautiful stage and build a story around it. Lastly, my love for architecture played a big role in shaping this project. Over the past few years, while traveling around the U.S., I’ve been fascinated by early 20th-century American architecture. I wanted to reflect that aesthetic in my environment, bringing historical influences into my design.

Beyond the artistic vision, I also set several technical goals for this project:

  • Architectural design and level building
  • Trim sheets
  • Set dressing
  • RGB masking and vertex painting

Brainstorming Ideas

Once my goals were set and I had a clear main idea, I began gathering references and developing a more detailed story for the environment. While researching, I found many abandoned schools in the U.S., particularly in Detroit. These buildings have beautiful architecture, though sadly, many have already been demolished. My reference board was extensive, but here are the key inspirations for the school’s auditorium.

Looking through hundreds of photos on this topic helped me refine the story. I used PureRef to organize my references and always took notes whenever something stood out to me. My mentor, Jeremy Cerisy, significantly helped me shape the narrative by asking important questions:

  • How old is the school? Where is it located?
  • What event took place in the auditorium?
  • Why was it abandoned?
  • When did this happen?

I approached the story as something that could realistically happen in real life or in a video game narrative. Asking these types of questions helped me determine the architectural style, the types of props and set dressing needed, and the level of abandonment to portray. I wanted the environment to visually communicate what happened, where it happened, and when.

To achieve this, I focused on four key themes:

  • Auditorium architecture, Neoclassicism (1905)
  • Graduation (2005)
  • Toxic explosion
  • Abandonment

Here is my reference board. Planning the environment before starting production helped me stay organized and focused. I separated each theme and created a list of props with corresponding photo references. I then grouped these props into kits and made a list of textures needed for the scene. This board was continuously updated throughout the creation process.

Blockout

I began by blocking out simple shapes in Unreal Engine 5. At this stage, I wasn’t focused on details – my goal was to establish the overall composition and layout of the room. I needed to determine the room’s scale, the height of the walls, and the size of the stage. While the measurements were approximate, I used a human scale reference to ensure a realistic sense of proportion.

While blocking out the scene, I kept in mind how real auditoriums are built, considering details like the placement of exit doors and seating arrangements. I also set up my first camera to track progress and evaluate the overall look from the start.

The next step was whiteboxing. Here, I started refining the assets further. I exported my blockout as a single model from Unreal to Maya and used it as a guideline. The assets still lacked details, but I defined their size and overall shape. For architectural elements, I separated objects into modular assets.


At this point, it was important to consider modularity and naming conventions for each asset. This approach allowed me to easily update elements like columns or walls by pressing the “Reimport” button in the Content Browser. Since all instances would update automatically, I could make adjustments without manually replacing each piece. Keeping the modular assets blocky at this stage also made it easier to modify or refine them without hesitation.

Composition & Scene Planning

From the very beginning, I started thinking about the main camera shots I would render. It’s important to plan this early on since these areas will receive extra attention in terms of set dressing and detail. As the story developed further, I decided to introduce a hole in the wall to reinforce the idea of a toxic explosion – an event that forced everyone to evacuate and led to the school’s abandonment. Since this detail played a crucial role in the narrative, I made it a key element in the main composition.

Using previously created modular assets in Maya, I blocked out the shape of the hole. I refined it multiple times until I was satisfied with the result, using the Multi-Cut tool to carve out the shape. Once I was happy with it, I separated it into modular parts for easier adjustments and reuse.

After finalizing the blockout, I began considering the color palette for the scene. Initially, I experimented with complementary dark red and blue tones but quickly realized that they gave the environment more of a movie theater feel rather than that of a school auditorium. I ultimately settled on a dark green palette. Colors carry strong associations – dark green is linked to growth, concentration, and balance. Through research, I found that many mid-century school designs incorporated muted green tones for walls and furniture due to their calming effect. Since my story established that the school was renovated in the 1970s, including design elements from that era made sense.

Another key part of the scene planning was determining which textures needed to be created and which techniques would be used for different assets. Since I wanted to practice the trim sheet workflow, I designed a simple wooden trim that I used across all wooden panels in the scene. The trim was modeled in Maya and textured in Substance 3D Painter, with a wooden base texture I had previously created in Substance 3D Designer. I created two variations of the trim:

  • Polished wood – Used for wooden panels on the walls, doors, and chairs.
  • Painted wood – Used for the railing, parts of the stage, and the back blue wall.

Asset Creation

Kits & Modularity Breakdown

To save time, I structured the space using modular kits. Some parts, like the stage, are unique, but most assets are reused multiple times. I set the texel density to 10.24 px/unit and used 2048 px tiling textures. Different artists have different views on this, but first-person games usually need around 10.24 px/unit, while third-person games use about 5.12 px/unit. Since this is my personal project, I chose a higher texel density to make the textures look sharper.

I added additional loops to the modular assets for later vertex paint. 

While modular assets utilize tiling textures, most of the props below were textured in Substance 3D Painter. Larger props were textured individually, while smaller ones were grouped together, with their UVs packed and textured as one. Texture sizes were determined based on the 10.24 px/unit texel density.

Although these equipment boxes are large props, I textured them on a single texture due to overlapping UVs of some parts, which helps optimize texture space. For example, the two boxes on the right are identical in size, with one being open and the other closed, so their UVs can be stacked on top of each other. The same approach was applied to the speakers, where identical parts across both models allowed their UVs to overlap for better space efficiency.

Piano Hero Prop Modeling

For the piano hero prop, I was inspired by a video I saw online, filmed in an abandoned school. It featured an old piano with broken legs on one side and messy, damaged keys. I immediately fell in love with this look, so I decided to recreate it in my scene.

Before I started modeling, I gathered many references of pianos typically found in schools. Here are some of them. Since the designs were fairly simple, I focused on playing with the silhouette to ensure it looked more interesting rather than boring.

After studying references, I started with a simple blockout to define the size, overall composition, and silhouette. To ensure accurate sizing, I looked up the dimensions for objects online. Sometimes, you can find layouts like these that can be used as template guidelines for modeling.

Once the blockout was finished, I modeled a proxy version. The proxy was modeled in a straight position because it’s easier to modify this way. At this stage, I didn’t focus too much on topology but concentrated on modeling each part. The next step was to create supporting edges for the subdivision to prepare for the high poly version.

Tip: For repeating objects such as legs, piano keys, and tuning pins, you can create low and high poly versions for only one leg/key/pin. Afterward, combine the low and high poly models into groups and then copy and paste them. In the group, objects can be rotated and moved along the same axes, so you don’t need to repeat the same steps for each object. A good idea is to create UVs for repeating objects before populating them in the scene.

Next, I separated some parts to export them to ZBrush for sculpting. There was no need to export the entire model. For example, I exported only a few legs, and the rest were copied and pasted later. Some parts weren't sculpted at all. I used a subdivided version to bake smooth edges. Later, wear, tear, and scratches were added through texture normal maps.

Afterward, I assembled all parts into the high poly and low poly models. For the high poly, I created multiple materials in Maya, such as polished wood, brass metal, iron, plastic, ivory, steel (I researched the materials used in piano manufacturing), and assigned different colors to them for the ID Map bake. The ID Map is used to mask each material with color selection when texturing in Substance 3D Painter.

For the low poly version, I assigned a wooden albedo texture in Maya to check the direction of the wood grain and ensure the UV shells were placed correctly. The low poly version was assigned to two materials in Maya. These materials are detected as separate texture sets in Substance 3D Painter. Each material has its own UV, both placed in the first UV space. Since these are two different texture sets, they do not overlap when baking.

I manually retopologized the low-poly model in Maya, while some sculpted parts, like the legs, were retopologized by decimation in ZBrush. I approach retopology as the last step and do UVs after that (except for repeating objects whose UVs were created beforehand).

UVs were also created in Maya, and I don’t use any plugins. My favorite tools in the Maya UV Toolkit are: 

  • Automatic – Creates automatic UV shells.
  • Unfold/Optimize – Optimizes the shape of UV shells.
  • Align
  • Orient Shells
  • Stack/Unstack Shells
  • Layout – Creates a layout for UV shells within the UV space.

After using the automatic tool, I usually manually stitch together or cut some parts of the shells. I use the Unfold or Optimize tools (the Unfold 3D method) to straighten some UV shells. Sometimes, I manually select UV vertices and use the Align tool to straighten them along the U or V axis.


Texturing the Piano

Before starting to texture any hero prop, I always study references first. In these references, I was particularly drawn to the polished wood texture, the scratched surface of the wood, and the white spots from the plaster. Since I’m aiming for a realistic look, I researched the materials used in piano manufacturing, which helped me create a list of materials to replicate.

The texturing was done in Substance 3D Painter. I organized each layer into a folder and applied masks to them. I use smart masks to create wear and tear and manually paint masks to add unique damage or dirt.

For the wooden texture (Texture Set 1), I started by applying a basic wood texture I had previously created in Substance 3D Designer. Then, I added color variations to the wood, darkening certain spots. The next step was to highlight areas where the wood wasn’t polished. Since the piano is broken, we can see non-polished areas on the legs where they would be connected to the body. I copied the same wood texture, adjusted the color to a lighter tone, and played with the roughness settings, as bare wood tends to be rougher. The next steps involved adding details such as the logo, dust, and dirt.

Chairs Modular Kit

For the chairs, I decided to use RGB masks to apply wear and tear, as I have many of them in the scene. This allowed me to use a single mask and tiling materials, rather than creating individual textures for each chair. This approach saved texture space, as I reused the same velvet texture for both the window curtains and stage curtains, and the wooden parts were made using the same wooden trim I used throughout the scene.

The RGB mask can be easily adjusted in the material instance to control the amount of dirt or scratches, and the colors of the textures can be adjusted as well to create more variations.

For the RGB mask bake, I created two UV sets: the first one packed in single UV space and the second for tiling textures with a texel density of 10.24 px/unit. For the high poly, I used the same model as the low poly but applied different materials for the color ID map bake, where green represents wood, pink represents velvet, and brown represents painted metal.

Tip: To get a more accurate ambient occlusion bake in certain areas, I placed a plane beneath the chair. I used the same technique for baking the rest of the RGB masks in this scene. The UVs of the plane were not included in the packed UVs of the chairs.

In Substance 3D Painter, you can see my usual setup for RGB masks. I use some smart masks for edge wear, dirt, dust, and other details and I add paint layer to paint details manually.

Since the explosion originated from one side of the room, I assumed there would be more dirt on that side on the chairs, so I used a 3D Distance Generator to mask the left area of the chair (Green).

Once I finished the RGB mask texturing, I separated the parts of the chair and combined them into modular kit assets. These assets were then used in Blueprint Actors. The chair parts have three material sets: velvet, wood and painted metal. I assigned these materials to Maya so they could be detected when importing the assets into Unreal Engine. 

RGB Mask Blend Material for Chairs

In Unreal Engine, I set up a Master Material that uses an RGB mask to blend textures on top of each other. I used a TextureSampleParameter2D node (RGB mask texture) to connect each texture layer to the R, G, and B outputs and a Lerp Node for blending. I made sure to connect it to Texture Coordinate Index 0, where the RGB Mask UVs are packed, while the tiling textures are assigned to Texture Coordinate Index 1. To adjust each mask, I used Multiply and Power nodes. The textures were blended as follows:

  • First layer: Base (wood, velvet, and metal)
  • R: Dirt (dirt texture)
  • G: Dust (same dirt texture)
  • B: Worn edges (wood adjusted to a lighter color, velvet adjusted to a lighter color, painted metal).

Here, I’m showing how I adjust the Material Instance of the RGB Blend Material for the velvet part of the chair. Having the RGB mask allowed me to create different variations for each chair. I created multiple material instances and slightly adjusted the parameters for each one so the chairs were closer to the hole in the wall and the broken windows had more dirt on them.

Blueprint Actors for Chairs

I used blueprint actors to place the chairs on the level. It was much easier to navigate them this way. Here are the blueprint actors I created for the chairs. 

Here is a viewport of one of the Blueprint Actors. Before exporting the assets from Maya, I ensured that the pivots for each chair’s modular assets were placed in the correct areas to make navigation easier later on.

Materials & Shaders breakdown

One of the goals for this project was to practice RGB Masking and Vertex Painting.
I already showed my workflow for creating an RGB mask for the chairs, and I used the same workflow for texturing the wooden panels on the walls, railing, doors, part of the stage, the stage arch, and the curtains.

The RGB Mask workflow is mainly used for large objects to add wear and tear, as well as for objects where baking helps speed up the process. Vertex Painting, on the other hand, is used on flat surfaces where baking is not necessary.

All the modular walls and columns in this scene use Vertex Painting for plaster and painted areas, trim sheets for wood, and an RGB Mask to add dirt and color variation to the wood. I assigned multiple material slots for these assets in Maya before exporting them.

For vertex blending, I created this material in Unreal Engine 5. It is very similar to RGB Maks blend material, but instead of using a TextureSampleParameter2D node, it utilizes a Vertex Blend Node, with each layer of textures connected to R, G, or B channels. Additionally, a Height Lerp Node blends the textures with a Height Map or Grunge Texture connected to the Height Texture Input in this node.

Adding Details & Final Touches

To push the realism of the scene even further, here are some additional techniques I used:

  • Peeled Paint Kit
  • Mesh decals for edge breakage on the columns
  • Set dressing, scattering smaller objects, such as small plaster chunks, wood pieces, and glitter, to blend large objects with the ground.
  • Decals for wall leaks, dirt/moisture on walls and floors, and roughness variation
  • Graffiti decals.

The mesh decal for edge breakage was sculpted in ZBrush and baked in Substance 3D Painter. I followed a great tutorial on this topic.

The Peeled Paint Kit was modeled in Maya and shares the same material as the walls. For the peeled paint, I wanted to achieve a specific look, so I studied references and thought thoroughly about which shapes I should create for multiple reuses.

I used the Foliage Tool in Unreal Engine to scatter objects around the scene. In Foliage Mode, I dragged and dropped static meshes into the foliage window, which automatically generated foliage for each object. Here, I demonstrate painting with foliage, though I usually paint each element separately. I start with larger objects, adjusting the paint density for each to have better control over the final look.

I used dirt decals to help blend debris piles with the floor. 

These decals were created in Substance 3D Designer, with some alphas made in Photoshop using real photos of leaks and dirt.

Graffiti decals added another layer of realism and storytelling to the environment. I wanted them to reflect what the modern generation is going through after the catastrophe. I hand-painted all the graffiti in Photoshop, except for the girl in a mask, which was created from a real graffiti photograph.

Final Composition & Lighting

My goal for composition was to create an environment that felt alive while maintaining balance. Every object was placed with intention – not just for composition but to tell a story. At the same time, I wanted the scene to have a visual breathing room. When placing objects, I concentrated most of them around the explosion area and gradually decreased their density, moving outward. This made sense both logically – since debris from the broken wall would be concentrated there – and compositionally, creating a more visually detailed focal point while allowing the left side to serve as a resting area for the eye.

Lighting has a key role in creating the atmosphere. Setting It was a challenging process for me. I used Lumen Directional Lighting and experimented with different setups to find the right look. To keep things manageable and for better control, I set up the lighting in a separate sublevel. Initially, I used warmer tones, but they made the scene feel too cozy and inviting. Since my goal was to create a cold, unsettling atmosphere, especially in the winter setting – I shifted to cooler lighting to reinforce the sense of isolation and desolation.

I aimed for a camera angle, lighting, and object placement that naturally guided the viewer’s eye to the focal point before gradually revealing the rest of the scene. To highlight the piano, speaker stand, and stage, I used two rectangular light sources. I kept their intensity low, at 1 and 4 candelas, to avoid an artificial look. Both lights were set to the coldest temperature of 12,000K to enhance the atmosphere.

I also faked the god rays from the window by placing light function from engine content.

To achieve a cold look, I used PostProcessVolume. I created a custom Look-Up Table (LUT) in Photoshop and applied it in the Post-Processing Settings. Additionally, I added a subtle amount of grain and chromatic aberration, which helps make the scene feel more like a real photograph and less like CG.

I set the Volumetric Fog to a very low density of 0.004 to maintain subtle atmospheric depth without overpowering the scene. Sky light have sligter colder hue and intencity of 4.

Besides lighting, the falling snow plays a big role in creating the atmosphere. For that, I used the Easy Snow plugin by William Faucher, which added the perfect final touch to the scene.

The rendering was done in Movie Render Queue, which allows for high-quality frames. I tested many different settings but found that a simple setup worked best. Since my scene includes Niagara particles, cloth simulation, and Lumen Global Illumination, I set the warm-up frame count to 128. This ensures everything looks correct by the time rendering begins.

I also used console variables to apply specific commands. You can add as many commands as needed for your project. Here are some that I used:

Conclusion

Thank you so much for taking the time to explore the process behind my project. I hope you found it interesting and insightful. It took me 14 weeks to complete, and it was a challenging process where I learned a lot. The process involved everything from planning and gathering references to modeling, texturing, polishing, engine setup, and rendering.

One of the biggest challenges was creating this environment without a specific photo reference or concept art. While having creative freedom was exciting, there were moments when I felt lost. A well-structured plan and a strong set of references helped me stay on track.

Staying motivated wasn’t always easy, and I did experience burnout at times. However, having a solid timeline kept me organized and allowed me to break the work into manageable steps, ensuring I hit all my milestones.

This project taught me the value of planning, adaptability, and attention to detail. I also gained valuable skills in modularity, trim sheets, vertex painting, and RGB masking while improving my ability to tell stories through environment art. Every project is an opportunity to grow, and I now feel more confident in approaching future work with a clear, structured mindset.

For aspiring artists, my biggest advice is to be patient with yourself and the process. Mastering environment art takes time, and every project helps you to improve. Don’t be afraid to push your limits, ask for feedback, study real-world references, and don’t be afraid to experiment with different techniques. Most importantly, stay passionate about your work – your love for your work will always shine through.

I would like to thank Gloria Levine and 80 Level for the opportunity to give this interview and to the incredible Think Tank family – my mentor, supervisors, instructors, and my family and friends – for all their support.

Follow my journey on ArtStationLinkedIn, or Instagram for more future projects!

Kateryna Schaefer, 3D Environment Artist

Interview conducted by Gloria Levine

Join discussion

Comments 1

  • Vershinskiy Aleksey

    I’ve been following this artstation, great article. Thanks to the 80LV team!

    0

    Vershinskiy Aleksey

    ·a day 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