Using Unreal Engine to Recreate Bloody Scene from The Last of Us Part 2

Pau Moreno Digón told us how he recreated the scene of Joel's death from The Last of Us Part 2 and used Unreal Engine 5's Lumen to set up the lighting as well as Houdini for the snow.

Introduction

I am Pau Moreno Digón, the Co-Founder and Technical Artist at 333Studios. Seizing a two-day break, our studio collectively decided to dedicate this time to crafting a scene that resonated with our creative inspiration. The journey began with a golf club I had previously remodeled and retextured in Substance 3D Painter, incorporating procedural cavity maps and proprietary shaders for metal and blood effects. This, coupled with the immense love and appreciation I hold for the entire saga (because The Last of Us on PS3 was the game that piqued my curiosity to involve myself in game development due to the multitude of emotions it stirred within me, making it undoubtedly a one-of-a-kind game), marked the inception of our endeavor to recreate one of my cherished scenes from The Last of Us Part 2: Joel's demise (featuring Abby, the golf player). Additionally, I have a passion for recreating crime scenes and developing glass shaders. Therefore, I wanted to take on the challenge of recreating that iconic window with the snow on Houdini.

The Last of Us Part II: Joel's Demise

Commencing the project, I initiated a small mockup of the lighting and primary points of interest in the scene, utilizing a placeholder mesh for the golf club as blood effects were yet to be added.

This preliminary visualization aided in ensuring the correct trajectory for lighting and overall placement. The lighting exploration started with path tracing to achieve desirable behavior after light traversed the frosted glass. Subsequently, I transitioned to Lumen due to its preferred visual aesthetics and expeditious rendering. With the mockup completed, I moved on to gathering references from Naughty Dog ArtStation posts (thanks, Joakim Stigsson), video walkthroughs, and other sources for blood trails, patterns, curtain placements, tiles, and more.

The scene was gradually developed by placing significant shapes as references for objects, utilizing rough white materials for previewing. Concurrently, Houdini was employed for a swift Vellum simulation to generate the snow outside. A snow displacement was applied to create intriguing shapes, complemented by the addition of Megascans meshes to fill the gaps left by the simulation. 

Also, in the earlier images, you can see I had a super placeholder bloodstain, and I wasn't happy with it. At this stage, I started to develop the motion of the blood correctly. I went ahead and grabbed the opacity maps from Blood Stains on Quixel and then real images of blood stains. I combined all those opacity maps in Photoshop to create a main bloodstain shape and extracted the normal maps using Substance 3D Sampler. Then, I added micro-detail blood stains with separate decals to add a lot of resolution to the bloodstain without having to compromise a huge texture size on the big shape.

To ensure the proportions and elements fit within the main frames I wanted to showcase, I closed in on and finalized my correct camera angles before proceeding with the environment.

As I detailed the scene further, I employed a technique to increase the resolution on the floor in static scenes without tessellation (as 5.2 doesn't support tessellation yet). I used the modeling tools in Unreal Engine to remesh a normal plane to one million polys, applying the provided displacement maps from Quixel Bridge. Occasionally, I needed some hand tuning of the displacement maps to resolve small issues before simplifying the mesh to 4% to save data while working in the engine.

Further detailing was added to the entire scene, including blood textures on the golf club in Substance 3D Painter. For the texture of the golf club, I began by creating blood in the cavities using the maps already generated from the CarbonFiber look with Anchor Points. Then, I hand-painted the big shapes in the areas that were supposed to have more blood. This means where the hands were supposed to be, the end of the golf club from hitting Joel’s head, and most importantly, watching real references from objects in crime scenes or real crime scenes helped a lot (I won't add those images for obvious reasons).

Lighting and Shader Adjustments

At this point, the scene started to make sense, though the frosted glass and snow weren't perfect yet. I adjusted the lighting to ensure it looked correct in Lumen, placing cubes as hidden light blockers that cast shadows for consistent global illumination. I played with different light scenarios to ensure all the scene was displayed correctly. The final light scenario was a sky light plus fill lights.

As mentioned, I began creating different shaders for the glass, testing between Pathtracer Lighting and Lumen, as well as Rasterized Translucency or RayTraced Translucency:

Furniture Modeling and Texturing

I continued populating the scene and modeling all the furniture inside Unreal Engine using the Modeling Tools. I added displacement to all the wood panels for more detail and modified the sofas to resemble those in the game.

Notably, the TV was modeled in Maya and textured in Substance 3D Painter with various roughness variations.

Checking the entire scene with the Roughness Buffer visualizer helps u ensure u have a good consistency across the whole scene, doing the whole carpet with lot of dirtness:

I proceeded to create pictures and drawings on all the walls, grabbing borders from Megascans, deforming them, and modeling them with correct proportions using lattices in Blender. I created a master material for all the pictures with a basic roughness map and a micro-detail normal for the threading, overlaying the image on top and desaturating it to give an old look. The pictures weren't accurate to the game, allowing me to add my small touch, like Ellie's amazing tattoo.

Then adding more context to the blood trails, such as small footsteps from Abby leaving the place, created with Substance 3D Sampler. I grabbed an image of a real blood footprint, painted it over in Photoshop to create three variations, and used Substance 3D Sampler to generate the normal and roughness maps:

I modified the shader of the tiles to have blood infiltrated between them. I then jumped into Blender to model the curtains quickly and perform their cloth simulation, exporting a proxy mesh of the environment and simplifying it for a cheap collision mesh. I exported those meshes to Substance 3D Painter, where I textured them, added micro-details like folds, and created an opacity mask for more detail like breaking threads.

With the scene nearing completion, final touches included decals on walls, shader adjustments, and breaking symmetry for added realism. 

The last renders were accomplished and color-graded in DaVinci Resolve, imparting an anamorphic look. The entire project spanned a day and a half of dedicated work. The resulting scene can be viewed in this ArtStation post. 

Special appreciation is extended to Christian Sokol for providing feedback on the scene's look development and references. Also, special appreciation goes to the entire Naughty Dog team for designing and creating this emotional scene and moment in the game. I look forward to the Remastered version, already showcased (especially to Evan Hill for being the designer of the original scene). Overall, this project stands as a comprehensive study of snow lighting, revisiting an impactful scene from The Last of Us Part 2, with the hope that it resonates with fans of the game.

Tips for Beginners

After all that, here are some tips for beginner artists:

References Real Life: Utilize real-life references, such as crime scenes or everyday objects, to infuse authenticity and detail into your creations. If you aim to replicate photorealistic scenes, consider obtaining actual scenes for reference. If possible, utilize scanning technology to capture real objects and incorporate them into your work.

Experiment with Textures: Explore a range of texture creation techniques by combining maps and hand-painting to achieve dynamic and realistic results. Don't hesitate to leverage generators with baked maps; real-life imperfections often arise from patterns that these generators can help you establish as a solid foundation. Afterward, you can further enhance and personalize the textures with your hand-painted or manual effects.

Learn from Feedback: Embrace feedback from peers or mentors to refine your work and gain valuable insights into improving your skills.

Master Lighting Techniques: Develop a comprehensive understanding of various lighting scenarios, including techniques like path tracing and Lumen or old techniques like baked-light with GPU Lightmass, as they can substantially enhance the visual appeal of your scenes. Practice replicating light scenarios from real-life photos to refine your skills and achieve a more realistic and captivating lighting in your projects.

Attention to Detail: Small touches, like blood trails, dust, footprints, or subtle imperfections, contribute to the overall realism and narrative of your environment.

Consistency is Key: Ensure consistency in materials, lighting, and details across your scene for a cohesive and polished final result. A scene that appears good and well-populated on the Base Color buffer and Roughness Buffer will likely maintain its visual appeal once properly lit.

Utilize Available Tools: Make the most of tools like Substance 3D Painter, Houdini, and Unreal Engine modeling tools to streamline your workflow and achieve desired effects faster.

Study Anatomical Movements: When depicting motion, especially in scenes involving violence or action, study anatomical movements to capture a more authentic and convincing portrayal.

Keep Learning: The field of game development is ever-evolving. Stay curious, keep learning, and explore new techniques to stay at the forefront of your craft.

Share and Seek Community: Engage with the game development community, share your work, and seek advice. Learning from others and building a supportive network can accelerate your growth as an artist.

Embrace Mistakes as Learning Opportunities: Don't be afraid to make mistakes or encounter errors. Everyone starts somewhere, and learning from your missteps often leads to the most significant advancements in your skills. Be open to experimentation, and let each error guide you towards improvement.

Tap into the Expertise of the Community: Learn from experienced artists in the field. Many professionals are open to sharing tips and insights about their work. Don't hesitate to reach out and ask questions. The game development community is generally supportive and willing to share knowledge, fostering a collaborative learning environment (only if we don’t have NDAs signed). GDC Vault is a good starting point to learn amazing things.

Check out Matthew Trevelyan’s portfolio and breakdowns or the amazing talks from Jonathan Benainous.

Fuel Your Creativity with Motivation: Before diving into a project, ensure it genuinely motivates you. Creating scenes that inspire and captivate your interest ensures that you never tire of working on them. This sustained enthusiasm allows for continuous improvements, making portfolio projects particularly effective in enhancing your artistic skills.

Pau Moreno Digón, Co-Founder and Technical Artist at 333Studios

Interview conducted by Gloria Levine

Published 14 December 2023
Pau Moreno Digón
Co-Founder & Technical Artist at 333Studios
Gloria Levine
Intervew by Editor