logo80lv
Articlesclick_arrow
Professional Services
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
Order outsourcing
Advertiseplayer
profile_loginLogIn

Imagining A Dystopian Laundromat Scene With Maya, ZBrush & UE5

Cecile Roux presented a step-by-step Duke's Laundry project breakdown, explaining how a familiar laundromat setting that merges nostalgia with post-apocalyptic and futuristic undertones was crafted with Maya, ZBrush, Substance 3D Painter, and Unreal Engine 5.

Introduction

Hey everyone! My name is Cecile Roux, I am a 3D Environment Artist, living in Paris, France, currently transitioning from architecture to the gaming industry. I have had an eclectic journey, starting out as a professional cellist, and shifting to interior design after moving to Sydney, Australia. A few years later, I returned to France to work with an architectural firm in Paris.

However, with the onset of COVID-19, I lost my job and found myself with plenty of free time. Initially, I immersed myself in playing video games, which soon sparked an idea: why not create games instead of just playing them? So, I channeled my energy and time into launching a new career in designing 3D environments for games.

To turn my idea into reality, I received a scholarship at Torrens University Australia, where I recently completed my Bachelor of Game Design and Development.

I have always loved arts, design, and architecture so swapping from cellist to interior designer made sense at the time, even though I lacked experience in drawing or using 2D and 3D software. I soon became proficient in architectural software like Autodesk Revit and AutoCAD. I honed my ability to understand and manipulate spatial relationships, proportions, and how to effectively use space for both aesthetics and functionality. I focused on creating spaces that served practical purposes while also telling stories and evoking emotions.

Now, moving on to 3D environment art for games feels like a natural step forward. I can apply my skills in spatial planning and aesthetic design to the dynamic world of 3D art. This shift capitalizes on my existing abilities and opens new avenues for creative expression, blending my background in structured environment design with the limitless possibilities of digital worlds.

However, designing for games requires a fresh approach. Unlike real-world environments, video games have different rules. There are no building codes, but maintaining real-world scale and proportion is crucial. Designing assets, textures, and scenes in games involves careful consideration of resource costs to ensure smooth gameplay without sacrificing art direction.

I learned 3D software commonly used in the gaming industry, such as Maya and Houdini, and techniques like creating UV maps. I also delved into texturing with Substance 3D Painter and learned how to use game engines like Unity and Unreal Engine 5. After university, I continued to advance my skills through specialized tutorials.

Before Duke's Laundry, I collaborated on several game development projects as part of my university coursework. I partnered with Eliah Smith, a highly skilled programming student, and we tackled a couple of projects with tight deadlines of typically 12 weeks.

Eliah and I took on multiple roles to bring our games to life. With tight timelines and limited resources, I opted for a more stylized approach to the game environments versus the AAA-style of Duke's Laundry. Working in such a small team was invaluable – it forced us to find creative solutions and continuously refine our skills across various aspects of game development.

Duke's Laundry Project

I was eager to learn the professional workflows needed to create hyper-realistic environments like those in my favorite games, Horizon Zero Dawn or God of War. So, I enrolled in CGMA's Unreal 5 Modular Environments course, developed by Clinton Crumpler. Over ten weeks, I threw myself into working on the Duke's Laundry project, which was guided by industry expert Nate Stephens.

From the get-go, I aimed to create a realistic environment for a third-person perspective. Given the tight timeframe, the project needed to be modular and confined, so I chose a laundromat setting. Laundromats are familiar, narrative-rich spaces that serve as bustling social hubs, making them perfect for a scene filled with potential drama and mystery.

The concept behind Duke's Laundry was to find a compelling post-apocalyptic setting that was set in the near future while preserving elements from the 1950s. I wanted to merge nostalgia with futuristic undertones. To enhance this atmosphere, I set the scene in the evening, creating an eerie, desolate ambiance that evokes the isolation portrayed in dystopian narratives.

I started Duke's Laundry by defining the project's aesthetics, mood, and tone. I gathered a wide array of visual references, inspired by films with striking color aesthetics like Wes Anderson's works and scenes from The Last of Us. I organized these into a PureRef file after collecting them on Pinterest.

To ensure authenticity and precision in my 3D environment, I focused on collecting detailed visual references and specifications for elements such as the main structure, color schemes, and textures typical of a 1950s laundromat. This included studying real laundromats to capture the essence of their layout, activities, and the diversity of their patrons.

Blockout & Modeling

To blockout the scene, I began with a rough layout using simple geometric shapes to represent major structures like the laundromat, surrounding buildings, and key elements such as pathways and focal points. I defined primary camera angles and player pathways to ensure a smooth movement flow.

By establishing the volumes and boundaries of the scene, I identified significant areas such as open spaces, tight corridors, and transition zones.

Using a layered approach, I first blocked out large primary elements and gradually added secondary and tertiary details for depth. I used placeholder assets with basic, low-detail models to keep the focus on essential elements and visualize the overall scale of the scene.

Once the blockout was functional, I planned to replace these placeholders with detailed final versions.

Utilizing a grid was crucial for maintaining consistency and accuracy, so I matched the grid settings between Maya and Unreal Engine to ensure fluidity in my workflow. This alignment allowed for precise positioning and scaling of assets, making transitions between the two programs seamless.

To enhance flexibility, I made the pieces as modular as possible, allowing for easy rearrangement, reuse, and efficient resource management. I continuously adjusted the scene, making sure each iteration brought the project closer to the final vision.

To model the scene's assets, I started by focusing on the key elements, beginning with the larger, modular pieces, and then moved on to the smaller props. This way, the bigger elements were properly proportioned from the start, reducing the need for significant adjustments later. My first step was working with the building kit, which included walls, floors, columns, windows, ceiling tiles, etc.

Designing my scene with Unreal Engine 5.3, I leveraged Nanite's ability to handle high-poly models directly. This meant I did not have to spend a lot of time manually optimizing, and I could keep high levels of detail on smaller props without affecting performance. Nanite allows for much more complex geometry and supports higher triangle and object counts than previously possible in real-time environments. Frame budgets are no longer constrained by polycounts, draw calls or mesh memory usage.

Although Nanite can handle high-poly detailing without the need to bake detail into normal map textures, I still employed a high-to-low poly workflow. But instead of optimizing to the lowest polycount, I opted for mid-poly assets to strike a good balance between detail and performance.

All modular assets and props were modeled in Maya, while high-poly meshes were sculpted in ZBrush. Aiming for realism, I relied on my PureRef board of real-life objects, scales, and proportions to add as much detail as possible. I usually started by creating the base mesh in Maya and then exporting it to ZBrush to sculpt intricate details manually.

Following a technique from Simon Fuchs' Military Radio tutorial, I applied soft and hard edges to my models in Maya. This made it easy to generate UVs based on hard edges using a simple script by Gabriel Nadeau.

To avoid a destructive workflow, I used hard edges to apply Crease, eliminating the need for support edge loops or bevels before exporting to ZBrush.

In ZBrush, I quickly created polygroups based on the mesh's UVs, which aligned the hard edges or creased edges. This made smoothing and beveling edges much more efficient and sped up my workflow. I used Dynamesh to start adding details and created some custom brushes from Quixel Bridge height map materials for realism. Sculpting details can be tricky, so I aimed for subtlety, adding just enough detail to create interesting and realistic normal maps later. For modular pieces, I ensured they were seamless and tileable, while unique props were given variations without distinct patterns to blend better into the scene.

Once the detailed mesh was completed, I used decimation to optimize it to a lower poly version. UV mapping was done in either Maya or RizomUV, ensuring consistent texel density (1024/m) throughout the scene for textures ranging from 1K to 4K. This standardized texture space usage across all assets. When possible, I stuck to the grid and specific sizes, such as 4m, 2m, and 1m in length, width, or height. 

Texturing

Once my high and mid-poly models were ready and UV unwrapping was complete, I began the baking process in Substance 3D Painter. By using the baking by mesh names technique, I transferred details like normals, ID, ambient occlusion, and curvature from the high-poly model to the mid-poly model.

After successfully baking the models, I moved on to the texturing phase, which is crucial for storytelling. Texturing shows wear and age, hinting at a world with history, and provides visual clues that help players understand the environment and its backstory without explicit explanations.

To create the right atmosphere and ensure every detail adds to the narrative, I used Substance 3D Painter for applying materials, colors, and additional details. Layers, masks, and procedural textures helped achieve realistic, high-quality results. Unique textures were applied to most props, with a few tileable textures used on modular assets. To maintain consistency, I created smart materials such as dirt, dust, and rust.

For all the sign assets, I used a slightly different workflow, where I started by creating the diffuse map in Photoshop, aligning it with the mesh’s UV map. Then, I used the Materialize tool to create all my base maps which I imported into Substance 3D Painter to finalize and add extra details to the textures. Finally, I exported these using the RMA settings workflow to Unreal Engine.

In Unreal Engine, I used a Master Material for all my props and assets to streamline material management and ensure consistency. This template allowed me to create various material instances easily and make global changes quickly. Parameters were created to allow adjustments to UV coordinates, map intensity, emissive color and intensity, parallax occlusion, etc.

I also use RMA (Roughness, Metallic, Ambient Occlusion) textures, which combine these three maps into one. This technique cuts down texture samples, saves memory, and speeds up rendering, all while maintaining high-quality visuals and performance. 

I added a few decals directly in Unreal Engine to add variations to the modular sets and unique details to the scene. I ended up applying a few decals on ceilings, walls, floors, and props. There's a great decal tool for water puddles by Metal Donut:

Composition & Rendering

In crafting the visual identity of Duke's Laundry world, my goal was to create a visual narrative that clearly conveyed the backstory through meticulous scene composition. To transport players to the 1950s, I employed a variety of props and context clues, as well as specific color grading techniques, ensuring each element of the scene added to the storytelling. The 1950s ambiance was evoked through carefully selected set dressing – including logos, signs, advertisements, equipment, and furnishings – all designed to immerse the player in the historical context.

To imbue the scene with a sense of desolation and abandonment, I decided to tweak things around, break elements such as ceilings, add water puddles on the floor, and a fallen cart, etc. Signs of wear and decay were introduced through detailed textures such as cracks, dents, scratches, rust, dust, stains, and mold.

As the composition of my scene took shape, I noticed an overabundance of straight lines, which made the scene appear visually monotonous and less realistic. To address this, I strategically placed additional props throughout the scene. This approach not only broke up the straight lines, improving the visual appeal but also added depth to the narrative context of the environment.

Given the compact nature of the scene, I opted not to use specific scattering tools; instead, I manually positioned each element, iterating and testing until the scene felt right and visually balanced.

Lighting can make or break a scene and setting it up in Unreal Engine 5 posed some real challenges, especially since it was my first attempt at crafting a real-time environment within the engine. I was not sure about the optimal settings, so I began by tweaking the Directional Light to mimic the sun's intensity and color. Next, I incorporated artificial lighting, including fluorescent ceiling tubes and a Duke's Laundry neon sign. To add realism, I gave each light source a unique color and intensity and introduced a flickering effect to the light's emissive materials. It took numerous tests and iterations to find the right balance and achieve the atmosphere I was aiming for.

To speed up the process and create more realistic, natural, and immersive lighting effects, I opted for Lumen technology which meant eliminating the need to pre-bake lightmaps.

To enhance the depth of my scene, I added volumetric fog, which created striking light rays piercing through the bay windows guiding the eyes to the focal point.

Following Josh Toonen's tutorial on mastering cinematic fog and volumetric god rays in UE5, I crafted a custom volumetric fog material that let me tailor the fog density in specific areas, fine-tuning the atmosphere to my liking.

In the end, I incorporated dust effects using Niagara, guided by Gorka Games' tutorial on how to create dust in UE5, to further boost the scene's atmosphere.

To provide realistic and consistent lighting and precise reflections, I used HDRI backdrops from Poly Haven.

To finalize my scene in UE5, I homed in on key settings in my post-process volume, specifically Bloom, Exposure, and Lens Flare while leaving other settings untouched to manage color correction later in DaVinci Resolve for my videos and Photoshop for stills.

This approach streamlined my workflow and allowed for precise color adjustments in post-production.

To enhance narrative storytelling and dynamic scene creation, I strategically positioned my final cameras to maximize the scene's visual impact. I used the UE5 camera rig rail for my video clips, enabling smooth, controlled camera movements along a predefined path. For each camera setup, I adjusted specific settings within the post-process volume to tailor the visuals to each perspective or video clip.

I then exported each still image and video clip in EXR format for fine-tuning in Photoshop or Da Vinci Resolve. To maintain consistency in color correction across all mediums, I created my own Look Up Table (LUT) based on the color grading of a scene from the Joker movie by Todd Phillips, applying it to both my still images and video clips.

Conclusion

This project truly stretched my skills, presenting significant challenges as I tackled creating a high-quality, realistic scene in just 10 weeks while learning new software like ZBrush and UE5. Even with a solid background in 3D modeling and texturing, I initially struggled to develop an efficient end-to-end workflow. However, this experience turned into a great opportunity to hone my approach.

Key techniques I picked up along the way include the effectiveness of using tileable modular assets and the importance of maintaining consistent texel density across textures to ensure visual coherence. I also discovered the advantages of properly organizing grids and pivot points for swift and efficient asset placement in the scene. Embracing cutting-edge technologies like Nanite and getting more involved with ZBrush sculpting were game-changers for achieving high-detail and lifelike environments. For those planning to sculpt frequently, I would suggest investing in a quality drawing tablet. I started the project using a mouse but realized a tablet could significantly improve my sculpting skills for future projects.

One hurdle I faced as a detail-oriented artist was the tendency to get lost in perfecting individual assets. I learned the importance of adopting a holistic approach instead of getting bogged down with details. Setting firm deadlines helped me stay focused, prioritize tasks, and organize my workflow efficiently.

Going forward, I will make sure to set up the lighting earlier in my projects. This will let me get a better feel for the final scene sooner, test out textures early on, and tweak things as needed with ease.

When possible, try to obtain feedback from industry professionals which can dramatically enhance your work. Engaging with courses like CGMA, seeking mentorship, or joining relevant Discord communities are excellent ways to gain insights and feedback.

I am especially grateful to Nate Stephens, whose mentorship was invaluable in enhancing my scene to make it portfolio-worthy. I would also like to extend a big thank you to 80 Level for inviting me to this interview. Thanks to everyone for your interest! If you have questions or just want to connect, feel free to reach out.

Cecile Roux, 3D Environment Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    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