logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Meadows: Creating Stylized Nature in UE4

David Holland shared a detailed breakdown of his simple stylized meadow scene loosely inspired by The Legend of Zelda: Breath of the Wild and Ghibli's My Neighbour Totoro.

Introduction

My name is David Holland and I am a Senior Level Artist at EA DICE. I’m originally from England but have been living in Stockholm, Sweden, since I joined DICE in 2015.

I studied Game Art at Teesside University in the UK from 2006 to 2010 and I got my start as an environment artist in 2011 when I joined Climax Studios in Portsmouth. Previously I had freelanced as a concept artist, interned at Disney Interactive, and had little knowledge of 3D or game engines so I learned as quickly as I could while working on my first professional game.

Since then, I’ve worked at three more studios, Crytek UK on Homefront, Ubisoft Reflections on The Division, and finally DICE where I have been part of both Star Wars Battlefront titles and Battlefield 1 and 5 plus its live service.

1 of 2

Meadows: About the Project

Most of the previous personal projects I have worked on used either CryEngine or UDK. I’ve played around quite a bit in UE4 but not with any real project idea in mind. I wanted to create a finished scene and use it as an opportunity to learn more about the engine. At first, I played around with a scene idea based on Dark Souls III but the hook would be using Photogrammetry for all the assets. Already I had begun blocking out forest and stone assets but as usual with photo scanning, you have to wait for the right weather. Around the same time I saw a post by Kristóf Lovas (Obscura) on Polycount in which he showed a simple method for making stylized foliage, it looked so cosy that I decided to give it a go.

I blocked out a few trees and a grass cluster, built a shader using Kristófs method, and before I knew it, I had completely rebuilt my dark, moody scene into something bright and green.

1 of 2

For the next few weeks, I played around with a lot of ideas, shaders, and assets. There was no single key reference I used at this point, just memories of playing Breath of the Wild and whatever I doodled in my sketchbook.

This was how it went for about a month and I ended up with something that wasn’t that great overall but I liked parts of it. At this point, I hit a creative block.

One evening I was chatting with two close friends and fellow artists, Ben Armstrong and Chris Hodgson. I explained that I was thinking of starting something new but they encouraged me to keep going with a great piece of advice; “Simplify”.

So that’s exactly what I did, I took the parts I enjoyed the most and moved them to a new scene. I sketched a simple composition with a fun little statue, grabbed some reference, and blocked it out. The final three compositions took a few evenings to finalize and I spent a week just tweaking the lighting and materials. It was a small revelation to be able to concentrate on just a single shot instead of a larger map and it all came together very quickly after that. 

As I mentioned before, this project was an opportunity for me to learn more about Unreal 4 and I will try to add links to the great resources posted by other artists I used.

Sketches and reference used for the scene:

Blockout to the final scene:

Asset Creation

At DICE we strive to create some of the most photorealistic games in the industry but a lot of the same process can apply to a stylized scene. Photogrammetry works best when you keep your color map fairly simple and lacking in noise, letting your normal, roughness and lighting do the real work. The same can be said for a stylized scene but in this case more extreme. I kept most of the colormaps to one or two colors, the only exception being the rock which needed more detail, and removed all but the slightest amount of roughness for each asset. This created a flattened, painterly look without using any post-process tricks.

Grass and Flowers

Each of the ground foliage assets was hand-painted using real plants as reference. I grabbed a few plant pictures from textures.com, laid them out on a plane, and painted simplified versions on top using photoshop. I cut them out in Maya and put together a few clusters. 

To achieve the flat look on all the ground plants I started with a method Jess Hider shows on her site. I will include an image of my shader setup but I recommend everyone to check out Jess Hider's website for a more detailed explanation and other great tips and tricks.

I kept the basic shader setup but modified some areas like the waves and added a large scale color variation texture to the grass.

The grass color variation went through a few iterations. At first, I tried using a virtual texture setup so the grass would pick up the terrain color underneath. When I simplified the scene I removed any need for terrain painting and decided to change to a large scale texture instead.

Sometimes this can be tricky because the texture can appear very low rez but in this case, the blurriness helped make the grass look fluffier and painterly. The texture itself is really simple and built using Substance Designer. I mixed Clouds and Perlin noise, a few different blurs then plugged the result into a gradient. The key was to keep the variation subtle with smooth transitions between each color. 

I tried several different methods, some simple, some complicated but I found this to be the best for this project. So again check out Jess’s blog, I learned a lot by reading through her posts.

Trees

I built very simple trees for the project. If this was a photorealistic scene they would probably be regarded as not much more than an initial block out. I used the trees as an opportunity to learn a bit more about Blender, although I ended up tweaking them in Maya later on for ease.

For the trunk meshes, I used Blender's handy tree addon; Sapling Tree Generator as a base. Then placed a few spheres on the branches and sculpted them into a vague canopy. Next using the hair particle system I distributed cards across the spheres. Then it was just a case of tweaking the initial sculpted shapes and redistributing until I was happy with the result. A similar method to this can be achieved in Maya using the MASH system.

The final step is to modify the card normals using a sphere encompassing the entire tree and transferring the sphere's normal information to the cards. In Maya, this would be done using transfer attributes and in Blender using the Data Transfer modifier. This is a method that has existed long before I started my career and although it’s not something commonly used for realistic foliage nowadays, it still works great for stylized assets.

The shader setup was similar to the grass except you still want normal information as opposed to completely flat like the grass. To achieve this I used a TwoSided Sign multiplied with a three constant. This flips the back faces of the cards facing away from the camera so the lighting appears the same on both sides. I learned this method from Kristóf Lovas’s post over on Polycount which can be found here.

As I mentioned at the beginning this post was the catalyst for the entire project so a big thank you to Kristóf for sharing such a cool tip.

Stone Statue

The statue was the final asset I made for the scene. I started with a simple sketch and sculpted it in ZBrush. I kept the sculpt fairly simple, I didn’t want any sharp details or features that would stand out. 

The basis of the moss Z-Up material was created using this tutorial by Ben Cloward:

I decided to create a parameter using the basic setup so I could plug it into more shaders if needed. Lastly, I added vertex painting so I would be able to remove or add more moss if I didn’t like the way it was sitting on the prop.

I used a combination of a large scale, baked normal map and tiling color and normal detail maps to texture the statue. I was very inspired by Jimmy Malachier's Substance Designer work and tried to replicate something similar for the basic color. I imported some of my favourite photoshop brushes and scattered them to use as an alpha. I layered multiple colors on top of each other which gave a painterly base that could be warped and broken up using the heightmap.

Clouds

I wanted to be able to compose the clouds to fit the scene so I decided against making an entire skybox. I studied some of the backgrounds from My Neighbour Totoro and it was the perfect time to try out some brushes created by Madeleine Bellwoar.

1 of 2

Keeping the clouds simple meant they fit the scene and didn’t distract the viewer too much. I sketched the large shapes first, added shading, and used the smudge brush to blend some areas. When I was happy with the painting I added the texture to a plane and placed it behind the scene.

If this were a larger map and if I had wanted to create multiple shots from different angles, then a full skybox would have been needed but, since it was only three shots it just didn’t make sense to create one.

Lighting and Post Process

I spent the majority of my time working out the lighting, I wasn’t very familiar with lighting in Unreal but I knew I wanted it to be a fully dynamic scene and to not utilize any post-process tricks apart from grading.

Three things were important for the lighting setup; Skylight HDR capture, the sharpness of the shadows, and utilising Dynamic Indirect Lighting. 

To make sure my scene was fully dynamic I switched off Allow Static lighting and switched on Generate Mesh Distance Fields in the project settings. This was to make sure all my lights were movable and Dynamic Indirect Lighting could be generated properly. The reason for using dynamic lighting as opposed to static lighting for purely for the foliage movement.

When using a fully dynamic lighting setup in UE4 it’s important to use a cubemap or HDR with your skylight. A moveable skylight won’t capture the scene and produce nice GI the same as a stationary light. From what I could work out, it captures one color to help enhance your shadows and you can sort of fake bounce light by switching off Lower Hemisphere Color. The best option is to use an HDRi capture or a cubemap instead. This could be created by capturing your scene and creating a texture or by importing another image entirely. 

I grabbed a capture from HDRi Haven which is an amazing resource for anyone who doesn’t know about it.

For the Directional Light, I set the Shadow Filter Sharpen to 1. Shadows in animation are usually fairly sharp and when used with flat textures it creates a pseudo-cell-shaded look without any post-process needed.

Lastly, I still wanted some extra GI in the scene to help it all blend a little better. This is where the Dynamic Indirect Lighting settings came in very handy. 

This is still an experimental/ unfinished feature within UE4 and I’m not sure it will ever be finished with UE5 and its amazing dynamic GI looming on the horizon.

To enable it you have to make sure the Static Lighting is switched off and Generate Mesh Distance Fields is switched on in the project settings and close the engine. Then add r.LightPropagationVolume = 1 to your ConsoleVariables.ini. Now when you restart Unreal you will have it enabled.

The next thing to do is to enable it with your directional light and to do this simple check Dynamic Indirect Lighting. There are a lot of settings you can play with and for a more, in-depth look you can read through Unreals documentation here.

I would also recommend this walkthrough by Underscore:

It worked great for this scene but I’m not sure I can recommend it for more complicated scenes, especially if it’s a mix of outdoor and indoor spaces. You tend to see a lot of light bleed and since the resolution is quite low you can see some strange bounces when bright colors are present.
The final piece was to grade the scene using a Lookup table. I decided to do all my grading in photoshop so I could iterate quickly and effectively. 

Learning and Challenges 

One of the best things you can do as an artist is getting to know the technical aspects of the software you are using and starting with a small project is a great way to do this. Unreal in particular has a great community so learning the basics is incredibly easy. 

Originally I wanted this to be a whole graveyard, surrounded by a ruined castle but there were so many things I would need to learn to have completed it, that it became overwhelming, and more importantly, it stopped being fun. There’s an element of shame that starts to creep in when you no longer want to finish a project you’ve started, that feeling of failure can dampen your inspiration and self-motivation to the point where you do eventually give up. If you have a defined idea in mind then making sure you plan as much as possible is the best way to execute that idea, something I’ll remember for next time. It’s also ok to start small, maybe you have a larger scene you want to build but you don’t know where to start. You can block everything out then focus on a small part of the scene and build from there.

This project has been one of the most rewarding and fun projects I’ve worked on in my spare time. I realized that I spend so much time professionally building expansive, detailed maps that sometimes you forget how to focus on a few small elements instead of, what feels like building an entire world. 

A lot of my time was spent getting much better acquainted with Unreal shaders and lighting systems, at times it felt like this was like a sandbox for me to try out ideas more than an actual scene. The downside to that was that I lost my way a little and needed to refocus but now I have a very solid knowledge base to build on for my next project. 

Thank You

A big thanks to Jess Hider, Jimmy Malachier, Kristóf Lovas for their great tutorials and inspiration, and my good friends Ben Armstrong and Chris Hodgson for keeping me focused.

David Holland, Senior Level Artist at EA DICE

Interview conducted by Arti Sergeev

Keep reading

You may find this article interesting

Join discussion

Comments 4

  • Anonymous user

    Thanks for sharing your pipeline

    0

    Anonymous user

    ·3 years ago·
  • Anonymous user

    Thanks for sharing!!

    0

    Anonymous user

    ·3 years ago·
  • Anonymous user

    good job!!

    0

    Anonymous user

    ·3 years ago·
  • Tokarev Kyrylo

    Great work!

    0

    Tokarev Kyrylo

    ·3 years ago·

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