Ken Jiang from Eidos Montreal (Square Enix) talked about his work with Substance Designer. He gave a full blown step-by-step description, showing how you can approach the production of high-quality materials for your games. Ken is an avid user of procedural tools, so he can definitely share a lot of great advice for surface artists.
My name is Ken Jiang, I am from Taipei, Taiwan, and currently work at Eidos Montreal – Square Enix as a technical artist. I went to Centre for Digital Media in Vancouver, Canada to study game production and was offered a tech artist position at XPEC Entertainment upon graduation, where I had the opportunities to work on multiple outsourced projects, especially Final Fantasy XV for three years. Inspired by my peers and pioneers in gaming industry, that was the time I started to explore the procedural arts experimenting different ways to improve our asset workflow and found myself grown into it. I also saw the potential of how procedural tools could transform the traditional asset workflow and held internal seminars and training for our team. Since then, the same passion was also carried on to an unannounced AAA project in my current work at Eidos.
I have been learning to create procedural materials in Substance Designer. When I just started to do procedural texturing, it is kind of like solving a puzzle, trying the possibilities until you got the right combination of nodes. Sometimes the attempts may seem off track at the moment but later on, they can be the sparkle to overcome the bottleneck. It is beneficial especially in long term maintaining a frequently used/custom nodes library even with some happy accidents created unintentionally which would help the team save time from creating textures from scratch, and package them as utilities, mask generators or effect filters.
Generally speaking, you can create any kinds of material imaginable in Substance Designer and it fits in the modern AAA texturing pipeline. When you are authoring a Substance, you are also building a material as you work on multiple channels simultaneously. All the editing process is reversible and can be tiled seamlessly with dynamic resolution. Its modularity allows you to break down the texturing process into reusable parts. This feature is highly valued since the AAA projects nowadays aim to create a larger playable environment while providing high fidelity texture details. Therefore, based on its modularity, building a reusable material library would immensely boost the texturing efficiency.
I have been creating custom utilities, mask generators, shape nodes and graph templates to improve my material workflow. Here are some general guidelines that I follow while creating procedural materials in Substance Designer.
- Find the referenced photos that could clearly define the desired material expression.
- I usually spend a little time to layout the graph structure beforehand to work on the reusable parts first rather than extract them later on as the graph is more complicated.
- 80% of the time is spent here to create the low, mid and high frequency details that form the shapes and physical volume of the material and also where a lot of back and forths happen.
- Make a clean, perfect material first before you add any damage or dirt on top of it.
- Use height map as foundation to create albedo, roughness, normal and AO.
- Expose the key parameters that grants you smooth material transitions between each layer so the outputs could be easily modified by anyone to create pretty results.
For example, damage level, tilling times, dirt amount, roughness, normal intensity,
- Test the textures on a model in game to validate the rendering result.
The more complex the graph is, the more you would benefit from graph optimization which you gain some noticeable loading and graph refreshing speed.
- Look for the nodes with red-ish processing timing tag, quite frequently, these are possibly the Noises, Grunge maps and Uniform color nodes, where most resolution mistake are made because their resolution is not dictated by any primary input. It’d be best if you could reproduce the effect with lower resolution or a simplified node combos without compromising the result.
- It is a good habit trying to make your graphs readable by framing, comments and clear nodes layout. It would be easier for you to get back to it later on and for other artists who might modify them.
Multi Layer Material:
Create masks to reveal materials adding on top of the base material and get a natural blending effect with multiple substances.
- Utilize baked normal, AO, world space normal or position maps to select the area as the mask foundation while working with a specific model.
- The height map contains enough information for masking a certain area.
- Masks could be done in Substance Painter, Designer, or Photoshop, I prefer to use Designer to create most of my masks.
Overall, it is still just one way to create textures where manual tweaks are required in actual production to further brush up the quality to achieve the time balance; and unique details are still needed to be sculpted by hand or paint in Substance Painter. I have also been testing different possibilities to incorporate Substance with scan based data as well. I will keep looking for better solutions.
There are many other interesting procedural tools out there specializing in modeling or visual effects. For example, I have been creating terrain or mountain vistas in World Machine. Creating heightmap and seamless terrain masks that are almost impossible or time-exhausting to be painted by hand. Here is an example showing one of my mountain generator macros with World Machine. The custom macro allows you to take any blockout mesh or procedural noises as inputs to generate mountains procedurally with controls of the erosion strength, details and random seeds… etc in a timely manner.
The indie licenses of most popular third party procedural tools has become more affordable now. Despite that it might still take time to get through the initial learning curves until you reach the actual production quality, this could actually be an advantage since indie teams are more flexible in adapting the new tools with less burden of some “legacy”. With the integrated workflow, it is faster to create original assets then move on to other tasks as each of them usually plays multiple roles in production.