Art Direction

Portfolio

Art Direction & Technical Art

Homestead Arcana - Environment Art Pipeline

 

This pipeline allowed my team to greatly increase the visual quality and variety of game environments quickly, efficiently, and with ample artistic control.

 

Summary

Homestead Arcana is a game about exploration and discovery in environments that are equal part Ghibli and Americana. When I joined the project, the game’s environments did not live up to this promise. Leveraging Shader Graph in Unity 2021, I built a material-driven art pipeline to enable a team of artists to inject character and detail into the game’s environments while also introducing workflow efficiencies and gameplay performance optimizations.

Starting Point

I joined the team at a point where the game had yet to meet the visual goals set out in its early vertical slice, but with dwindling time remaining to course-correct. Scope changes during production had left environments stranded, with various zones lacking both visual specificity and overall visual unity with one another.

The environments I inherited had three critical issues:

  • Lack of surface detail and raw visual interest.

  • Missing cohesion or "sense of place."

  • Blurry or muddy details on large assets, spanning cliffs, architecture, and even large trees.

I also had to consider two complicating factors: constraints on system resources, and a lack of time to detail or overhaul individual assets.

Objectives

A complete solution required three things: improved visual quality, resource-efficiency (adhere to performance constraints), and work-efficiency (accommodate personnel, budget, and time constraints).
I developed and deployed my solution first-hand before introducing it to the wider art team for full-scale implementation.

Goal Breakdown

Improve Visual Quality

  • Problem: Many environment assets did not carry visual interest, largely due to an absence or misapplication of albedo textures. Additionally, assets were not visually unified or properly situated in their environments.

  • Task: Emphasize the details of individual assets while unifying multiple pieces within the game environment. Because these assets tended to be large, I also needed to be mindful of texel density.

Improve performance

  • Problem: Due to the way levels were constructed, the game faced resource constraints and was primarily RAM-bound.

  • Task: Find memory and GPU savings without sacrificing visual quality. Due to the physical size of many assets, unique, high-resolution textures per-asset would not be an option.

Team resourcing constraints

  • Problem: We had a small team relative to the game’s size and variety of content, demanding a workflow that would allow for rapid iteration and variety without requiring artists to retread the entire asset pipeline.

  • Task: Develop a workflow that requires minimal asset re-works, and that can be deployed in-place to improve existing environments.

My Material-Driven Solution

My solution was a master material built in Shader Graph that leverages to two key ideas:

  1. Tiling textures for foundational visual interest.

  2. Mesh-specific maps to blend multiple tiling textures in a single material.

The same pipeline applied to a wide range of environment assets.

The same asset at different angles. Note how moss creates visual variation.

Stylistic Considerations

Stylistically, I identified three common layers of potential visual interest:

  1. "Base:" or general surface

  2. "Edge:" general wear or coloration on raised edges

  3. "Moss:" coloration, organic growth, or substrate present in sunken cavities

These visual layers are fairly common, especially in stylized games. But artists will often bake these qualities into a single set of mesh-specific, offline textures. This gives artists a high degree of control, but creates many unique, inflexible textures and requires a unique material (or material instance) per mesh.
My solution integrates mesh-specific maps, generic tiling textures, and world-space effects to greatly expand the flexibility and ease of implementation without sacrificing artist control.

Material Features

  1. Tiling textures define the look of each layer. Base, edge, and moss each have a diffuse texture and a normal map.

  2. Mesh-specific edge and cavity masks define fine details for raised edges and sunken cavities. Functionally, these are used to blend the base, edge, and moss layers. These masks are tunable to define the prominence and falloff of each layer.

  3. World-space directional moss is used to unify multiple assets sharing a material by applying an overall coloration in a direction defined by the artist. The effect is broken up by a tiling noise texture that's applied using triplanar projection, which is also tunable. This “moss” can also express things like sand, snow, or otherworldly corruption.

Controlling Edge and Cavity Masks

To enable one material to be used across multiple unique assets, the mesh-specific edge and cavity masks from multiple meshes are placed together.

For these maps to work on large assets with lower resolution textures, I implemented a series of clamping controls (inspired by Valve's work implementing SDFs in the Source Engine) within the master material. These allowed us to get controlled, relatively sharp masking results from med-resolution inputs, saving on memory costs.

Results and Benefits

This workflow was immediately successful in revitalizing the game's naturalistic areas, successfully creating basic visual interest, unifying assets in their specific context, and doing so without asset reworks, all by implementing and tuning a single master material.

Once this workflow was established, I built variants of the material for the game's other regions. I also experimented with applying it to late-game architecture, which encouraged creative uses of the material's "edge" and "moss" concepts. I found that the controls and adaptability of the tiling-based visuals lent themselves to a wide array of creative visual outcomes, which let me rapidly tune the look and feel of each area.

The same asset with different applications of tiling textures, edge, and moss settings. Setting up these variants took about 10 minutes.

Benefits

This workflow allowed my team to quickly dial in a specific look and feel for each of the game's areas. Artists on the team maintained full control over the final result in three key stages:

  • Tuning mesh-specific moss and edge maps in Substance Painter let artists control the transition between layers, achieving our core stylistic goal while maintaining downstream flexibility-- rather than needing to rely on a single, baked-out texture that would statically combine base, edges, and moss.

  • Generating visual variety simply by selecting different base, edge, and moss tiling textures. Artists could rapidly experiment and develop a variety of looks and hone in on the final product.

  • Fine-tuning the final look by controlling values that mediate blends between layers. In this case, the world-vector based "moss" could also be used creatively, ie as snow for mountains or sand in desert climates.

This workflow also offered performance optimizations by enabling us to use lower-resolution textures than we otherwise might, greatly saving on memory costs. Finally, this technique empowered my team to work creatively and effectively with minimal overhead.

Considerations for Future Work

While this solution worked well given the needs and constraints of the project, the core approach itself is flexible and expansible. The implementation in Homestead Arcana could also be improved in a few specific ways.

Limits:

  • World-space moss handed my artists a lot of expressive power very quickly, but could be tricky to tune and could produce undesired results from some angles. Theoretically, vertex colors could be used in addition to other controls to specify where moss and edge detail should appear. In practice, our team did not have the bandwidth to implement this degree of specificity across the game world and we lacked in-engine tools to do this quickly.

  • This version of the workflow requires per-mesh maps, and so would not be compatible as-is with trim sheets, which is another useful approach when balancing visual specificity, texel density, and resource constraints. One solution to this may be to use multiple UV sets, but I would need to do more research to be confident in a solution.

Simple Improvements:

  • Based on some operational results, base masks could be further experimented with or improved to produce new looks or different behavior from the master material.

  • To further improve efficiency, the multi-asset textures could be revised to have better packing, or we could potentially experiment with automated atlassing.

  • The triplanar moss mask could be swapped out or augmented with simple noise at varying scales, which would produce organic edge variation at a minor cost.

  • Some of the math controlling the dynamic moss (as opposed to the map-driven moss) can produce unexpected results. While this can be interesting experimentally, this is an area where the pipeline could be refined.

Growth paths:

  • Theoretically, one could continue to layer additional tiling textures depending on stylistic goals.

  • Rather than simply apply a single tiling texture per “layer,” one could implement stochastic tiling to further improve the look of large assets.