Faye Smith talked about the production of her project Abandoned Home: blockout, texturing with Substance Painter and Quixel Mixer, material and scene setup in Unreal Engine 4.
In case you missed it
You might find these articles interesting
Hi, my name’s Faye Smith, and I'm an Environment Artist from Nottingham, England.
I completed a game art degree at the University of Derby in 2014, then I joined Bulkhead Interactive soon after in 2015, where I worked on The Turing Test and Battalion 1944.
Abandoned Home: Pre-Production
I've always been interested in urban exploration and abandoned places, so before starting my Abandoned Home project I began looking for reference photography and watching a lot of Urbex videos on youtube.
When I came across a specific photo by Vacant Photography, I had one of those moments when you just know that’s what you need to create.
I collected a lot more ref of abandoned places in a similar condition - not too decayed, or trashed by people. This was an important step, as there are a lot of changes that happen to a property when left untouched for a long time, like plaster and paint peeling off the ceilings and walls onto the floor, wallpaper curling at the edges, and general unevenness of surfaces due to exposure to the elements.
Once I had my main reference photo, I knew that the staircase would be the focus of the scene and began blocking it out in Maya.
I counted the number of steps in the ref, then found the average dimensions of a step online which gave me a good base to start from. I tweaked them from there to keep it as accurate as I could to real-life scale, as well as the reference image. Because the stairs were to scale, they informed the size of everything around it.
At this point, I decided to expand the environment to include the small side room. I knew this would give me more variety and flexibility when it came to moving around the scene in Unreal.
Refining the Blockout
When the entire blockout was finalised and I was happy with the scale, I started to refine the meshes. Early on I knew my approach to texturing would be tileables and trim sheets, so the method I used for creating the assets was mid-poly modeling. I’m a big fan of this method, as it’s usually much quicker to produce and gave me the freedom of being able to swap materials easily in Unreal.
I decided to use this project as an opportunity to get more comfortable with using Quixel Mixer. I began with looking through Quixel Bridge and picked out a few surfaces, and experimented with combining them together and tweaking them to match my desired look.
For all the painted wood in the scene, I found a great base wood in Bridge that had the exact trim detail that I needed for the panels that go up the staircase. But the texture wasn’t ideal as it was split into four small panels, so I took it to Photoshop and edited it to give myself two large panels, and a tileable trim at the top. This was super useful, as I also used it to texture the skirting boards, picture frames, windows, even the doors. Then I brought it back into Mixer, adding extra details and a layer of paint on top.
The props in the scene, such as the light switches and door knobs, were the traditional high to low workflow, and I UV’d them to one sheet so I could texture them all in Substance Painter at the same time. However, the stair rods were done a bit differently, because they were unwrapped to a portion of my texture sheet that I planned to make into a tileable worn metal. This way I could save on texture space, as I didn’t need to lay out each rod without overlaps to bake them, but could still move the UVs around to get a unique tile across each one.
I do this in Substance Painter by first creating a plane in Maya that matches the size of the UV section I’m using, and import both into SP. This way I can easily texture the plane and see the results on the mesh.
For the floral wallpaper, I started off by looking online for real wallpapers that were similar to the design in the reference. Once I found one that was close enough, I took it into Substance Designer where I used Smart Auto Tile and some Safe Transforms to get a perfect tile.
This was then imported into Mixer where I added details, dirt, and seams so it looked more like proper strips of wallpaper.
UE4: Material Preview
Before moving on, I created my UE4 project from my own Template that I’d made previously. This template contains all my base master materials, functions, editor widgets, and maps to speed up the initial setup of any new projects. I definitely recommend this approach for the amount of time that is saved.
Because I had a handful of textures at this point, I needed to start viewing them all together. One of the maps in my template is a neutrally lit scene, containing a material preview mesh and a UE4 Mannequin for scale.
Being able to view materials this way is really helpful as lighting information, such as colour from lights or HDRIs, isn’t changing how the materials appear, and I can quickly see if any values need adjusting. There’s a well-explained video by Ryan Manning on how to do this.
One of the drawbacks of using tiling or trim textures is that you can’t get targeted wear or details like you can with baked and uniquely textured assets, so I had to solve this with my shaders. Firstly, I wanted to add a unifying layer of dust on top of the assets in the scene, I did this by creating a Material Function I could add into the master material.
I used a Component Mask to mask out the Red & Green channel, leaving only the Blue channel, which represents the Z axis. This meant the dust would only be visible on the top of an asset, regardless of which way it was rotated. I also added an input for the normal map of the material, so it would have an influence on the mask, as well as some contrast parameters in order to control the reach and thickness of the dust layer.
I connected a mask in the master material to add some variation of coverage, which made it look less uniform and more natural.
To add an extra layer of history to the large tileable surfaces, I created a Macro Discolouration feature, which allows me to overlay a grunge mask on top. This is most visible on the carpet where I wanted large dark stains.
The carpets in the scene needed a few extra features that the walls and props didn’t need. I created another master to utilise Parallax Occlusion Mapping, and I also wanted some rubbish and plaster scattered around. Because the carpet texture was created in Substance Designer, I had a good height map to use with POM, this gave it extra depth and fullness. Another feature of the POM function that I used was Pixel Depth Offset. This is used where geometry intersects, the carpet tufts have a nice silhouette against the skirting board.
Without it, there would just be a hard, straight edge, and in the closeup shots, it’s really worth it in my opinion. The trick for getting a nice silhouette is making sure the surrounding geometry fully intersects with the material, all of my skirting boards extend an extra unit down.
In order to scatter the plaster and a few bits of rubbish, I created a simple function that basically let me input a texture with an alpha that I could vertex paint in and out.
I used another mask to hide any tiling and vary the coverage of the debris on the carpet. This function also went into the other master, so I could have to plaster on the stairs
Using my main reference image, the natural light would be coming from the right side of the staircase. Another ref image that I found had the sun coming through a window which made a striking bright spot on the wall, and I loved the idea of being able to see the warmth still present inside this abandoned home.
In Unreal, I added a Directional Light and had to choose where to position it. Because the side room would be basically empty, I decided to focus the eye towards the back corner of the room. I liked the flow of entering through the door at an angle, seeing the window to the right, and slowly following the light shaft to the bottom left.
I knew I wanted to have baked lighting for this scene, and I’d come across Luoshuang's GPULightmass previously, so this was a perfect time to test it out. Utilising my GPU to bake lighting meant iteration would be much faster.
To prepare, I read every post on Luoshuang's Unreal forum thread. I then compiled a list of tips and problems that people had, along with their solutions, in case I came up against the same ones.
The BaseLightmass.ini needs to be edited in order to change the quality of the bake, this is done by adding the number of GI samples to be used. I added multiple quality options to the file and commented all but one of them out so I could keep them for future testing.
In Unreal, I increased the Num Indirect Lighting Bounces and unticked Compress Lightmaps. Using uncompressed lightmaps increases memory and disk size, but you get better quality lightmaps with fewer artifacts.
With these quality settings, it only took about 10 minutes to bake with a GTX 1080. It really is amazing and a massive time saver. I’m excited for the official version coming in 4.26!
After the bake, I wanted to brighten up the scene and fill the rooms with more light. I did this by adding a PostProcess volume, and under the Global Illumination section, I increased the Indirect Lighting Intensity until I was happy. Using this same PostProcess volume, I adjusted the colour Temp to be a tiny bit colder and added a LUT with low intensity to make the yellows pop a little more. Then I added a small amount of Grain out of personal preference.
At this stage, I was happy with the assets and lighting so I began adding polish. This included refining the story elements within the environment, I added more decals to the walls to show where old picture frames had hung and been removed, and lighter patches on the carpet to show where furniture had once been. Watching a lot of Urbex videos really helped because I’d seen what this looks like at various stages of time.
I’d thought about having some dead plants to dot around, so I went to Quixel Bridge and found a few nice weeds that looked like they could have been thriving plants that slowly died down. I also saw a plant pot that fit my theme, and downloaded that, too. In Maya, I assembled three different variations of plants in the pot and scattered some leaves around the base.
To make the lighting from the windows more prominent, plus add a little more atmosphere, I made a simple fake light shaft material. I then created a quick dust particle that I placed within the light shaft to emulate the sun bouncing off the dust.
Thanks for reading, I hope you found some of this useful!