Cauldron:
Custom
Material Editor

Unreal Engine, C++, Materials

Cauldron /kôl′drən/ - born from an artist-designed material that cut down the UV’ing time and reduced the need for many (if any) textures.

History

A material system was created using masked material layers to define color and surface definition to each section of a 3-by-3 UV grid. It allowed the artist to quickly lump UV islands into their respective section to define areas of the model for leather, glossy dielectric, various metal types, etc. While the initial material setup was a great start, it did have some pain points for both the artists and for performance. Also, the material layer system broke nearly all of the material instancing and was without support from Epic in UE5 as they deprecated it.

I decided an overhaul was needed. But having over two hundred instances to reparent, it would need more than just a retooling..

Issues to solve:

  • Eliminate the need for artists to manually edit many, many material instance parameters

  • Material instancing broken by any variations in material layer functions order or reassignment

  • Current parent material creates an extreme amount of instructions

  • Reparenting instances would require a converter to translate layer parameters to new, simplified setup

What was done:

  • Custom tool UI created for quick instance editing, with options to open from the tool menu or via right-clicking the material instance

  • New parent material(s) with parameters that keep instancing intact, including reduction of static switches

  • By eliminating material layers and simplifying the node setup, hundreds of instructions were cut

  • Reparenting helper created using editor utility widget blueprint

The User Interface:

  • Connects with a custom material set up so the artists are not required to open or edit manually

  • Easy parent material switching for select contexts like main character, NPC, weapons, etc

  • Main color and two accent colors (opted into with red and green vertex colors) per tile

  • Grid UI is clickable for easy editing of each color

  • Textures are opt-in per tile for color and normal maps

  • Surface definitions per tile with custom and user created presets saved in the editor settings

  • Debug function to aid in visualizing grid position on the model

Material Setup

  • Simplifies UV’ing and reduces the need for textures

  • Eliminated material layers

  • Tiles are masked using UV coordinate math

  • Two accent colors separated by vert color

  • Surface definitions stored in two vector4’s

  • Texture additions are open under their own parent variation

  • Saves hundreds of instructions versus previous version

  • Fewer static switches, very few unique instances

Reparenting Utility

  • Multi-selection for batch process, speeding up retroactive reparenting work

  • Caches parameter and surface definitions from each material layer, reparents the instance and applies those parameters to the new material format

  • Displays current selection’s layer function names for debugging potential issues

Functionality Demo Video

*

Functionality Demo Video *

🡸 Portfolio

Harvest 🡺