Clarence Munji shared the details behind his Project: Star Bounty with several environments made in UE4.
Clarence Munji shared the details behind his Project: Star Bounty with several environments made in UE4.
Introduction
Hi there, my name is Clarence Munji and I am from Singapore! For as far back as I can remember I’ve always been extremely passionate about Video Games. The first thing I’d do in the morning before making breakfast is booting up my PC.
Funny enough I used to take up VFX and worked for a very short while at Double Negative before entering the University of Hertfordshire to pursue a BA (Hons) Digital Animation. I also made the decision to switch from VFX to Games Art after experiencing how easy it was to utilize Unreal Engine 4 to create things that were otherwise quite time-consuming in the VFX scenario.
I got really interested in dabbling with outdoor environments when I started my first once which pushed me more into doing what I am doing now. I admit I am not too good with hard surfaces at all, I even struggle to make a simple chair or table but damn, do I like trying to build outdoor organic environments.
Project: Star Bounty
Inspiration & Start of the Work
I mostly drew inspiration for this project from video games like Halo from Bungie, Mass Effect from Bioware, Firefall from Red 5 Studios and what I’ve been playing most recently – Destiny 2, Guild Wars 2 and Warframe!
Project: Star Bounty, actually took on from an idea I had during my second year in the course, the idea of this vast world where you could encounter regions with populations that are in the dark ages and the next moment all of a sudden, a highly technologically advanced race.
Sometime after my second-year modules were complete and I was in a time period where I had to wait before the third year commences. I took this time to research and build out assets to use in the project. Most of my initial work involving what assets I created and how I went about attempting foliage can be found here. The latest progress is on 3dhit and Polycount.
Below you can see where everything pretty much started to transform into Project: Star Bounty. An extremely early look where I was playing around with the assets I had.
Unreal Engine 4 allowed me to be able to maintain a flow of thinking of what I wanted to make, create the asset and drop it into UE4 as fast as I could. Compared to long render checks that VFX would probably enforce me to do as well as breaking my overall flow, it felt really good being able to see my results on the screen so fast and to interact with them in real-time!
Below there are three environments, a grassy, snow, and desert one. I wanted to show that I am able to do and approach different types of environments. Admittedly, I was quite hesitant to approach even a grassy environment (Level03D), but I decided to just jump straight into the fire.
Credits to Character Artist – Manouk Manoukian, Effects Artist – Kidman Lee and Generalist Artist – Nabin Phauja. Latest video:
A lot of inspiration comes from Warframe corpus environments from Digital Extremes. The idea was that the chasm in the middle had crystals discharging electricity between them.
This started out as a day time scenario scene before I went with the whole purple hue scheme. I was watching Death Stranding trailers and ended up with this as the weeks went by.
Landscape Production & Assets
I’ll admit the grassy level was the biggest map I have ever attempted to undertake for the project on top of my other two environments. Below you can see the set of the latest assets that I have created over time to help construct my scenes. I do add more over time, of course. My total project file size ranges around 15-18 GB without the additional assets from the team members which totals to around 20.7GB as of today.
I did not have World Machine utilized for the landscape, I just depended on the tools that were available to me during my course.
The way I approached modeling my landscape began with utilizing the Landscape tool from UE4. I simply plopped down a flat piece of ground and started raising shapes and forms that I like.
From then on I placed my rock assets around to construct out more shapes and forms. I found it was best to approach everything first as an overall factor to see what would fit and what wouldn’t.
As you can see I am basically duplicating my rock assets around to construct my formations around the scene.
From here on, I’ve added general foliage to give life to the scene as well as background mountains to lock everything distance-wise.
The trees in the distance are nothing more than simple cards constructed like this, they sell the trick having a densely populated forest. I pretty much play on the illusion of space.
I wanted to bring in a more interesting element to the scene, so I developed some sort of rocks floating around the glowing sphere located at its base. The stream of light effect in the middle was done by my team member on-board the project, Kidman Lee.
There are much more efficient ways to approach the landscape like this, for example, with World Machine, but I ended up constructing it manually which provided me with a big insight into this type of work.
Rocks & Foliage
Different props were the fun part, I’ve spent most of my time sculpting them out in ZBrush and then moving back into Maya for exporting. My challenge was mostly getting things to look right the way I wanted to, I’m not skilled enough yet for those insane micro-detail objects.
I have sort of a vertex article where I explain more on how I go into making my rock asset (a very early one) as well as how I utilized it.
The image above pretty much consisted of just one rock, scaled and rotated around differently.
I also have a base normal that is generated by my High poly of the rock and then an additional Normal from my tileable texture made in Substance Designer. I run them both through a node called BlendAngleCorrectedNormals and use Constant3Vector to control the normal values. I use this method not just for my rocks but for anything requiring a blend of 2 normals in UE4.
I’ve also made some tweak on my shader to allow me some more variation room on a single rock. Which brought me the results below.
The gif below shows how I could control a quick mask variant in order to give me more variation control.
My foliage was initially constructed mostly using Photoshop and Maya, however, I wanted to adopt the ZBrush workflow, so I started out by sculpting some basic shapes there.
Then I poly-painted them to get a quick color pass. The tough part for me was trying to get out the poly-paint and normal information out of ZBrush.
From here on, I took the export textures out from ZBrush and brought them into Substance Designer for further refinement. I export the bitmap textures out after I am done with the tweaking.
How it looks in the engine:
I construct them out in Maya after exporting the textures, they are basically just tweaked cards. I edit their UVs to fit the card mesh.
One of my very early foliage made months back. I could definitely reduce the tri-count on this one!
For my trees, I use a combination of Fibermesh and Nanomesh inserts. First, I select the branches through polygroups.
Then I use Fibermesh to help me place cards randomly around the branches.
After which I use Nanomesh to insert and populate leaves only on the card faces generated by Fibermesh settings.
I learned this method in the video Tree For Game using ZBrush and now use it in different ways for the foliage.
Finally, I plop everything down into UE4 for placement and see how it fits together.
Textures & Shaders
I have been building all my textures in Substance Painter for baking out normals, Substance Designer for the bulk of texturing and Photoshop for a lot of my initial foliage. Nothing too special, it is pretty basic compared to a lot of complex shader materials out there!
As you can see above, these were some of my materials straight out of Substance Designer. They look pretty average, most of the magic happens when I start building them under Unreal Engine 4’s shader setup!
I’ve taken the time to work on the shader material nodes below as I’ve actually had a tough time creating this crystal gem rock shader. I restarted 4 times in total, and doing so helped save my sanity.
Most of the look of this shader came under the Tech Glow Setup. It started out as a Snow shader and the math below was to help cause sort of a speckle to be plugged under the emissive channel of the material. I ended up tweaking it by insanely stretching the UV value and putting in panner nodes and it had granted me this strange result of veins pulsating through the shader.
Credits to the lecturer Mark Ranson for assistance on snow speckle!
A closer look at the Crystal in the gif below:
After that, the rest of the components like the diffuse, normals, refraction and other mask controls came in.
Lessons & Tricks Learned
Other than absorbing all the knowledge and techniques I could find from Unreal Documentation and tutorials online, I think the most powerful thing I learned was to just keep going. Everything seems to follow suit if you are passionate about the thing you are doing. I was actually pretty intoxicated by the project.
I found out about this one neat thing as I was creating my foliage: give it a slight emissive boost so it wouldn’t totally black out under shadow or dark areas killing the look of the asset.
I also found out in one of the Unreal live training videos Getting Started with Landscapes Materials and Foliage about this, which really helped in culling and getting much-needed FPS boost.
I took my Opacity channel from my texture, ran it through the PerInstanceFadeAmount node, gave it a scalar parameter to control its strength and hooked it into my Opacity and Opacity Mask.
I have more in-depth progress stuff in my 3dhit and Polycount threads, so check them out if you want to know how I dived into things.
Lighting
Surprisingly, lighting was not too troublesome for me, I currently have fully dynamic lighting setups in my scenes so baking time was quite low. I have made sure to optimize the foliage and the rest as far as my knowledge goes and maintain 60 FPS or above through culling techniques and other optimization methods.
I am currently using Ultra Dynamic Sky to cover it up with fake skybox geo and some cloud planes in an attempt to mimic Destiny 2’s lovely skyboxes.
Upon tweaking the lighting, I tweaked the Post Process where I got the opportunity to change the look even further. I currently use Amplify LUT Pack.
From here on, it is a combination of tweaking the material shaders and the lighting all together to bring out the desired look.
As for lighting the smaller parts of the environment, I actually solely relied upon the main sun. I do have some static lights but those came in much later, just for the characters and the props, with the given exception of the desert scene as shown below.
I know I could use planes to fake out some god rays and to better control the look but I decided to opt for spotlights, for now.