Insight Into Our Character Art Workflow

Introduction to Frayed Edges

When I started working on the textures of Neolithic Civilian, I realized that due to our designs for the age, there were a lot of exposed clothing edges without hems. The abrupt ending of the tiled fabric texture created an awkward look. This, combined with the obvious silhouette of the low poly clothing, was an issue. The solution was simple enough, use opacity to create frayed edges to the fabric. The addition looked good on the civilian but after I was done, I thought that manually painting the details took a long time, and it was a tedious process that maybe wasn’t worth it in the long run. I attempted to find a solution while working on the Neolithic spearman. I remembered a fabric shader that I saw on ArtStation from Assassin’s Creed Odyssey. It used vertex painting to blend frayed edges or other types of fabric damage to clothing. While it’s a great method, it didn’t fit our character pipeline but gave me the idea to try translating that idea in Substance Painter.

Breaking Down the Material

The frayed edges effect consists of a single layer with a black mask, only height and opacity channels enabled and a number of layer effects added to the black mask. The main idea is painting fabric edges white in the black mask to reveal transparency and modifying the painted area with layer effects. All the layer effects can be broken down into 4 groups.

1st Group: This is the base layers of the effect. It consists of two paint layers. The first is for painting straight lines around the UV islands of the clothing, the second layer and warp layers are for modifying the base for a more organic look.

2nd Group: Using slope blur with a directional noise as a custom image input gives a nice base to the whole effect but it doesn’t do the job on its own. Various directional noise layers are added on top to get a more fibrous look. Size, balance, and contrast parameters of the directional noise effects are modified to get the desired look.

3rd Group: So far, everything except the first group is procedural and to fully address the aforementioned issues, some hand painting is needed. An Edge Pass layer is used to go over the edges of the mask with a jittery brush to remove abruptly ending strands and an Edge Polish layer is used to go over all the edges to polish the fibers up. The layer stack is topped off with a sharpen effect to reduce the blurred edges and make things slightly more readable.

You can see the effect each of these layers have on the gif below.

Each layer is applied sequentially in this gif to showcase their individual effects.

The height channel also plays an important role. It has the simple job of adding the illusion of thickness to the fibers. You can see the difference clearly below:

Height Channel is OFF

Height Channel is ON


It took a couple of iterations to get this layer stack to its current state. Despite the initial work, it has cut a lot of time by no longer requiring the tedious process of manually painting masks. That being said, there is still room to grow in terms of efficiency with this iteration of the workflow and I have some other ideas for implementing the effect.

– Halil Yigitler, 3D Art Director and Character Artist on Fortune’s Favor

Share this!

Share on facebook
Share on twitter
Share on reddit
Share on pinterest
Share on email