logo80lv
Articlesclick_arrow
Professional Services
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
Order outsourcing
Advertiseplayer
profile_loginLogIn

Learn How To Create a Picturesque Scene from Halo Infinite in UE5

James Naughton shared a detailed breakdown of his project Installation 04, discussing the creation of lifelike foliage, rocks, and lighting in Blender, SpeedTree, Substance 3D, and Unreal Engine.

Introduction

Hello, my name is James Naughton, and I am an Environment Artist in the UK working in the game industry with three years of professional experience. My 3D art journey began around 2014 when I did a Games Design course for two years. After this, I moved on to a 3D Visual Effects course at university, which focused more on TV and films. I graduated in 2020. 

After graduation, I spent around a year working on my portfolio daily, teaching myself Unreal Engine 4 and working on various environment pieces. During this period, I spent much time online researching commonly used workflows in Environment Art in games to ensure my portfolio pieces featured everything an employer looked for. After around three solid environment pieces on my portfolio, I started receiving attention from studios. After two art tests, I landed my first job in the industry at Futurlab as a Junior Environment Artist. I've worked on one game title so far, from the very beginning of pre-production all the way up to the final art.

Inspiration & References

Going back to when I was younger, I've always enjoyed the Halo series, and for a while now, I've wanted to do a fanart set in that world. The initial idea started with me wanting to reimagine the second mission from Halo: Combat Evolved. It's a mission I remember fondly when I was younger and is a fan favourite among players of the game. With my idea in place, I spent a couple of days gathering references from the game series and multiple locations in the Pacific Northwest area.

With any environment piece I do, I spend a couple of weeks on the blockout and composition of the environment. This stage is crucial as if it is rushed, the final outcome will fall flat.

I started by using default primitive objects in UE5 to block my environment out. It keeps the process quick and loose as, at this stage, I find going back and forth with another 3D package time-consuming. I used a combination of landscape tools and simple 3D cubes to lay down a foundation for an interesting composition. Any unique objects, such as the Beam Emitter tower and the crashed Lifepod, were blocked out in Blender and imported in. Also, at this stage, I will work up my lighting setup, as I feel it's important to get a solid base for this early on. 

Modeling

Rocks were the first assets that I made. Such assets are one of my favorites to work on as, from my experience, they tend to be quite relaxing to create. I started making them by laying out some simple cubes in the proportions I was looking for and using the ClipCurve Brush to cut in interesting silhouettes easily. After this stage, it's as simple as analyzing your rock reference and building up the forms in stages. TrimSmoothBorder is a great brush for rock assets, and I used this largely throughout the process. I found some great tutorials by Ivanna Liittschwager that display some of these topics in-depth, and I suggest checking them out on YouTube, as they are very useful.

Then I made some trees for the scene. I have always found trees quite tricky to create, so I spent some time learning how to make them in the most time-efficient way possible, which led me to learn SpeedTree. I've used it in the past, but not much, so I had to spend time watching tutorials on YouTube on how to use the software. I looked at both real-life and video game references for the pine trees I wanted to create.

I was transitioning from Maya to Blender in the middle of this project. I took this as an opportunity to start on the crashed Lifepod asset as it's a relatively complex hard-surface asset, and Blender has some great hard-surface plugins that aided the modeling process and I wanted to challenge myself. 

I started by looking at the original version of the Lifepod from Halo: Combat Evolved and the version in Halo Infinite. Both had qualities that I liked, but I took the most from the original and merged some of the newer elements from Halo Infinite into the asset. In Blender, I used a combination of Hard Ops and Boxcutter to model tricky details, and this asset was created for the high to low poly workflow.

I used a similar approach for the Beam Emitter tower, but instead of doing a high-to-low poly workflow, I opted for a weighted normals mid-poly approach for this asset to show a range of hard-surface workflows. 

Creating the foliage was a straightforward process. The grass was from a previous project, and I created it by using a plane and masking areas in ZBrush where I wanted my grass clusters to be on my grass atlas and spawning fibre mesh grass geo in these masked areas for my high poly. I saw this method in a YouTube video by Nathan Mackenzie, which I highly recommend checking out:

To create other foliage assets, such as ferns, flowers, and plants, I first started by blocking out their shapes in Blender, following real-life references. Then I took them into ZBrush for their high poly sculpts and baked them down in Substance 3D Painter onto atlases ready to be cut out in Blender and made into foliage clusters. 

A tip for creating quick ground meshes such as mud piles or rubble buildup is to use the inbuilt displacement in UE5. You can use the modeling tools to create a base shape with a plane and then use a tileable you have created with its Height Map to displace the mesh, this works especially great with Nanite workflows.

For the landscape mesh, I used the terrain editor in UE5, so it's nothing fancy there. I'm quite comfortable with it. Combining the sculpting tools of the terrain editor and hand-placing rock assets on top of it gave me the landscape result I was after. I used the newly introduced Nanite terrain features to get the detail I wanted in the ground. I did this by following this useful tutorial on landscape materials. This material was great as it allowed me to get to the creative part quicker and gave me full control of my materials with features such as Nanite displacement material blending and quick tileable repetition break up.

Retopology & Unwrapping

I optimized and retopologized assets in different software, depending on the asset. For example, the rocks were straightforward as the Decimation tool allows for fast retopology, and some additional clean-up was done in Blender. I could have gotten the polycount much lower for these rock assets, but due to Unreal Engine handling higher poly accounts extremely well, I decided to add extra polys, as I planned to keep the texture usage for these assets low.

Optimizing the tree assets was a quick and easy process. SpeedTree tackles this with ease, with sliders and options to reduce polycounts on the fly in the modeling process. It also automatically UVs the asset for you. I couldn't recommend learning SpeedTree more if you want to create foliage non-destructively. 

With the Lifepod, I baked down a high poly mesh onto a low poly version, both of which were created in Blender from scratch. There is nothing too complicated, just a standard sub-divisional modeling workflow. Any UVs done in Blender were done using ZenUV, a very useful plugin for speedy UVs. If you want to find out more about this plugin, check them out on YouTube.

The Beam Emitter was UV unwrapped with tileable usage in mind, as I used a mid-poly workflow for this asset. 

Texturing

With my projects, I like to get a lot out of a small number of textures used in my environments. Not having to create tons of materials saves me time and keeps the environment running nicely. 

Let's start with the texturing process for the rock assets. Every rock in the environment shares two tileable textures: the base rock material and a grassy tileable that goes on top. These were fairly straightforward to create, and I used Substance 3D Designer to do so, which I'm not very experienced with, but I got some results that I was happy with. 

Next, I created a smart material in Substance 3D Painter that utilized the red channel for leaks, the green channel for dirt, the blue channel for edges, and the alpha channel for lichen, all to be used in a singular packed mask texture. I created a smart material for this so that each time I needed a mask for a new asset, I had a base to work from, which kept things neat.

Once my masks were made for the assets, I started to create my Master Rock shader to utilize the masks. My shader allowed me to edit the strength and color of the rocks' edges, dirt build-up, subtle leaks, and lichen. I could have added extra tileables into these masks, but simple Color Constant tweaks in the shader gave me the look I was after.

I also added the functionality of grass/moss build-up depending on the rotation and normals of the rocks on top of the masks from Substance 3D Painter. This came in handy when grounding the assets into the terrain. For full flexibility, I aligned the material world so my tileables would stay at a consistent resolution on the fly if assets were scaled slightly. In the end, the rocks shared two tileable textures and heavily relied on the RGBA-packed masks with color tints applied in the shader to get the look I wanted.

I took a similar approach to texturing the Beam Emitter tower. I simply reused the master material and relied on weighted normals for this asset, with two textures being used with tints in the shader to do the heavy lifting. The same approach was applied to the Roughness values by adding a constant value to the RGBA masks, which gave a nice result. 

My tileable textures were created in Substance 3D Painter/Designer. For anything more complex, like the forerunner hard-surface tileable, I ended up modeling in Blender, baking this onto a plane, and texturing it in Substance 3D Painter as I'm still in the process of learning Designer.

Texturing the Lifepod was a relatively straightforward process of creating unique textures for it in Substance 3D Painter and carefully building up the detail in layers. I used the newly added Spline tool to create panel lines all over the asset. It was invaluable with this asset as I could tweak these details on the fly rather than go back to the high poly mesh and edit the details there, re-bake, etc.

Final Steps

Throughout the project, I constantly refined the composition I had established early on. I wanted to feature the main elements of what gives Halo its visual identity. With that in mind, I knew I wanted to have the Halo in the background, the iconic Beam Emitter as the focal point in the midground, and the crashed Lifepod with Master Chief in the foreground. Balancing these three objects proved tricky at points, but due to a lot of time spent on the composition early on, it was a relatively smooth process later in the project refining the composition. 

I used the rocks and terrain in a way that created swooping guiding lines to areas I want you to look in and to balance out the lights and darks in the environment, as things can get noisy quickly if you populate areas with too many assets.

As the project progressed, the scope expanded, and I decided to add some extra angles to the environment. I applied the same approaches to composition that I established in the main render in the secondary ones by pushing the swooping lines in directions I want you to look in.

Once the bigger assets were placed in, I would similarly place the smaller assets, such as small rocks, mud clumps, and foliage. This meant having ‘islands’ of these assets to keep things readable, with the areas between these asset ‘islands’ being lighter in the amount of assets placed. For example, I used the ferns sparingly as they stand out compared to other foliage assets on screen, so using them in ‘islands’ like in the corners of the renders kept things readable. 

Lighting

I constantly refined the lighting in this project. I was using the Ultra Dynamic Sky plugin, which allowed me to create dynamic skyboxes quickly, affected the lighting, and tailored the cloud shapes to the composition I established. I heavily relied on the Directional Light and Skylight in this project, as Lumen tends to handle outdoor lighting nicely, with me only needing to add a couple of supporting spotlights on assets to make them stand out, such as the Lifepod and the Beam Emitter 

I highly recommend checking out the EasyFog in Blueprints plugin, as I used this a lot in my project to easily add direct pockets of fog in areas where it was tricky to add with the Height fog in UE5. I had plenty of references from the games regarding the mood I was attempting to achieve. I did this using a combination of the plugins I mentioned earlier and post-processing volume in UE5. A tip for the post-processing stage is not to rely on it too heavily. It should be a subtle lift to what has already been established with the work so far, and with this project, I only needed to edit things such as the contrast and some saturation values to get my desired look.

To create the Beam firing in the video, I took a straightforward approach of animating a sphere in Blender by keyframing it, scaling, and moving upwards. I found this to be a quick approach which gave me the desired effect as I'm not knowledgeable about creating VFX in games. Once imported into UE5, I made an emissive material for the beam that had a mask, which pans vertically along the mesh. I applied a similar approach to animating Master Chief by keyframing an idle animation in Blender. 

Once my animations were in the engine, I used the sequencer to keyframe when I wanted animations to start and end in the video. I did the final edit by adding sound effects and music in Davinci Resolve. 

Conclusion

My main challenge in this project was managing the little time I had to work on it outside of my job. Much time was spent learning on it, with the transition over to Blender and using SpeedTree. The most time-consuming section was creating the Lifepod, as it was a fairly complex asset, but I gained a lot of hard surface and texturing knowledge at the end of it. The lesson I learned from this project is to manage scope next time as the project grew too big during production. I had to dial some of it back to get it finished in a reasonable timeframe. 

My advice to fellow artists would be to focus on perfecting the blockout and lighting pass first before making assets. This may sound obvious, but you will save yourself time later in the project, which is more valuable than anything.

James Naughton, Environment Artist

Interview conducted by Gloria Levine

Join discussion

Comments 0

    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