Creating a Frozen Scene in UE4 with Procedural Tools

Ash Thundercliffe prepared a detailed breakdown of his recent scene Arctic Research Station made with UE4Substance tools, and World Machine.

Introduction

Hi, My name is Ash Thundercliffe and I’m an Environment Artist working in the video game industry. My current role is at Ready at Dawn working on our next big VR release, Lone Echo 2. Prior to that, I helped ship the prequel, Lone Echo, and also worked at Rockstar Games on Red Dead Redemption 2.

What was the inspiration?

One thing I always find key in this industry is to understand that tools are always changing and evolving. Each generation of consoles brings new tools to play with and things that can improve our game worlds. Therefore, as an artist you should always be learning and staying current, otherwise, you’ll fall behind and so will your art.

For this reason, any project I take on ensures that I’m always trying to improve the current skills I have, but also learn some new tools along the way. The cool portfolio piece at the end is an added bonus!

For my previous project, I wanted to set out to create a small interior space so that I could work on man-made materials in Substance Designer. I also wanted to create interior lighting (both night and day) as well as creating props that improved my high to low poly workflow and my understanding of Substance Painter.

Image demonstrating skills learned whilst creating a small interrogation room

For my next environment, I knew I needed to set some new goals and also still felt I had a lot more to learn with Substance Designer. With that in mind, I started brainstorming what skills I’m lacking and started planning out what type of environment would best fit these goals.

The interrogation scene I previously created led to the inspiration for my newly finished piece. I decided that much of the portfolio favored interiors, hence the inspiration for taking on the challenge of creating an exterior environment. With this in mind, I settled on creating an exterior space that allows me to improve my Substance Designer skills for organic materials, work on large procedural landscapes, creating lighting for an exterior space and adding in dynamic objects/fx that help the scene feel more alive.

Settling on an idea and building reference to support your goal

Prior to starting this project, there was a concept I came across that’s always been in the back of my mind for some time. The concept is by Alexey Trishkin. He’s got a lot of inspirational environments on his page so I highly recommend you check him out.  For my given goals, this concept nailed everything I wanted to achieve whilst making the end goal pretty manageable.

Once I had my concept, I needed to back it up with references.  Reference is always the key to making a believable scene or material and so this is always my first step for any project, personal or production.

What’s great about starting with reference is that you start to unravel the inspiration the concept artist was working on and start to understand their goal on a deeper level. After searching around I fully understood the purpose and design of the buildings, why the terrain and snow look the way they do as well as the sky and atmosphere for that climate.

Creating the world

With all of my scenes, I start off with a blockout, however, with this space, I wanted to start differently. As I mentioned before I have worked on a lot of interior spaces and I will always stand by the belief that a strong blockout is the key to a great scene. In this case, I needed a world to lay my blockout on and so I began the process of learning some procedural terrain software.

There are so many incredible terrain tools out there now from Houdini, Terragen, Gaea and many more, but for this project, I decided on World Machine, mainly for it being industry standard and there seemed to be a lot of documentation for learning which is key to this project. After watching a few videos I began the creation of the terrain.

One thing I found when looking at the reference and concept was that the terrain was mostly flat but in some images, there were a few dunes and bumps in the snow and so I wanted to achieve that look.

Given the simplicity of the landscape, I didn’t adjust the basic node setup much and relied heavily on the ‘advanced Perlin’ to give me the results I desired. The key things I adjusted here was setting the feature scale to hills to keep the ‘maximum height’ of the terrain low, reduced the ‘steepness’ because I wanted more dune mounds as opposed to hills and finally, I raised the middle elevation so that I could still get some sharp peaks which would be created by wind.

Dressing the Terrain

Now that I have my landscape created and in Unreal Engine, the next step was to get some materials in there to start to understand its scale. You could just do this with a grey material and a character but it doesn’t give you much of a sense of distance because everything looks flat and the same.

My first step was to create a simple untouched snow material which could cover the majority of the landscape, for this scene I won’t have any foliage or rocks so repetition was my primary concern. In addition to this, I wanted a material that not only breaks up the repetition but also helps reinforce the dynamic elements of the scene. For this, I wanted snow that had some directionality to sell the wind elements I plan on creating later on in the particle effects.

Once I created these materials I also extracted a mask from my terrain so I can get a natural breakup of the 2 materials with very little effort and also control how they break up naturally. I wanted to make sure the lower sections of the terrain were primarily the billowy untouched snow, and the higher elements which are more exposed to wind would be the directional windswept snow.

Now that I had my two materials in there and blending together naturally I could get an accurate assessment of the scale and how the landscape looked from the foreground and the background.

Time for the Blockout

Now that I finally have my landscape created I could now search along the terrain for the perfect location for my blockout. I wanted to keep my terrain looking natural and so I didn’t want to sculpt on top of the terrain, I wanted to find a spot which has a fairly flat section to lay my buildings on but also has some simple snow dunes in the background for variation.

After finding the desired location I began constructing very basic versions of the structures to assess how they would look in the space and start figuring out my camera angles.

In addition to this, I also want to set up some lighting and tried and achieve my desired mood in the scene. For this, I used the Ultra Dynamic Sky which can be purchased in the Unreal Marketplace.

As the title of the tool suggests. It gives you a fully dynamic sky and you can fully adjust any part of it. For me, the key features were the ability to adjust the density of the clouds, the cloud speed and the ability to have cloud shadows on the terrain. As I mentioned previously, having a dynamic scene was crucial to my end goal to achieve a living world so this tool proved invaluable.

Initial blockout of structures, lighting, and mood.

Creating the Mountains in the Background

Originally, I was going to stay very close to the concept and create the city in the background but I decided that I hadn’t learned enough about terrain creation to class this project as a success. With that in mind, I jumped back into World Machine and began creating the mountainous terrain.

When creating these mountains the key was to not make a terrain but instead an asset I can place in the background in a controlled way that helps me sell the composition of the shot. Think of it as a vista prop.

The key thing to creating this asset is the ‘Layout generator’, instead of creating large scale procedural spaces it instead gives you the ability to plan out where your peaks are and how many you want. I wanted only two peaks because I was going to duplicate this asset around the background. If I added too many peaks the mountains could have got too noisy, but only using one peak could have looked repetitive when placing multiple. Two to three seemed like the safest bet for the use of this asset. After that, it was simply a case of adding procedural noise with ‘Advance Perlin’ and using ‘erosion’ and ‘snow’ for the final touches.

Once these were complete I exported the terrain as a mesh and created 2 maps. One map as a base albedo produced through the ‘basic coverage’ and the other produced for the height which will be my blend between my snow and rock later on.

1 of 2

Now I had everything I needed I wanted to check how the terrain mesh and scale looked so I opened up Maya and imported in the terrain mesh. What World Machine outputted was an incredibly dense and detailed mesh which was perfect for what I needed it for given that I planned on using this for my high poly mesh. To get my low poly mesh I simply used Maya’s ‘Mesh Reduce’ tool to get more manageable geo for UE4 and Substance Painter.

With my high and low poly created for the mountains complete, I imported the low into Substance Painter and baked down the details using Substance’s built-in baker. After the baking, I simply used my albedo output as a color base for the material and then overlaid a snow material over the top to get all my PBR details for the snow, and then did the same for the rock. This time, however, I used my mask created in world machine to create a blend between the two materials. A key thing here is to not tile the materials to the exact scale on the mesh because that will cause a lot of repetition on the shape. What we really want is the macro details from the texture so it has some big read details from a distance. Remember, we are creating an asset for a vista, not a terrain you are expected to be able to walk on!

With the asset created all that is left to do is get the asset into UE4 and apply the materials as you would with any asset, and then start placing the mountain in the background.

Creating the Materials for the Structure

There are 2 ways to approach this: first off you could just high poly model the whole thing and bake it all down. This will cause multiple issues though, you will struggle to maintain a high/consistent texel density unless you either throw multiple texture maps at the model or use a texture at 4k to 8k which may still cause issues/increase memory cost.

For this, the best direction is to bake out the most complex components and use tiling textures and modeling for the rest. Below is the breakup I decided to use to texture the model. All of the assets in green will be created using high to low poly meshes.

To begin with, I started creating the tiling texture for the building. The structure is the base foundation for all of the other assets that go on top and so because of this, the other assets will need to work around this material.

One really great thing with Substance Designer is that I created my painted metal material first, concentrating on creating a clean base material, and then gradually working in the details that make it unique to the scene such as; water droplets and smears, slight chips in the paint and a variation in the paint caused by uneven exposure to the sun from varying snow coverage. One thing I didn’t add however was the frost coating, the reason for this was because I wanted to handle this in the layer blending. The key reason for this is that it will allow me to make the 2 structures look slightly different but also to break up the tiling base material. One amazing thing with substance designer is that once you are happy with the base material you can create a separate node network purely for the frost and snow, this is great because it allows me to be non-destructive and work on both materials at the same time.

As a final detailing and breakup, I created a decal sheet. I didn’t want to set all of these up as deferred decals because it would significantly increase draw calls and be a pain to manage if I decided to move the buildings around. I find deferred decals work best with things like grunge, leaks, splats, puddles, etc. For this, I decided to just use floating geometry set up in Maya and set them as a ‘masked’ blend mode in UE4. I also used my roughness and normals from the base material to save memory and it helps the decals blend more with the base material. As a bit of fun with most decal sheets in my personal work, I never really intend for people to get close enough to read them so for the most part I fill them with general nonsense and jokes.

After creating my base materials for the tiling sections I now needed to make my prop assets. A key benefit to working on the tiling materials first is that we have actually just done some of the work for the other assets already! A wonderful thing about the Substance toolkit is the ability to import your materials from Substance Designer into Substance Painter, the result of this means that the door and entry console I make will have similar roughness and normal values resulting in a look that makes all the assets look like they were all manufactured together and exposed to the same elements. Another great feature in Substance Painter is that because the materials were created in Substance Designer, I can now adjust the base albedo color to whatever I wanted and still maintaining the look and feel of the original material. This was super useful for creating the door material.

Making the Whole Scene Come to Life

Now that most of the scene is completed, the next step is to bring life to the environment and to do this the best way is ambient motion. It really just helps grounds a scene and makes the whole thing have so much more atmosphere and believability.

As mentioned before, we already have the moving clouds and cloud shadows so the next few things I want to add were:

  • Some form of cloth animation
  • Snow particles
  • Frosty fog for backgrounds
  • Frosty fog for the ground

First off, for the cloth animation, I settled on adding a flag to the scene. This was so incredibly easy to set up because most of the work is done in UE4. There are so many tutorials out there for flags so I won’t go into too much detail but simply put, you just need to export a flag and flag pole with 2 different materials applied, into UE4. Once in UE4 you import the asset as a skeletal mesh and paint your mesh weights to set up what does and doesn’t move.

Once I had the flag set up and in place, I added a wind node and decided on which direction I wanted the wind to go in. This doesn’t sound super crucial but part of making a believable scene is adhering to real-life rules, and if I’m going to do that I need to understand that whatever direction the wind is going in, I need to ensure that all particle effects follow that same direction.

As a final touch to the flag I added the light on top, I thought this would have two desired effects. From a narrative standpoint, it’s used to create a beacon of light for people who are looking for the arctic base. From an artistic standpoint, I thought having a light-up there helped make the wind ripples stand out and added some nice shadows to the flag

Next up was snow particles. I’ve made dust in the past so I figured this would be a similar setup, apart from instead of having them float around the room, I would make them have some gravity and directionality from the wind.

After playing around with the particle effects editor I found that the key components to making believable snow were the ‘initial velocity’ and the ‘spawn location’. The velocity controls how fast the snow will be moving when it spawns and so because snow is very thick and fluffy I wanted to make sure that when the particles were falling, they were moving slower than something like rain. As mentioned before I also added wind and so to match this I added a higher value bias in the velocity to the X coordinate so that this would be my wind direction control. When I place the snow particle in the scene I just need to make sure that X faces the direction of my wind.

‘Initial Location’ and ‘spawn’ kind of work together. If you have too much snow spawn in a small area then it will look like a blizzard, but if you have too little in a large space then you will not see the snow. I found the best result was to set up the ‘Initial Location’ to be just slightly larger than the ‘play area’ and then control the amount that spawns to fit the desired look.

1 of 2

As for the actual snow particle, I too often see people just use a soft circle which just looks very unnatural and ‘gamey’. I decided to just paint my own organic-looking shape and add some soft edges. To finish the snow off I added subsurface scattering this helps the snow catch the light and adds more variation when snow is floating in the sky.

For the frosty fog and floor fog, I decided to look at the unreal learning tabs because I knew they did some snow-based particle scene. Honestly, if you don’t know about the UE4 learning section, there are some incredible scenes in there to learn from and it proved to be an invaluable asset when trying to understand their particle effects.

I could have simply just used their assets one for one but the main complication with this was that they were creating what looks to be a blizzard, whereas I wanted a subtle build-up of a snowy breeze. With that said, all you need is a simple understanding of the particle effects editor and you can edit and tweak any of those effects to fit your desired outcome. The key one for me was the ‘P_BlowAcrossGround’. This Particle had a lot of really cool effects and layering, but overall the effect had a super intense blizzard look, as expected. After removing most of the components I was left with the floor fog I wanted and could adjust that to my desired result.

With those two particles removed, I was left with the floor fog material running along the ground. This worked really well with my terrain because I was using tessellation on the floor. When applying the particle effect to my scene the fog flowing along the ground looked as though it was getting caught in the snow pockets and rolling over. It added a really nice subtle effect to the ground.

Floor fog brightness increased for demonstration purposes

Finally, for the distance fog, I was again was using something from the unreal learning tab. I used the Blueprint ‘BP_FogSheet’ found in the ‘Blueprints demo’. This already had the desired effect I wanted and so depending on the location I would tweak the opacity, tiling, and brightness.

The image below shows how I separated my cards and tweaked each according to the location. For the far distance cards, I wanted thick clouds that look like they roll through the hills so I reduced the tiling significantly and upped the brightness. For the close-up cards, I just wanted it to be noticeable when going past the buildings so I increased the tiling and decreased the opacity and brightness so it almost looks like snow dust is passing by.

Lighting

This honestly wasn’t too complex of a lighting set up overall. My goal for this was an overcast cold feel, so I needed the lighting to look kind of flat but also find a way to get some depth and interest points into the scene.

First up I added a ‘Directional Light’ to the scene to be the sun and set it to ‘Moveable’, the reason for this is so that I can work on my scene as if it was an open-world environment where lighting is not baked. The other major factor to this was that baked lighting would have really slowed down my workflow.

Next up was the skylight. The skylight would prove to be essential in this scene for two reasons, first off it allows me to adjust the global brightness of the scene using the ‘intensity scale’ (again this is set to ‘moveable’ like the Directional light for dynamic lighting and quick iterations).

The next big feature of the skylight was the ‘Distance Field Ambient Occlusion’ which to simply put, adds a soft ambient occlusion shadow dynamically to anything in the scene. This is great because the DFAO helps; soften out the shadows under the structures, create more depth to the steps, snow, and the inset entrance to the buildings. The best way to demonstrate this is with a video from Epic Games.

Finally, now that I have all of the scene looking pretty good for the sky illumination, I just needed to work on the artificial lights in the scene. To start off with I added a singular ‘point light’ to the light fixture and matched the ‘source length’ and ‘source radiance’. After that, I simply adjusted the intensity to get the desired look. I really liked how well lit the interior portion of the building was and worked well with the scene, but even though I set a large ‘attenuation radius’, not enough of the exterior was being affected by the light (the below image shows the highlighted areas in blue that I wanted to have more lighting).

To deal with this problem I added 2 spotlights to the building, one light facing the steps and rail (yellow arrows) and one spotlight facing the ground (green arrow). As you can see in the third image, the ground has a much warmer feel and the rails are getting more of a specular response to the lighting.

A key thing to take away from this is that you can’t always set up lighting exactly as the world is, sometimes you have to set up a few extra lights to achieve the desired look. The best example of this is how lighting is set up for a film. Directors don’t just arrive at a film set and start filming, they have a gaffer who is in charge of setting up lighting for the desired effect and mood whilst making the scene still look believable.

The Final Touches

Now that the whole scene is set up and almost complete there is always the moment where you need to critically analyze your piece and decide what it is missing and what can be added to finish it off.

The first step for me was to set up a path that shows where people have walked and also have some believability to it. I created noisy snow with footprints running through, and painted this along the terrain between the buildings and a few paths leading off of the screen.

The next step was setting up my final shots. For this, I use the ‘Cinematic Cameras’. As the name suggests this helps you get a more cinematic feel. These may seem a little overwhelming at first but with a basic understanding of how a camera works (F stop, aperture, iso, shutter speed, etc) you can really push your scenes to the next level. On that note I also recommend any environment artists out there to get a camera and get into photography, I can honestly say it really helped me better understand composition, lighting and how to achieve a certain look by adjusting the camera settings.

The final step of any scene is the tweaks to the post-processing. I tend to add a little bit of post-processing at the start, but this is primarily to get the exposure setting closer to what I want for the scene. As a final pass, I adjust the AO, vignette, film grain and a few other settings. The key thing here is to not go too far with these settings because it could make your scene look overly processed and unnatural.

Final Thoughts

Taking on this project, I’m grateful that I not only produced a new environment I’m proud of, but I also gained so much knowledge and insight along the way.

I highly recommend any artist reading this to take more risks with your next piece to learn more about the tools you can use to create art. It’s so easy to get stuck with your same workflow and suddenly the industry takes a change in direction and you’re left behind. Learning and understanding more tools and workflows not only makes you more employable but also makes you extremely valuable to a company. I personally can’t wait to start researching more new processes that I can apply to my next piece!

Ash Thundercliffe, Environment Artist at Ready at Dawn

Interview conducted by Kirill Tokarev

Snow collection from Quixel for your fluffy winter scenes:

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