Chris Rhodes shared a detailed breakdown of his UE4 environment Waterfall Bridge: sculpting rocks and wood in ZBrush, texturing assets with Substance tools and vertex paint, lighting and fog setup, and more.
In case you missed it
You might find these articles interesting
Hi! My name is Chris Rhodes, I’m a final year game design student who’s currently studying at the University of Huddersfield.
I first took an interest in game art after studying game design in college. During that time I did a little bit of art, but it was mostly the written and theory side of games, which honestly kind of bored me. Deciding to continue my studies at university I ended up on another game design course, however, this was the complete opposite to what they taught me at college. Here, I felt like I was doing the thing I always wanted to do, creating awesome game art.
As far as company experience goes, I worked at Canalside Studios during my placement year, which is a student-ran games company set up and funded by the University of Huddersfield. Since it’s very hard to come by game internships, this gives students the experience of working within a team and developing a game. As a soon-to-be graduate, I think that this experience helped me improve a ton, and is a great addition to my CV.
I am currently looking for my first industry role, hoping to break in as a Junior Environment Artist.
Waterfall Bridge: Inspiration and Concept
I set out with the goal of producing something that heavily relied on ZBrush, mainly because I wanted to see how well that workflow would turn out and also to improve on my sculpting. God of War is easily one of the best examples of what a ZBrush-heavy workflow can achieve, so I wanted to take methods and techniques from the environments of this game and apply them to my own.
One of the first things I did was find a concept to work from; concepts provide a solid composition and can even help with lighting setups later on. ArtStation is my usual go-to, there are so many talented and creative artists on there. For this piece, I used one of the artworks by Ilya Nazarov as a base. His concepts are awesome, I hugely recommend checking out his portfolio.
Blockout and Composition
When doing the blockout, I stuck relatively close to Ilya’s concept, with my main goal to nail the proportions and get a basic lighting pass done. During the blockout phase, I also like to experiment with different shapes and camera angles. Camera angles are especially important as they can decide where the majority of your details and time will go.
90% of my assets used a very similar workflow which consisted of blocking the mesh out in 3ds Max, sculpting in ZBrush, and either using Decimation Master or 3ds Max to get my low poly. Finally, I textured and baked my assets in Substance Painter. I like to keep the number of software I use to a minimum, as I find it streamlines the process of creating an asset.
The rocks easily took the most time and had the most iterations. I had to keep going back and forth between ZBrush and Unreal Engine just to make sure they would read correctly from different angles, as I wanted to reuse these over the entire scene. I’m not completely new to sculpting rocks, however, I wouldn’t consider myself an expert at all. I followed a tutorial by DiNusty on the best brushes to use for rocks, which helped tremendously:
When sculpting the wooden elements, I tried a completely new approach. I came across a post by Dannie Carlone (see below) in which he explained his method for wood sculpting. It’s probably one of the quickest ways I found to make really good-looking wood in ZBrush.
I always love making unique textures for each asset inside Substance Painter, but sometimes it's just not feasible. The majority of the assets in my scene were just too large in size and would need a ridiculously big texture to look good.
For all my rock assets, I used the mask workflow which involves using a tiling texture and creating masks to layer up extra detail. Not only did this speed up texturing immensely, but it also allowed me to maintain high levels of texel density on the meshes of any size.
The whole mask creation process can be a little daunting for someone who has never worked with them before, but there are some great resources out there to learn from. I personally used the UE4 documentation, which explains how to create a texture mask and set it up in engine. If you’re looking for something a little more in-depth, I would recommend this Casper Wermuth's tutorial.
Due to the mask-based approach, I didn’t need to worry about creating a whole bunch of textures. For this scene, I ended up creating three materials in Substance Designer and one in Substance Painter.
The Substance Designer materials were pretty simple and low contrasting, as most of my detail came from the high poly sculpt and texture masks.
In the image below from left to right, you can see 1) Rock Tiling, used for the base layer of all rock assets; 2) Rock Detail Texture, used for detail normals and diffuse; 3) Ground Texture, used for the terrain.
For my wood material, I used Substance Painter. This was the first time I had used Painter to create a tiling texture and I’m definitely going to use this workflow again. I got this idea from watching Jay Cummings's tutorial on ArtStation Learning. He explains how you can take a photo texture and use it along with Substance Painter's filters and grunges to create a high-quality smart material.
Here are the images I used for my wood material, both taken from textures.com:
To achieve the realistic moss effect, I took advantage of the Megascans moss foliage and textures. When setting the moss up in engine, I used three different techniques to build up the detail on each rock.
– Shell mesh
This was a simple mesh that would loosely sit on top of each rock. I would use this to vertex paint a tiling moss texture along the surface of the rocks.
– Vertex paint
Nothing fancy here, just a standard vertex paint setup to add to the base rocks. This helps emphasise the shells and make them appear thicker and denser.
– Foliage cards
Finally, I add foliage cards along the edges of the rocks, with my aim to break the silhouette rather than to add density.
Throughout the entire process of making this scene, I had used the default mannequin as a reference of real-world scale. Towards the end of the project, I decided to remove him as he wasn’t needed, however, it completely ruined the scale of the entire scene and made it harder to read. In the end, I used the Gothic Knight character that I got from a free monthly asset pack and that was laying around in my UE4 library. I was very lucky to find something that would fit so well with the whole theme of my environment. Not only did it help make the scene more readable but it also made for some epic screenshots!
Lighting was kept fairly simple throughout development. I made good use of the new Sky Atmosphere in UE4.26, which is a physically-based sky and atmosphere-rendering technique. It comes with a neat little gizmo where you can quickly test different light angles and times of the day.
For the main setup, I used a stationary directional light and a movable sky light. One of the main benefits of using a stationary light is that you both get crisp dynamic shadows and have GI baked into the lightmaps. The reason why I used a dynamic sky light is that I needed mesh distance fields. I used these to create the blending between the rocks and terrain and also to give the foliage extra shadow and depth at a distance.
The scene had three other additional lights for the lamp post, cave, and doorway.
The lamp was put there to fill out the left side of the scene, as this was an extension to the concept and needed something to bring focus to. I went with low and soft intensity as this was meant to catch your eye for just a short time rather than distract you for a while.
I got the idea to use fog cards from a video breakdown by Peter Tran (see below). He explains how he uses fog cards to fake volumetrics, and how you can manually choose where they appear rather than having to rely on lights and fog. Not only is this cheaper in performance as there’s less rendering going on, but it also looks way better in my opinion.
The main thing I struggled with early on was blending the rocks together as though they were one. I made the mistake of not testing sculpts by arranging them into formations, which resulted in a lot of time being wasted. Here’s an early iteration of the rocks:
The first thing you’ll probably notice is how random they are and how they don’t look like a cliff face at all.
After a few more sculpt attempts and testing in engine, I started getting a much more desired result. The rocks started fitting together better and made for a more convincing cliff.
This taught me the importance of testing sculpts, and how much time it can save. Even if it means bringing a 1 million poly rock into engine, it's 100% worth it!
What Would I Change?
If I were to spend an extra week on this environment, I would focus my time on the cave section. This was hugely neglected as I never saw it as an actual part of the environment, it was mostly there to give the viewer a bit of curiosity.
I would love to add some sort of stone carving into the walls throughout, to give the impression that many people have passed through the area, or maybe someone even lives there.
One of my favourite ideas I got for the cave was to add mushrooms and spores growing on the rocks and turn it into a really damp area. But sadly, I never got the time and I can’t see myself going back since I’m already working on new projects.
If I were to give advice on creating a project like this, I would say, get feedback on each stage of development. This means trying to get advice on the sculpts, the retopo, the textures, and what it looks like in engine. It's a shame when you go through the whole pipeline to get feedback, and the response is based only on how the sculpt looks. Not only will it save you hours but you'll also be able to improve way quicker since you’re not wasting as much time, and you’re more likely to make the changes since you can apply the feedback instantly.
Another bit of advice I would give is to do research! By this, I mean exploring new ways of creating stuff. Throughout this project, I have learnt so many new techniques for sculpting, materials, lighting, etc. Spending an hour or two researching a new technique can save you countless amounts of time in the future.