, by Playground Games

Forza Horizon 5: Crafting Rich and Diverse Mexican Biomes

The Playground Games team gives us a deep dive into their texturing pipeline with the Substance 3D tools.

  • Game
  • Interview

Hello! Great to speak with you again. As for introductions, my name is Don Arceta, Art Director for Forza Horizon 5. With me is Reece Prades, Senior Environment Artist; Nathan Mackenzie, Associate Lead Environment Artist; Simon Gibson, Lead Vehicle Artist; Wai Keen Lam, Senior Vehicle Artist; Alex Killpack, Senior Vehicle Artist; and Alex Logan, Senior Vehicle Artist. 

Forza Horizon 5 Art Direction 

We really wanted to celebrate the beauty of Mexico. Not only celebrate the land but celebrate its culture and rich history. Crafting an honest and authentic representation of Mexico was very important to us. We also wanted to make sure that the Horizon Festival complemented and highlighted the beauty and vibrancy that Mexico had to offer. The main challenges for us were figuring out how to achieve the diversity of biomes within the largest Forza Horizon map yet whilst pushing consistent next-gen visuals across the board. Easier said than done! 

During pre-production for Forza Horizon 5, we did a lot of exploration and investigation in integrating even more procedural and non-destructive workflows. This led us to look at using Substance 3D tools in new and unique ways across almost every art discipline. Along with the innovations found, we also spent a lot of time refining our workflows and process for the more traditional Substance 3D use-cases. 

Scaling up production capabilities 

One of the big factors was our increased development time. Instead of the usual two-year dev cycle of past projects, we spent three years developing Forza Horizon 5. The extra year, coupled with the extension of all our Substance 3D workflow improvements across all disciplines, has really allowed the team to achieve the diversity of biomes and author the largest Forza Horizon map yet. 

We used Substance 3D Designer mainly for authoring tileable textures. This covers everything – our terrain, architecture, roads, and geology. We used Substance 3D Painter for bespoke texturing such as large-scale building details, our barn find vehicles, props, characters, and wildlife. We also used Designer in unique ways such as using it to generate wetness maps for our roads, sculpt monster truck tires, and generate textures from our foliage scans. 

Processing scans of local Mexican foliage

Reece Prades, Senior Environment Artist: For Forza Horizon 5 foliage, we used a new authoring process which we call vector light. This new process gives us high-quality textures, and it essentially replaces our high-poly workflow we’ve used in the past. 

Vector light is a process where you can take an object, and cast light at different angles around that object which then gives us albedo, normal, roughness, ambient occlusion, alpha, and height information. In this case, we used it for the leaves of this plant. Our end goal was to consistently achieve higher quality textures more efficiently and quickly. 

In-house, we built multiple vector light rigs which we took to Mexico. 

The vector light rig is an inverted photography soft box that has eight LEDs placed around the interior with a camera placed on top. We activate the camera and LED lights through a timer box. This triggers the camera and one LED light simultaneously. This occurs in succession for all 8 LED lights, giving us eight images. 

With the eight images from our rig, we bring them into Substance 3D Designer through a Multi Crop node which then gets separated into a Multi Angle to Albedo and Multi Angle to Normal nodes. This gets us our diffuse and normal map from the original eight images. We also can get height data from the normal map through the Normal to Height node, as well as AO. 

For the roughness, we use the AO map as a base, and we then use a combination of levels, blends, and background noise to generate the roughness map. 

To get the opacity map, we take the original eight images and pass all of them through a Blend node in Max Lighten until it overexposes the background, which leaves the silhouettes of the leaves. A Level is applied, and it is then converted to greyscale and placed through a Histogram Scan node, which is then inverted. This produces our opacity map. 

We finally make some slight adjustments to the other maps before they are connected to the output node. 

As you can see, the vector light process is a very powerful and effective workflow process. It has saved a huge amount of time from our workflow. To give you some statistics, this process saved two days per asset, which would have normally been time dedicated to high-poly creation. With this new process, it only takes ten minutes. 

Wet road node

Nathan Mackenzie, Associate Lead Environment Artist: The wetness on every road in the game was created through Designer using a custom node created in-house. This allowed us to have cohesion across the whole map and then edit per biome if needed; for instance, the swamp area has some extra wetness applied.  

The node started off as a concept to create our wetness maps quickly and consistently, it was promptly picked up as our ‘go to’ tool to construct our wetness. Let’s jump into the graph and look at how it all works.  

Opening the graph, it shows as a single tool with its inputs and outputs to make it easy for artists to use. The inputs that the tool requires are a height map of the terrain and road, a mask of the roads in the area that you want the wetness for, and a flow map of the roads.  

The height map gives us where we want wetness to be prominent, i.e. at the bottoms of hills, dips in the road, and so on. The road mask allows us to contain the information to just the roads. And the flow map, which was created in Painter beforehand, gives us the direction of the road, to add the directional information. 

Opening the Wetness tool, you will see it’s super-simple in its design, this was important to not overdo the graph and make it too heavy so that the artist can get the final outcome incredibly fast. After all, this tool was designed to give us faster results than how we previously created wetness. 

The flow starts off with the height map input and a few nodes that capture a mask from a certain slope of the terrain, to give us the areas where wetness would be more prevalent, followed by some noise nodes to give this mask some variation 

We then move on to the area where the flow map, created in Substance 3D Painter, is utilized to give us directionality throughout our roads. The directional texture is generated from a single Tile Sampler node, keeping the timings down for speed. A simple shape is drawn into the sampler node and tiled based on the flow map; this is then combined with the previous mask to give us the directionality within the puddled areas. 

The graph ends with our outputs, minimum wetness, and maximum wetness. For the minimum wetness, it is simply a case of adjusting the levels of our already created mask and exporting that straight out.  

With the maximum wetness, there is just one extra step where we need to create a base wetness value so that the whole road gets wet and doesn’t leave dry patches when you’re in a tropical storm, for instance. This was a simple collection of noise nodes placed into a mask of two gray values to give some variation on the base value, which is then combined with the original mask without a Levels, and sent to its output. 

Creating this tool was a great example of how quick and flexible the software is, allowing us to iterate and see the results instantly. We plan on taking this further – for example, adding biome-specific wetness all within the tool to save on additional work after this is created. 

Monster Truck tires

Simon Gibson, Lead Vehicle Artist: When we create any material, our first steps always involve researching and studying the subject matter. As part of this, we collate reference photography to help us understand what defines that surface. 

During this research, we determined that monster truck tire treads were shallow and that it was common practice to chisel down the tires by hand before being fitted. The effect of this would be to prevent dirt being kicked up into the audience and allow the tires to perform at their best for a variety of stunts that they regularly demonstrate. Shallow and chiseled treads are key visual cues for this type of tire. 

Wai Keen Lam, Senior Vehicle Artist: As with most procedural materials, the tire started out in the height map by blocking in the larger defining shapes of the tread blocks. Starting with simple primitives, we applied Blends and Transforms together, to create a sample that we can tile using the Tile Generator node to create a basic tread pattern. 

As the grooves and chisels of the monster truck tires are defining features of the material, we sought to replicate them.  More shapes are blended in along the way to achieve this.   

Once the larger defining features were done, our focus shifted to the smaller details like cuts, gouges, and scrapes on the tire surface. We implemented these by using multiple noise nodes blended with edge detects, and then balanced out with Curve and Levels nodes to achieve the desired depth of these details. 

The chiseling was achieved by blending Cell nodes with Perlin noises, directional scratches, and directional warps to vary it up, and again blended over the larger tread pattern. 

The edges of the tread blocks were next to receive some wear treatment. As the tire is intended to roll over jumps and ramps, we wanted to show this in the uneven edges of the tread using an edge detect from the output of the tile generator. A series of distance, histogram scans, and slope blurs were utilized to create an organic edge wear mask. This is blended down to the height to give us some of the uneven edges on the blocks. 

The final touch to the height map was to add the text to the sidewalls by using the Text nodes and blending them down to the height again. 

With the height map completed, we then moved on to creating the roughness map.  Grunge and noise maps were blended; this gave us a starting point to create the right roughness for the base rubber.  We then blended that again with the final height, and modulated between the two. Like any other material, rubber tires don’t come out of the molds without imperfections, particularly for something designed to connect a monster truck to the ground. More noise was blended down to the tire walls so the light could pick out more subtle variations. 

The albedo, again, begins as a series of blended grunge and noise nodes. These are then masked into a uniform color that represents our base rubber albedo. The tread blocks that meet the ground will pick up more dust and grime.  A dust layer is created in the same way as the base rubber albedo and masked in using the height so that only the outer tread blocks receive a thin, subtle layer of grime and pickup. 

To add a bit more storytelling, we added in some red and yellow paint specks onto the surface of the tread, but again only on the part of the tread most likely to touch a surface using the same techniques from earlier.  The reference had traces of this paint left over from the last unfortunate few cars it rolled over, so we thought it cool to add this into our tire! 

Barn finds

Simon Gibson, Lead Vehicle Artist: Every barn find has its own story which we unveil to the player via the artistic choices we make. To realize the potential of the story, we study meticulously the brief provided by our design team. This describes the vehicle, why it was chosen, its history, how it ended up where it is, and the state it’s in. From this, we extract the key points and distill it into our mood board that we fill with research, photos, material, and texture reference.  

When undertaking our material research, we must consider all of the above, and material life cycle behaviors, and implement everything into our mood board.   

Alex Killpack, Senior Vehicle Artist: The first discoverable Forza Horizon 5 barn find is a Volkswagen Beetle, or more commonly known in Mexico as a Vocho. 

This barn find vehicle is from our ‘Vocho’ Horizon Story. In the story we see one of the Horizon Festival ambassadors set out on an exploration mission to find her great grandfather’s old car which was lost almost 70 years ago. Throughout the storyline, we discover that he did everything in his beloved Vocho. From rallying, to off-roading, drifting, and even drag racing! 

By working with the design team throughout the development process and extracting the key ‘art’ points from the story, we can start to develop the objectives that will be constantly referred to throughout all of the development stages. With that in mind, the car will be found halfway through its drag racing conversion, which includes an exposed rear-engine, custom rear wing, trumpet exhaust system, and an anti-wheelie bar. 

The asset will also need to show signs of general material degeneration from nearly 70 years of neglect including rotten shut lines, rusted areas of exposed bare metal, disintegrating rubber, and an overall layer of faded paint primer that covers most of the body panels. 

The final layer of detail is to show signs of general environmental build-up, including moss, mold, and algae covering most upper-facing surfaces due to the damp barn environment. 

After an extensive modeling process, we set up the asset for texturing within Substance 3D Painter. This is where we assign the different materials and create a material ID map. Using the game model and photo reference as a guide, we group the materials that appear on multiple elements and create an ID map from this that will be used to populate the Painter file with all the base pristine materials. 

Alex Logan, Senior Vehicle Artist: Once inside Painter we always follow the same principles for each barn find: layers; we build the scene in layers as it would be in real life. Starting with the base materials, we use the color ID map created earlier to quickly define metals, plastics, rubbers, painted surfaces, and so on. These PBR materials are created pristine at this stage; the scratches, dents, and degradation happen later in the vehicle’s life, and we follow the same principle here. 

The story reveals that we find the vehicle mid-way through conversion, so the paint has been stripped back, sanded, ready for the painting process. Some of the severely damaged panels have been replaced, such as the left door, and some have been removed entirely. In this condition, there is less protective paint and the vehicle will succumb to rust faster. 

With this in mind, we start with a new ‘Primer’ layer group, applying the stripped-back primer paint with rough sanded areas. Using the layer groups of Substance, we can easily manage, refine, and revisit any part of the process at any time, the procedural backbone of Substance allowing us to dynamically increase/decrease the effect. 

This is a classic 60s Beetle, the materials used in this era and of this age will suffer heavily from rust and rot, particularly with the barn being quite damp. With what once started out as a rust generator, we built upon this to create our own Smart Material. We now have a library of Smart Materials to cover many material types; these Smart Materials can quickly be shared and used in other barn finds. This allows a consistent visual across assets and provides a great platform that we can expand upon. With any procedural generator though, we never just leave it at that; as good as it can look, it still looks generated. It lacks that artistic touch.

With the library of brushes and textures available within Painter, we can add that refinement; this is an exciting step, applying a traditional skills element to the process. An example of this would be important details, such as the layering of rust at different stages, heavy rust and rot, the cracking paint, and the bubbling underneath the paint. We want to give that almost tactile feedback to the player; visually they could feel the delicate paint flake. If they brushed against it, it would break off and crumble. 

Beyond the degrading materials, there will be mud, dirt, and grime. This could be what remains from when the vehicle was last used as well as the build-up from sitting in the barn for many years. The rather damp barn is represented with darker, wet tones to the mud, dirt, and dust. Contributing to this is a thin layer of moss growing on the upper surfaces. Each of these textural elements is again controlled in its own layer group; these are further defined into sub-layer groups, focusing on different areas of the car. 

Once textured, the car is reviewed by multiple team members and fed back upon. The non-destructive setup and layer grouping allow us to dive back into the Substance scene and quickly focus our refinements. 

There are further steps beyond Painter to achieve the final visual you see in-game, but texturing is always a crucial stage of our barn find pipeline. Painter has allowed our artists to express their creativity and execute the deep storytelling that barn finds require. This has led to the most complex, beautiful, and exciting barn finds in a Forza Horizon game to date. 

Final words

The whole team here at Playground Games is absolutely elated and extremely humbled by the amazing reception the game has received. Forza Horizon 5 is an enormous game brimming with beautiful content, and we couldn’t have done this game justice without the use of Substance 3D tools. We look forward to new and improved ways we can use Substance in future projects! Thank you. 

Read more