We talk with the team at Splash Damage as they go through their advanced texturing workflow on the decaying world of the recently released Gears Tactics. See how they used a combination of Substance Painter, Substance Designer, and the Substance Source library to texture nearly all of the assets of the game.
Nathan: Hey, my name is Nathan Chen. My current role is principal CG supervisor at Splash Damage. I moved to the U.K. about 2.5 years ago and was working for Virtuos Shanghai before that. On Gears Tactics I spent a lot of time on characters, especially the customization system, and I’m very pleased with the results we shipped with!
Akash: Hello! My name is Akash Dholakia and I am a senior environment artist at Splash Damage. I started my career at Crystal Dynamics working on Rise of the Tomb Raider, moved to the UK to work on Halo Wars 2 and the last project I had the pleasure to work on was indeed Gears Tactics. I always wanted to work on a Gears of War game, and I am really proud of what the team achieved with the Gears franchise on Tactics.
Paul: Hello, I’m Paul Widelski. I’m a lead character artist at Splash Damage. I was an asset artist on previous Gears projects at Splash and before that I was an asset artist at Guerilla Cambridge.
Raouf: Hi! My name is Raouf Bejaoui and I am a technical art director here at Splash Damage. I started my career as a texture/shading artist before slowly morphing into a technical artist at Allegorithmic. I’ve been working at Splash Damage for the past seven years within the Technical Art department, shipping games such as Dirty Bomb, Gears of War: Ultimate Edition, Gears of War 4 and 5, and now Gears Tactics.
Raouf: Gears Tactics is a fast-paced, turn-based strategy game set in the Gears of War universe. In Gears Tactics, you step into the boots of Sergeant Gabriel Diaz as he recruits, equips, and commands his squad on a desperate mission to hunt down the relentless and powerful leader of the Locust horde: Ukkon. This new installment in the franchise takes players in an immersive, character-driven story in which your squad must outsmart the Locust Horde in brutal turn-based tactical combat.
Paul: From the character side, Gears Tactics follows the existing art style of the Gears franchise, trying to capture the grittiness of the earlier entries. A term that popped up a lot was “exaggerated realism.” Our characters and their clothing were realistic but dialed up. Our characters were the upper end of bodybuilder physique; their armors and clothing were battered, dirty, and used; everything that could happen to them has happened to them. It was a delicate balance keeping to a gritty aesthetic and not falling into a muddy, noisy mess.
Raouf: We wanted players to experience Gears from a new perspective — it had to be recognizable and feel authentic to the franchise. Every environment tells a story of conflict: Our various art disciplines spent a lot of time iterating on our level design to add height and depth to our environments; creating rich overlaps and parallax; using light, shadows, and volumetric effects to “sculpt” and emanate detail whilst adding life and movement to provide a rich image quality. Every character appears forged in battles, with bold characterization (and customization options), epic villains, and a strong, memorable band of heroes.
We aimed at achieving a design that would be both rich and exaggerated, capturing the already established Gears aesthetic and creating an iconic imagery for the franchise. Delivering a Gears experience in the tactical genre also introduced a new set of challenges: We had to put an emphasis on strong silhouettes and vibrant colors, heavily relying on bold details and forms to make the action readable from the isometric camera whilst maintaining a credible, AAA look from a third-person and cinematic cameras.
Akash: Destroyed Beauty. We used this phrase a lot when we started making Gears Tactics. The Gears Universe is actually very beautiful with intricate patterns and trims. Even after the destruction, we wanted to keep that beauty in it and not just make it into a rubbly mess of dirt and concrete. Even the most unspoiled areas will display some dramatic scars of war, while the most devastated places will still maintain traces of hope. Every environment should tell a story of conflict in the end.
Why we used Substance
Raouf: Many of our Artists have started using both Substance Painter and Substance Designer months before production started on Gears Tactics. Adoption has rapidly increased amongst all our projects at Splash Damage; I was pleasantly surprised to see that most of our artists were already proficient with both software, as they either had previous professional experience or have used them at home for personal projects. Although Photoshop was still the primary texturing package for Gears of War 4, some of our artists started using Substance Painter more and more during the production of the Title Updates (DLC Multiplayer maps), while our partners at The Coalition were slowly starting to integrate Substance within their pipeline for Gears 5.
Check out the texturing workflow of The Coalition on Gears 5 here.
While we had the freedom to adjust the content creation pipeline for our needs during preproduction on Tactics, we also aimed to converge part of our workflows so we could leverage both the technology and collection of assets from Gears 5 to give us a head start. Particularly, our character art shading workflow has been entirely designed around the capabilities of the Substance toolset. Unreal Engine 4 integration allowed us to prototype customization features at very early stage in Substance Designer, import a .sbsar in the Unreal Editor and iterate upon that. On the other hand, Substance Painter has a fantastic project management structure that allowed us to customize it for our needs, but most importantly create a coherent set of tools and a library of premade assets that could be shared across multiple disciplines and studios, which allowed us to reduce tremendously iteration times on asset creation and maintain consistency across all of our content between our studio and external partners.
Paul: Substance was really just kicking off in the year before I started working on Gears Tactics. I had been using it on previous projects and could really see it being integral to our pipeline. I wanted the entire character art texturing pipeline to be centered around Substance. From the first armor I created for Tactics I was already saving smart materials that were used across the rest of the project. It helped us iterate very quickly and maintain a level of quality with the character art team and our outsourcing team.
Akash: The Substance Toolset is pretty much the gold standard and as most, if not all, artists are already familiar with the software, it was an easy choice for us. Gears Tactics also uses the same base engine and toolset that made Gears 5 so we had the benefit of using the Material Masking System workflow. It means that we were blending tiling material swatches using different masks in the editor, similar to Photoshop. Substance Designer makes creating great looking non-destructive tiling textures super easy. We could create variations from one material graph, grunge it up or destroy it, all with a few sliders.
Nathan: We used Substance Painter to create an advanced id mask for character armors and weapons. The id mask is used in the shading part of customization system that allows artists to apply color tints and metal variations from skin data.
Here’s an example of some variants of one armor that is randomly generated from the system:
And this is an example of some weapon variants:
Paul: All of our characters were baked and textured in Substance Painter, with some filters and patterns made in Substance Designer and brought over. I set up a Substance Library that was on our shared network that the character art team and outsource team could all use. This contained mainly smart materials, but also filters, patterns, brushes and export settings. Below, I will go over a typical set up for a character in Gears Tactics.
Here we have the completed “Cadet” Armor. Each group in the layer stack represents a smart material:
At the start of Tactics, I created a smart material library, updated existing materials, and added new ones over the course of the project.
The smart materials make heavy use of curvature and ambient occlusion maps, so these are baked before beginning texturing. Each smart material contains layers of effects that combine together to make a convincing material.
Each smart material is masked off for the relevant area, this means we could quickly drag and drop smart materials and assign them.
We also had a few filter tools to check whether the materials were balanced for PBR and if the armors tinted correctly.
Once our textures were completed, we would export them using a preset.
Akash: For environments, all the new assets and textures we created were made in Substance in one form or another. We used trims and tiling textures extensively and most of the architecture was built like that. Take trims as an example: It was made in Substance Designer with masks to change it to any material in the editor. Here is an example of floor trims. Albedo values were kept in a simple and neutral range so that we could modify the material in the editor if we chose that route.
In this way, we had full control of how we want our material and create whatever variations we need. Here is an image of our material editor window with the same textures from Substance Designer. Here, I have used the masks to tint specific areas that I can change anytime. I can also now add grunge and grime, and other smaller details to make this look finished.
Some assets were baked from high-poly using a more traditional pipeline and, for that, we used Substance Painter to do the baking as it was quick, gave us great results, and baking assets individually by name was a life saver. We also created RBG masks for it to be later used in the editor in our material layering system to do basic edits.
Here is an example of that workflow with the “COG Barricades,” done by one of our artists, which is pretty straightforward but it shows how effective this workflow is and how easy Substance Painter makes this whole process.
While the normals are uniquely baked, we spit out masks in an RGB mask texture. With our material layering system, we can have as many RGB mask textures as we want and are not limited to only three to four masks. In that way, we can have full control in the editor to create variations, change amount of edgewear or rust, and add or remove decals and other unique details.
Integrating Substance into the pipeline
Akash: I will take Substance Designer as an example as it was not the first time we used it in production. With a front-loaded approach to texture creation, a little bit of planning went a long way in creating variations from a single Substance Node Graph. No longer we had to be perfect the first time as it is never that way in game design. The whole process of getting feedback on a material to the specific changes implemented in-game was very quick. Floors played an important role in Gears Tactics, as the game was mostly top-down and the tiling and albedo values needed to be balanced a lot for readability versus noise and interest.
Here is a quick example of a few stone floor textures created by just changing the initial shape and a few parameters.
The images above are all created from a single graph by just tweaking some parameters. I could have gone even further and made them all cracked and destroyed or changed the initial shapes for something else.
Raouf: As stated previously, we’ve gradually integrated Substance in our pipeline throughout the production of two previous projects. Although we still had to support our old Photoshop-based workflow while transitioning over to Substance, Tactics became the first project at Splash Damage where Substance became the standard for texturing purposes, and although we still had to support some of the Photoshop tools for compatibility reasons, the use of the software has slowly been reduced during production and there is no more active development from a workflow/tools standpoint.
Substance Designer, for instance, has become our go-to software for procedural noises and textures creation used in most of our VFX materials. Custom FX maps have been the foundation of some of the systemic approaches we took in building our real-time weathering systems or to complement our use of volumetric lighting.
Here we are showcasing our weathering system, which we made heavy use of custom noises created in Substance Designer. Vertex color blending was not an option for puddles as most of our levels are tile-based, with a random generation at run-time. The material definition gets changed globally at run-time on all our environments and characters to portray the effect of rain and wetness. Noises are used to mask out puddles and wet regions, while rain drips and drops have been animated in Substance and exported to Unreal as flipbooks.
The new 3D noises in Substance Designer also came in handy when we integrated the volumetric fog feature from mainline Unreal 4.
We used a combination of 3D Perlin noise with a “pinch” of curl to give it a fluffier look while a wider 3D Worley noise with adjustable cells sizes breaks up the tiling pattern across a large surface. From there we generated a pseudo-volume texture by “slicing” the volume in X, Y, and Z using two sets of three channel packed (R, G, B) 4×4 flipbooks as we couldn’t afford the memory footprint of an actual volume texture. This was applied to a large cube with a volumetric material using a height/position aware function to sample the right “slice.” (See Ryan Brucks’ excellent blogpost about creating pseudo volume textures with SubUV in Unreal.)
Each lighting level was given a box encapsulating the entire environment with this material; on a slightly different note, I must say that the 3D Cube G-Buffer came in really handy for previewing these volume textures in Substance Designer. The same set of textures was used for our primary light sources in overcast lighting condition with animated clouds shadows, something that helped us give our lighting an extra layer of depth, further enhancing the feeling of a living world.
Lastly, Substance has been a key part of our prototyping phase during preproduction. Our entire character shading customization, from tinting and patterns to wear and tear effects, have been prototyped in Substance Designer. The Unreal Engine 4 integration allowed us to import a compiled .sbsar file with all customization options exposed, which significantly reduced the back and forth between the Editor, in which our artists could iterate on the content based on art direction’s feedback and the texturing app. Although we did not end up using the Substance Engine at run-time, being able to preview and tweak shading parameters within the comfort of the Unreal Editor allowed us to prototype an entire system with minimal code support and set expectations for the project at a very early stage.
Learn more about the use of Unreal Engine on Gears Tactics here.
Paul: Substance has a lot of time-saving aspects built into it and is very flexible. A big time saver was having a smart material library, we could iterate on existing smart materials and make new ones. Baking being lightning fast meant we could assess baking errors and fix them without losing too much time. Being able to set up export presets to correctly pack our textures meant we didn’t have to manually do that every time and we could export them straight into our correct folders. Since our pipeline was so robust with Substance, we could accurately predict how long it would take to texture an asset, and time was rarely wasted. Not only was Substance used for objects and armors — it was also used to make organic textures, such as for the new locust types.
Akash: Substance Source was used near the end as some of the textures we had in game weren’t looking great. It was very easy to set that up and tweak it in Substance Designer to get exactly what we wanted. Here is an example of a floor in Act 2. It was great to prototype floors using high-quality scans rather than spending a week creating something from scratch. It’s all about the flexibility of using Substance Source materials as in this case, they just worked out of the box and having a proper height map, blending with sand gave us the desired results.
Early on, we ran into a problem where some of our tiling textures needed to be tiling from the middle too, especially for walls and that is where Substance Designer came to the rescue. For example, let’s look at the modular walls: There were the standard 384 x 384 unit walls, but we also had 192 x 384 unit wall pieces that needed to tile with each other and the standard walls.
In Substance Designer, it was quick to fix that with a collection of basic nodes and we saved that in its own node and refined it a bit later. Here is an example of how basic but effective it was when used on the wall plaster material in Vasgar. As all the floors were in World Space, we used this method in some cases as it was cheap and effective.
Shown in the image below, I am using a gradient as an alpha to blend two versions of the texture in the middle. One is the original version and the second one is offset by half so that the final result tiles in the edges and also in the middle horizontally. I then did that for the normal and the packed textures.
Raouf: We added supported for Skin Microstructure Deformation (based on this research, Nagano et al. 2015) for our skin shader at a fairly late stage during development whilst we were polishing our real-time cinematics. On top of the wrinkle maps and blood flushing support we’ve inherited from Gears 5, we’ve added an extra layer of detail for both our Normal and Smoothness channels by using three scanned materials from the Substance Source library:
From left to right: Cheek, Forehead and Chin tiling materials.
We overlaid these materials (Normal + Smoothness) on top of our base normal and wrinkle maps using the blendshape regions to mask each detail map. In order to stretch and compress these details maps based on facial expression by adjusting the tiling independently on U and V to mimic anisotropy on wrinkles, we coupled the wrinkle maps region masks with a convolution map generated in Maya – A script stores the position of all vertices at each frame of a ROM (range of motion) animation, then computes a kernel using two-pass separable convolution.
This is better seen in motion where you can see the material definition dynamically adjusting for each region of the face depending on the facial expression:
Paul: In order to tell UE4 where to color or add dirt or rust on our armors, we used a greyscale mask that contained a different grey value depending on what area it is. We called it a “Tint Index.”
To streamline this, I created a smart material containing all the correct grey values.
We then made use of anchor points — which could reference a layer or mask stack, effectively creating an instancing system — to use the masks we created for the smart materials to be referenced in the correct area. This meant we could keep things consistent.
This greyscale mask would then get packed in our AMST (AO, Metallic, Smoothness, Tint Index) texture.
Nathan: We have a chart (below left) for all the materials in our skin system. Each material will have a fixed value where it appears on the surface. To automate this, we used a smart material to create the id mask for armors and weapons. Bellow the bottom right image is an example of what an id mask looks like on a smart material. After baking with the meshes UV, it is packed in the alpha channel in an AMST texture (top right). For each of the ids, a designed shader will grab color tints and metal paints from skin data and distribute on the surface.
This is the raw albedo before any skin is applied.
This is after color tints being applied to all the tintable area in the id mask like the dark blue metal paint and light blue led light.
This is the end result with all the skin data being applied.
Raouf: Allow me to chime in here to add some technical details: Paul and Nathan brilliantly described how the authoring pipeline works from start (DCC) to finish (Game), but also how both the offline and online solutions complement one another. The Substance toolset allowed us to keep consistency across all assets, therefore significantly reducing iteration times thanks to the non-destructive nature of the workflow between Maya, Substance Painter, and the Unreal Editor with which we’ve exposed all the customization parameters to the end-user. Although we had to trade off some performance due to the extra shading cost in our character shader, both the memory and disk footprint gains far outweighed the sacrifices made. A typical customization material uses two BC7 textures (Albedo, AMST) and a BC5 normal map, which is roughly 64 MB at 4K resolution with 13 Mips each.
This is the upfront cost for each armor, and apart from the additional tiling patterns or decals required by some bespoke amours — these are the only textures we shipped on disk; with a traditional, 100 percent offline-based solution, this cost could have easily ballooned and could have gone exponentially with the number of tints, patterns, and weathering effect exposed to the player — our final estimations on the total savings we’ve made using this workflow was around 80 percent.
Tips and tricks
Nathan: I was using the pixel processor in Substance Designer to prototype some pixel shaders and demonstrating some shading algorithms. Here’s an example of using pixel processor to demonstrate the idea of applying tinting data on armors of the game. It samples the tint id map and fill color blocks on the mesh.
Akash: Always think about how and where you are going to use your tiling texture, the texel ratio, and the size you want. Something that looks great and highly detailed in the render might not look so great in the game when that detail starts repeating multiple times. Substance Designer makes it very easy to check tiling issues and fix the obvious tiling areas before you take it into the game engine.
Lastly, experimentation: Substance Designer is all about playing with nodes to get interesting results. You will find new and interesting ways to do something all the time, so make sure to save those happy accidents in a .sbs file.
Paul: Always break up and hand paint your generated wear masks. It will instantly boost the quality of your material.
Akash: Flood Fill node in Substance Designer. Period. It’s a life changer. I think most of my graphs pretty much use it. I rarely have to use a bunch of different software as I can pretty much make most of my materials in Substance Designer.
As for Substance Painter, there is so much to like, and I can’t think of a better software for my texturing needs: Smart materials, excellent bakers, custom templates required for specific project needs, just to name a few.
Raouf: Substance Designer comes with a collection of very useful atomic nodes (such as the Pixel Processor) and a wide range of noises and patterns; however, the ability to create our own with the FX-Map node is probably the most powerful thing this tool has to offer. Yes, they can be quite daunting to approach, but with a bit of practice, one can come up with pretty much any shape/function with it.
Paul: There were so many! The smart materials, the noises, the automated packing, GPU baked AO, etc. But a couple that were indispensable were the name matching feature for baking, I couldn’t imagine having to explode bake all these armors. Another is how Substance Painter captures all the strokes in 3D space. I could re-UV an asset entirely and still keep the masks I had already hand painted.
Substance for Future Projects
Nathan: I would like to see a live smart material library in the editor that can be tweaked and previewed in the viewport without going back to Substance Source and rebake/reimport the bitmaps. But considering the performance impact the smart materials can be convert to native Unreal materials and 2d textures anytime. It would be great to have this feature as a part of the Unreal Substance plug-in.
Akash: With next-gen systems on the horizon and technologies like virtual texturing becoming more of a norm, I am sure Substance Tools will be a big part for us going forward. With the help of high-resolution scans from Substance Source combined with tiling swatches from Substance Designer along with Substance Painter to create masks and other details, I see us depending on Substance tools a lot more and streamlining the whole process.
Raouf: I wholeheartedly agree with my learned colleague here as Epic’s recent demo running on Unreal 5 has raised a few eyebrows amongst professionals in the industry. I’ve been reading some of the old white papers such as this one (from Xianfeng Gu, Steven Gortler, Hugues Hoppe – SIGGRAPH, 2002) that inspired some of the work on Nanite; it is pretty exciting to see such an ambitious project come to fruition and potentially be in our hands in a couple of months. I’ve seen some pretty impressive displacement-based materials generated with Substance applied to minimalistic geometry. Time will tell, but I do wonder if we aren’t going to witness a paradigm shift in the way we author geometry for games: We started with basic modeling tools, then the concept of virtual sculpting came along, and now we are seeing how one can leverage a texturing app not only to shade it but also to generate geometry alongside all the other textures required for a material.
Paul: Throughout Tactics I learned that Substance excels in its use for the technical aspect of texturing as well as the artistic. I looked forward to seeing how we can make better use of the Substance Painter and Substance Designer ecosystem along with Unreal Engine to make more complex materials with more texture resolution.
Gears Tactics is available now with Xbox Game Pass for PC (Beta), Steam and Windows 10 PC and is coming later this year to Xbox.
All images courtesy of The Coalition.