Chris Lambert prepared a detailed breakdown of his cozy environment made with UE4, Blender, ZBrush, Megascans and Mixer, SpeedTree, and Substance Painter.
Chris Lambert prepared a detailed breakdown of his cozy environment It’ll Be Safe Here made with UE4, Blender, ZBrush, Megascans and Mixer, SpeedTree, and Substance Painter.
Hello, my name is Chris Lambert and I’m an environment artist from Cornwall, England. A huge thank you to 80 Level for letting me show and talk about my project It’ll Be Safe Here! This was my first venture into full environment art and creating assets, previously I had only used Far Cry 5’s editor so this project was quite the learning curve and took around 4 months to complete. I’ll make sure to show all the embarrassing failures! My goal is to find a way into the gaming industry, and with that in mind, I wanted to use lots of different software solutions throughout this project so that I could broaden my knowledge and understanding of different workflows and how each software interacts with each other.
It’ll Be Safe Here
To begin with, I came up with the idea of creating a woodland scene but with something to catch the eye, something that wasn’t organic. I thought an abandoned looking box/chest would work well with this idea and help to tell a little story. Being my first asset, I thought it would be a good, and possibly simple place to start – it’s just a box, right? Turns out 3D modeling was harder than I first thought, haha. There were many things I stumbled on, weeks of headaches and a few cries for help on Polycount, but I guess that’s what learning is all about!
Crafting the Chest
First of all, when starting on the chest, I grabbed a bunch of reference photos I could look at and work from. Whilst I wouldn’t be ‘copying’ anything specific it was extremely handy to take note of the little details – hinge placement, rivets, wear and tear etc.
I would be using Blender to model and there are loads of fantastic tutorials online – Blender Guru and CG Geek being two that I visited most.
At this point I didn’t have a concrete vision for the final scene, I was going between the heart of a woodland and the edge of one – but one thing I knew was that I wanted the chest to look old and abandoned. So, I started work in Blender. I wanted the chest to be roughly a meter size, so whilst some of the reference material was good, I knew I had to compensate for the size difference. I came up with this:
The geometry was way too complex for such a simple shape – little did I know I would be learning all about retopology a few weeks later! Also, I hadn’t figured out the mirror modifier yet, but luckily, I wanted to the chest to have a manmade/less manufactured look… so the inefficient workflow actually worked out quite well!
Eventually, I brought the chest into ZBrush to further weather it and create a decent sculp for the normal map. To help with this process, I purchased a fantastic wood and bark alpha pack from Fredo along with one of his free packs for the metal. This made the sculp far easier and a lot faster to complete. I had baked a color ID map in Blender, so I could easily mask off the different sections of the chest, which made using these alphas a breeze.
Unfortunately, that breeze was swiftly replaced by a week of stress and headaches as I tried and failed to bake a normal map to my original Blender mesh, then tried to scramble a way to create a new mesh from the ZBrush sculpt – this was not my finest week!
Admitting defeat was stage one… time to make a plan! I scoured the internet to find a good solution for retopology in Blender and found RetopoFlow – a huge thanks to RetopoFlow. I had a working mesh in just one day and the normal map was baked.
Looking back, I should’ve created a better mesh to begin with, so that the baking went smoother, but now that I know what can go wrong, hopefully, I won’t make that same mistake again!
Texturing the chest was actually one of the last things I did regarding the whole scene. There were other props I had created for another scene I needed to do, so I hoped to have them all textured with 1 month of Substance Painter. I used the trial period to get to grips with the software and also bought a fantastic Smart Material pack from Aleksandr Bobrishev. It was very helpful to have a good starting point with these materials. I was able to adjust them to my needs and it made the workflow incredibly fast and far easier than starting completely from scratch.
Developing the Scene Further with Megascans
Now it was time to focus on the entire scene, which began by gathering reference pictures.
I knew I wanted to create a small landscape plane for the foreground, so I made that in Blender first – I had quite a specific idea for the scene now so creating a suitable terrain was very fast. I used the chest for scale and made sure it sat nicely tucked up against the side, with enough space for the tree to grow next to it.
Once the terrain was in the scene, I started making a list of all the foliage, ground cover and rocks that I needed. It was tempting to go crazy here, so I tried to narrow it down to the assets that are most unique or that would stand out – I didn’t need saplings for every type of tree in the woodland!
For this, I turned to Quixel’s Megascans. The library was huge and the fact that they have the LiveLink between the Bridge and UE4 was super helpful! I would be using rocks (large and scatter) and branches from Megascans and I used atlases to make the rest of the foliage and leaves. The goal was to create a British woodland, so I researched all that I could about what kind of vegetation grows and the different types of rock. A lot of this can be interchangeable I’m sure but going into it with an idea of what things should look like was a great help. These are the base 3D assets I used from Quixel:
Quixel already sets up a lot of the materials in UE4 for you but I wanted everything to fit the scene as best I could. With this in mind, I ended up increasing/decreasing various parameters like normal/cavity map intensity and brightness on the rocks, as well as adding a small tint to some of the assets so they better matched each other.
Quixel have a lot of tutorials on YouTube covering loads of useful information. I studied those a lot in regard to setting up materials and working with their foliage atlases. Looking at games was also a large help, I learnt a lot just from studying how their meshes were set up, density, width, height etc. Obviously, the atlases dictated a lot of how that looked but it was still good information to have. I created a few variations of the grass as well.
In retrospect, I probably could’ve cut down the number of verts on the grass planes, but I was trying to eliminate as much transparent space as possible. This is something I’d like to experiment and improve upon as I learn more though.
For the trees in the scene, I used SpeedTree. Again, this was the first time using the software, so I had to try and learn it as fast as I could. Luckily SpeedTree offer a trial of their Cinema version, so I was able to play around with that for a bit before buying it. There were lots of sliders and lots of options, it was daunting at first, but I got the hang of where everything was situated and generally what every option did – eventually!
I had many questionable trees to begin with…
For now, I was just trying to get to the point where I was comfortable creating basic tree shapes, not worrying about creating a finished tree for the scene – which helped to keep the stress levels down!
Now it was time to start getting references for the trees in my scene. I knew I wanted a large old oak to ‘frame’ the scene and draw the eye, so I started researching oaks. I came across a video by Dinusty (Sr. Environment Artist at Ubisoft Massive) on YouTube where he spoke about the formation of trees. In the video, he explained why some large tree branches droop and grow in weird ways, how they tend to hold more water, so they are fatter at the bottom. This was great news as now I had an idea how to ‘frame’ my scene with a large branch and how to make it look believable.
Within SpeedTree you can procedurally create branches/trunks etc, but you can also Hand Draw them. I would be creating most of the main oak tree procedurally, but I would be hand drawing the drooping branch so that I have complete control over where it goes and how it looks. There are lots of ‘decoration’ nodes I used like cavities, lumps, knots etc, to make the tree look more believable. The lumps were very handy in making the main branch fatter where the water had saturated it.
One feature I knew I wanted to use was Mesh Forces. This is where you can import a mesh and use it as a force on the tree – whether that be to attract sections, repel them, follow them etc. I imported my terrain mesh and scaled it appropriately. Then I set it to attract the roots of the oak, have them sit on top for a short time and then clip through. This was great for creating a ‘bespoke’ looking root formation for the tree and hopefully gave it that lived in/natural feel.
As you might be able to see in the picture, the polycount for this tree was quite high (42,000), I wasn’t sure what target I should be aiming for with quite a large tree but SpeedTree comes with a fantastic optimization tool. Each section of the tree has options for lowering the complexity, scale this back too far, for example with the branches, and you end up with a very straight and pointy branch. It’s a bit of trial and error to try and get an optimized tree whilst maintaining a good silhouette and enough detail up close.
To help with the complexity of the leaves, I would be using a feature in SpeedTree called Map Maker where you can create branches full of leaves that are a single mesh, you can then add anchor points to these where other meshes can attach. These ‘clusters’ are a great and fast way to cut down on the amount of geometry, especially considering you don’t even need to leave the program to do it.
I needed to create another main tree that would make up the majority of the background woodland. It’s less common to get such a large and wide tree (such as my main oak) in the middle of a woodland so I went with a much thinner shape. I also managed to get the polycount down to a more manageable 12,000 which would help a lot considering I would be painting quite of few of these in the scene. SpeedTree’s LOD setup was also extremely handy!
I would be using the SpeedTree Color Variation node inside of Unreal so that I could paint only 1 or 2 unique trees but have them look far less uniform. I went with a value of 0.015 for the variation – go too extreme and you end up with bright purple trees, not so handy in this situation!
I spent a lot of time just looking at trees in games and how they were made – how many meshes, how big, mesh angles/orientation, leaf size… It was very handy to get as much information as I could but it’s definitely something I would like to further improve as I learn more.
Ground Textures Made in Mixer
For the ground textures I used Quixel Mixer – this tool is fantastic. The 3 textures I would be creating would be: wild rough grass, soil litter/duff, and wet mud. The Megascans library textures would’ve been fine to use ‘as is’ but I really wanted to try out this program, so I got experimenting. A great ability of Mixer is that you can take a 1×1 tiling texture and easily make it 2×2 – or even more. You simply need 2 (or more if you want) similar textures on top of each other, apply a mask to one, then apply the same mask inverted onto the other. Now you have a 2×2 texture that hides a lot of the obvious tiling – my scene is very close up, so I wouldn’t really need to utilize this so much in this project, but it was fun to try out!
The texture above obviously tiles quite a lot and you can always go in and further perfect it but it’s a cool little trick.
Here are the final textures I used in the scene:
Another useful feature of Mixer is being able to add decals on top of the textures. I used fallen leaves and branches to help add a bit of extra detail. The noise layer can be very helpful too, much like adding a mask, it helps to break up how the textures react to each other whilst also adding some extra height information.
Once inside Unreal, you can very quickly make a blend material for a mesh by clicking the Megascans plugin, selecting the 3 instances you want to blend, and then hitting Create surface. Now you can apply this to any mesh and vertex paint between each layer, you can also vertex paint puddles with the blue channel. The blend instance also has loads of parameters you can tweak, like displacement amount – which I used to get all those lovely lumpy details!
When deciding the color palette for the scene I again went and referenced my moodboard – focusing on looking at the ‘golden hour’ colors. I knew I wanted nice rich reds and oranges, but I didn’t want it to feel like just those colors. I had been thinking about this from the start, which was one of the reasons I went with the scene being on the edge of a woodland because that way I could introduce longer green grass and plants to help break up the bright red and orange colors. This was also on my mind whilst creating the trees and, more specifically, the saplings as I needed to have some richer greens to add in and around the scene.
They’re only very subtle but I also researched what kind of flowers might grow around rocky open areas in the UK (hoping for something purple) and came across milk thistles. I grabbed a nice milk thistle atlas from Megascans and now I could add a little touch of purple to the grassy side of the scene.
Lighting in UE4
Setting up the lighting was one of the very last things I did on this project. I had a rough lighting setup throughout the building – but it was very rough! I left it to last because I knew it was going to be a whole monster to tackle. Lighting can bring and take away so much to a scene, but I had never done anything in Unreal before, so I knew it was going to be a big task.
Like most things during this scene, I went straight to watching tutorials and reading the documentation. By this point, I’d given myself a deadline to complete, considering the magnitude of settings and science behind lighting I knew I wasn’t going to learn it all. I thought I’d go with the mindset of ‘if it looks good, I’m happy’. It was far from a rush job, but I wanted to keep to this imaginary deadline I’d set myself, so I wanted to prioritize.
The bulk of the scene is set up with a directional light (sun) and a skylight. I loaded the skylight with an HDRI from HDRIHaven, a Golden Hour’esk image to get some of those nice early blue shadows. The next step I’m a little embarrassed talking about because I feel I might’ve done it very wrong… I added some exponential height fog, and plugged in the same HDRI, at this point I also had dynamic lights shafts enabled and it appeared like someone had strapped the actual sun to my eyes – it was ridiculous. I went back to the light shaft settings and put them at a super low number and at a very specific point, the lighting just seemed to look, well… kind of nice!
Tim Simpson (Polygon Academy) did a great video on YouTube about lighting and fog in Unreal and I ended up using a lot of those tips in this scene – two of which were the fog sheets and the light shafts (god rays). Both elements are available free through Epic (‘Blueprints’ project) and once you have it loaded up, you simply need to migrate what elements you want to your scene/project.
When studying early morning woodland areas there is often a lot of fog. Considering I had a large open area of grassland I could also accentuate the fog a bit more. Light also has an amazing effect on fog, changing its color. I’m certain UE4 has a way of doing this but considering my deadline, for the most part, I would be faking this effect with the fog sheet color overlay.
The fog sheets are cool because you can scale them and scale the noise too (so they don’t look stretched). The background had a single fog sheet. They were also helpful in adding depth to the scene. The rock clusters in the midground – before adding the fog sheet – got lost in each other and looked a little too busy and I found it hard to differentiate the distance. By adding some fog between them it made it far easier to tell where they were in the scene, which gave them that extra bit of depth.
Around this time in the project I had been playing some Red Dead Redemption 2 and really took note of their awesome fog effect, it almost seemed… damp? Like steaming up a pair of glasses, I thought it was very cool. I think it might’ve been a mixture of fog and a blurring effect. In the post-processing volume, I added some Bokeh depth of field to the background. It took some fiddling, as some of the settings seemed like they were all or nothing at times! But eventually, I added this sort of a misty haze look to the fog sheets which I thought added a little bit extra to the tone of the scene – hopefully helping to hint at a misty damp morning.
Advice for Environment Art Learners
If I were to give advice for people creating environments, I’d say it’s super helpful just going out and seeing nature sometimes. It’s amazing what weird and wonderful things you can find in real life. All the little stories you can decode like rocks falling, hitting a baby tree, knocking it off course and now it’s growing at a weird angle… it can be fun! On the technical side of things, watching lots of tutorials and following great courses (Udemy, YouTube, 80.lv!) assists with the actual building – the ones I mentioned above are all awesome. But sometimes just an interesting idea can help to create something cool!