Kateryna Yavorska told us about the workflow behind the Abandoned London Pub Diorama project, explained how complex surfaces were created using Substance 3D Painter and Substance 3D Designer, and shared how mentors at Vertex School helped her during the production.
Hi, My name is Kateryna Yavorska, and I am an Environment Artist from San Jose, United States. I got my bachelor's degree in Information Technologies but soon realized that my true passion is technology application in art. So I started my career as an interior designer using 3D Max and Vray for architectural visualization. It was quite satisfying for a while, but over ten years I got eager to explore computer graphics in other directions. So I decided to go for what always seemed to me much more exciting – game development.
The Abandoned London Pub Diorama Project
Abandoned London Pub Diorama is my capstone project at Vertex School. As an arch-viz artist, I didn't have much room for unfolding the story or focusing on rich details and textures, so the project quickly absorbed my time and emotions. I found myself fascinated by the visual richness of abandoned places and how time warps things giving them another dimension of beauty. I like the aesthetics of Georgian architecture, so the British pub was an obvious choice for me. The snow globe was hinting at the idea of a time capsule capturing the now abandoned place in its best times. Nevertheless, I had a very practical purpose for this story scene – it was a perfect setup to get handy with trim sheets.
Modular Interior and Exterior
Both, interior and exterior areas are part of the same map in Unreal Engine. All architectural elements are modular and can be easily used to create an extended environment.
My experience in architecture visualization helped a lot in creating the interior layout, planning modular pieces, and doing set dressing for the scene.
After spending a good deal of time surfing the internet, I collected an extensive bundle of visual references for abandoned places and relevant pub interiors. All images eventually got organized into a PureRef board.
The next step was blocking out 3D modular pieces for the exterior and interior. I assembled the scene in Unreal Engine from the beginning of the project to make sure that the proportions feel right.
To create assets, I used traditional methods of high-poly to low-poly as well as mid-poly techniques. For models like the booth and bar chair, I created a base in 3ds Max, then I brought it to ZBrush to sculpt a high poly. I used VDM brushes to create tears and wrinkles on the upholstery. Then, I brought it to Maya to create a low poly. To speed up the process for the booth, I used Reduce and Retopologize modifiers in Maya. I unwrapped UVs in Maya and baked high poly into low poly in Substance 3D Painter. For most of the assets and modular elements, I used a mid-poly approach – creating assets in 3ds Max/Maya with enough polygons to catch the silhouette and baking it to itself in Substance 3D Painter.
To emphasize the abandoned atmosphere, I decided to create some overgrown ivy. I tried Megascans ivy and some models I downloaded from the internet but the result was insufficient. So, I decided to create my own ivy in SpeedTree. I found a great tutorial from FastTrack Tutorials which was extremely helpful for this task. I created unique ivy for both sides of the building and a generic piece to fill some gaps.
Also, I created a texture for the ivy roots decal. To make a custom decal, I baked some branches from SpeedTree to the plane in Marmoset.
I divided all objects in my project into three categories: objects requiring unique textures, objects which can be using tileable textures, and objects which can benefit from using trim sheets.
All my textures are done in Substance 3D Painter and Substance 3D Designer. I knew I would be importing my textures to Unreal at the end, so I switched to the ACES color profile in Substance 3D Painter first. It gives me a 100 percent color match between Substance 3D Painter and Unreal.
In order to make my materials look realistic, I always add some variation to the color and roughness channels. Since the environment is abandoned, I treated all my assets with wear, dirt, and dust using smart masks.
I used a PBR workflow and for optimization purposes, I packed my ambient occlusion, roughness, and metallic in one texture in separate channels R, G, and B accordingly.
Trim sheets are basically a texture that tiles in one direction only. The trim sheets technique is so versatile, and I enjoyed working with them. It allowed me to save time and optimize texture usage. I have one trim sheet for exterior bricks, one for interior moldings, and one for sidewalks. I had some space left in my trim sheet layout, so I packed a bar chair there.
I did not plan to add a snow globe at the beginning, but I wanted to have a centerpiece in the room. Later on, when I was modeling and texturing with trim sheets, I decided to test how my building would look with different trim sheets. The idea of creating a snow globe was born. The building in the snowball is exactly the same as the outside building, I just swapped different trim sheets and scaled the model down.
Using Substance 3D Painter and Substance 3D Designer
I chose wooden flooring with a herringbone pattern because it gives the image a classical feel I wanted to achieve. I followed this tutorial to create flooring material in Substance 3D Designer.
I started by creating a generic wood texture and added some wooden knots, spots, and chips for irregularity. Then I created planks, using Wave Generator. I used Flood Fill to Random Color to assign random colors to planks and used this to create a height variation in the planks. To create vertical and horizontal wooden planks I blended wood texture with an opacity mask from Wave Generator. I used a Slope Blur node to add some noise to the edges of the planks.
I created two versions of the flooring to use in vertex painting.
Vertex Painting, Decals, and Set Dressing
To achieve a more realistic look I used Vertex Painting. For example, on the sidewalk, I used dirt, moss, and water paddles.
To break the repetitive textures I used decals heavily. I used them to create cracks, leakage, and mold on the walls, debris, dirt, leaves and pine needles on the floor, etc. Most decals are from Megascans.
Lighting, Post Production, and VFX
Since the interior and exterior are parts of the same map it was quite a challenge to set up good lighting for the scene.
I wanted to use natural lighting in the scene, so my options were limited – windows and some glow from the snow globe. First, I created a skylight with an HDRI map from polyhaven.com. Then I added a Directional Light to represent the sun. I chose a low angle to get more sunlight in the room. Also, I created some point lights with low intensity to brighten up dark corners. To add some visual interest I added a flickering light to the light pole. I created a simple material function with a Time node.
I decided to bake my lighting to achieve better quality shadows.
I used two Post Production Volumes – one for interior and one for global. The interior post-production volume has a higher priority, so it activates when the player enters the room. I tweaked a bit of exposure in the interior Post Production Volume to mimic eye adaptation when entering the dark room and brighten up the scene a bit.
I use some VFX in my projects – snow, dust, and rain. I created a simple Niagara System for the snow with spherical boundaries. For the rain, I used weather effects from Ultra Dynamic Sky.
I added an Exponential Height Fog to create the right mood. For exterior shots, I also used fog sheets. To create "God rays" I increased the Volumetric Scattering parameter in my Directional Light.
Vertex's Help During the Production
Looking back, attending the Vertex School was a great decision. It went really well with incredible teachers having up-to-date industry knowledge and a well-structured course.
Despite attending school online, I did not have any communication friction. My mentors were always available to answer my questions and help me resolve the tech issues. Many thanks to Ryan Kingslien, John Waynick, Carmen Schneidereit, and Johnny Renquist for sharing their knowledge.
You may find these articles interesting