Fire Watch Tower

Environment Breakdown

Netraraj Pun

banner_10-scaled
131

Netraraj Pun

Environment Artist

Introduction

Hello, I am Netraraj Pun, an Environment Artist from India.
My passion is to build environments that showcase the beauty of nature. I am always curious to learn more and present something I love to create.

Goals

My goal for this project was to improve my world-building skills and composition. I wanted to work on creating a natural post-apocalyptic environment, and I found inspiration in “O’Leary’s Tower” from the game “Days Gone,” which was designed by Matthew Seymour.

Planning & References

With a clear goal in mind, I started by collecting screenshots from the game and studying the environment design.
While I used Days Gone as a reference, I also wanted to add my own unique touch. I imagined what a sequel to Days Gone would look like and how I would love to see it.

02

Blockout & Modelling

Once I had gathered enough references and had a clear idea of the structure and layout, I began creating a rough blockout of the tower using Maya. I used some older trees as placeholders to give a sense of scale and dress the initial block of the scene.

This phase of environment building is crucial to ensure fewer iterations in later stages.
I also sculpted a basic landscape to add an organic feel to the base.

Whitebox Phase

After the blockout was satisfactory, I moved on to the whitebox phase, where I added more significant details to the scene. This phase gives a glimpse of what the final assets will look like.

Terrain

Once the whitebox pass of the main area was completed, I focused on the distant mountains. I understood that the horizon and the mountains would play a crucial role in bringing the environment to life.

To create the distant mountains, I collected real-life references and in-game references. I used Gaea to create the other low-terrain mountains.

05-1

Once I was satisfied with the reference collection, I immediately moved to Gaea to build my terrain and the snow mountain. The first step was to create the main shape. I added a little more detail using MicroErosion and a Sharpen node, ensuring that the details wouldn’t get too washed out in the engine.

For the Diffuse Map, I created it directly in Gaea since I knew that in all my renders, I would be using the mountains and terrain as distant mountains, where none of the details would be visible.

After exporting the mesh from Gaea using a “Mesher” node, I imported it into Zbrush, removed unnecessary geometry, and decimated it. I also made sure to smooth all the edges since Nanite works better with smooth surfaces rather than hard edges.

The same process was used to create other low-terrain mountains in Gaea.

07-1

Foliage Creation

Foliage plays a vital role in making a scene look natural. Even simple grass can completely transform a scene. I knew that for this environment, I would need a variety of foliage to achieve a natural look.

The creation process is relatively simple. Let me demonstrate using a bush as an example. First, I created a quick atlas in Photoshop using a simple paintbrush. I experimented with different designs in this phase since it allows for easy and quick iterations.

08-1

Once I was satisfied with the base atlas, I created a card mesh in Maya, where I worked on volumes. I checked it in Unreal to ensure the volume looked good.

09-1

Next, I proceeded to create the high-poly version. I started with a high-poly simple leaf mesh and then used Speedtree to build the atlas. I find Speedtree convenient for building branches.

10-1

After creating the high-poly version, I rendered it in XY Plane view mode (top-down view). I generated ColorMap and Opacity maps. Sometimes, I also include vertex color information, but in this case, I didn’t. Then, I imported the texture into Substance Painter for further texturing.

11-1

With the mesh and UVs already prepared, I imported the texture into Unreal, ensuring that the vertex normals were pointing outward to achieve lush volume in the engine.

12-1

A similar approach was taken for grass as well, resulting in a collection of bush and grass assets to enhance the environment.

13-1

For large trees, the process is similar, but the tree is built inside Speedtree.

14-1

It is important to turn on Ambient Occlusion (AO) in Speedtree before exporting. In Unreal, AO darken nodes were added to the master material.
This simple node multiplies with the diffuse map and is lerped with the Red channel of the vertex color.

Props

Props are crucial for creating a believable environment. As I aimed to learn more about world-building and composition, I took some liberties with prop creation. I knew I wouldn’t be able to finish the environment if I created props traditionally.

To reduce the time needed, I found ways to optimize the prop creation process. I used a trimsheet for some assets but not all, especially for smaller assets. I discovered Blender, which has a simple bevel shader that exports the bevel effect effortlessly. I applied the bevel effect to all my small assets using this method.

After exporting the normal map from Blender, I used it to create other maps in Substance Painter and proceeded with texturing. I aimed to keep the texture density (TD) at 5.12 to pack multiple objects in one UV shell and save texture counts.

17-1

I applied the bevel effect to all my small assets using this method.

18

After exporting the normal map from Blender, I used it to create other maps in Substance Painter and proceeded with texturing.
I aimed to keep the texture density (TD) at 5.12 to pack multiple objects in one UV shell and save texture counts.

19

Tower Texture Process

The lookout tower is a focal point in this scene. I wanted to approach the texturing process procedurally without relying on vertex paint or RGB masks. With a clear plan in mind, I figured out how to add details procedurally.

First, I determined what elements would be part of the trimsheet and which ones would use tiling textures.

I started with the first layer, which involved the trimsheet/tiling texture. After seeing the first layer with just the trimsheet, I realized I needed to add another layer for details and to break the repetition.

I introduced a tiling second texture and used an alpha map to blend the materials.

The third layer focused on rust.

Since I was using a mask to blend the materials, the blend was random. I need a way to get the blend on the contact areas.
To achieve rust on the contact area, I made a small tweak with the shader.

In this, you can see the red color showing as edge detect and green as AO/contact selection.

For the edge, I could use screen space edge detection, but as the name suggests, it’s a screen space effect, and I didn’t want that.
So what I did is use the existing normal map to extract the edge value using the blue channel of the normal map.

24

MF AO node, here I used the DistanceField AO node to get the AO values.
I use these AO values as Lerp to show the rust material only on the contact areas.

25

Also, for ground dirt, I used another function which is used to create ground dirt procedurally.

27

Combining Assets to build one asset through Blueprints (PRE-FAB)

As we approach building a large environment, we have to reuse existing assets to create something different. This way, we can optimize the scene and get variation with different-looking assets.

The best way to assemble and reuse them is through a Level Instance or Blueprint.
I personally love blueprint actors since they give me so much freedom to add different things.

28

My process of converting an asset to a blueprint is to select the assembled asset and do the following:

29

After converting, the pivot of the blueprint might get messed up, like in this image:

30

In such a situation, the easiest fix is to add an “Arrow Actor” and copy the location of the object you would like to have the pivot and paste it into the “Arrow Actor.”

After doing this, drag every asset inside the “Arrow Actor” and put 0,0,0 in the location and rotation value. Now you have the perfect pivot position.

These are my steps:

Terrain Layering

To make the terrain meshes feel real, I have used multiple landscape photos to learn about the layering process.

Here, as you can see, I layered the terrain in a front-back way rather than side-to-side. Keeping the terrain front-back gives depth and makes it feel more real. Also, don’t just layer them front-back, but also give some leading lines, as you can see in the image. The green color is used to show the leading path.

32

Also, in nature, we generally see fog, especially in the forest. I took a couple of real images to show how fog is layered in between the terrains.
As we can see, fog generally shows between each peak of the landscape.

33

Here is the image with fog/clouds and without their use.

34

Also, I would like to mention that this awesome piece of fog cards was made by William Faucher.

Foliage Layering

To achieve a natural look, we must also consider how to place the foliage to make it look real. Trees, bushes, grass, and flowers don’t just grow randomly in nature. There is a specific pattern to it. Poor-quality foliage can look great, and scanned foliage can look dull if not placed correctly.

I start with a big-to-small process. First, I add the big chunk, which is the bush, and then I add the more extensive grass around it, and finally, I add the small grass.

Also, add small flowers in chunks rather than spreading them throughout the space.

The same approach applies to the trees as well.

35

Composition

Composition is one of the most essential parts of making art. I went through multiple videos on how to achieve a good design.

In the end, I followed the Pyramid and Leading line composition type. Also, I’m very thankful to “Beyond Extent” for helping me through the composition pass and others. I highly recommend their resources.

I would highly suggest watching this video on Composition Types.

36

Lighting

For lighting, I used a plugin called “Ultra Dynamic Sky.” This plugin was used for the awesome volumetric cloud shader that comes along with it.

I wanted the lights to be dynamic, and I also wanted the clouds to be volumetric rather than just a skybox. A similar lighting effect can be achieved using the default lighting setup, but the clouds are the most tricky part.

Colour Grading & Post-Process

Color grading is a very important step that enhances the beauty of your work.

For color grading, I used DaVinci Resolve since the node-based system of the software is very easy to learn and adapt quickly, and the results are great.

But before exporting your render and importing it into DaVinci Resolve, you need to consider some export and import settings. Without this step, your colors won’t look correct and might end up completely different.

Let’s see the render settings in Unreal.

To render out in Unreal, I use the Movie Render Queue. I export all my renders in .exr format to get the best quality, and I disable the “TONE CURVE” inside Color Output.

37

After this, I import it into DaVinci Resolve and go straight to project settings and change them to something like this.

38

After this, the magic starts.

39

Here is what it looks like before and after.

40

Conclusion

First of all, I would like to thank you all for reading this far, and I’m grateful to the game art community for showing so much love. The primary mission of this environment was to learn something and grow.

This project was completely done after my office hours and took me 5 months to finish. There have been many ups and pretty bad days as well. But in the end, I’m happy with the result and the knowledge I have gained throughout this journey.

I may not be good enough to give any tips, but I am always available to help anyone who needs it. I believe the more I help, the more I learn. One tip I have received and would like to pass on is “Never skip your work, just finish it and then move on to another.”

I am also very thankful to Games Artist for allowing me to share my workflow and ideas with others.

“Be curious, be humble, and keep growing.”