UE5 / Style Direction

Anime Skin Shader for UE5

Skin shading notes for soft anime skin, clean shadow hue, restrained specular, and readable face lighting.

UE5 first

Style Direction

UE5 is the source of truth here. Keep the graph readable first, then branch into project-specific versions only when the base is proven.

01

Goal

Target: Skin shading notes for soft anime skin, clean shadow hue, restrained specular, and readable face lighting.
Anime Skin Shader visual anchor.

Use this as the visual target before judging the graph details.

02

Use Cases

Style DirectionAnime facesUseful for close-ups where skin needs to stay soft and intentional, not PBR noisy.
Style DirectionStylized portraitsKeeps lighting choices readable when the camera is close enough to expose small color mistakes.
Style DirectionCharacter close-ups where skin must stay cleanUse when cheek, nose, and shadow planes need art direction more than physical accuracy.

03

Core Blocks

1. Skin base color

Separate color choice from brightness. It keeps palette changes safe when the effect moves between levels.

Why: artists can rebalance mood without accidentally changing the mask logic.

2. Warm highlight tint

Separate color choice from brightness. It keeps palette changes safe when the effect moves between levels.

Why: artists can rebalance mood without accidentally changing the mask logic.

3. Soft shadow hue

Separate color choice from brightness. It keeps palette changes safe when the effect moves between levels.

Why: artists can rebalance mood without accidentally changing the mask logic.

4. Controlled cheek and nose planes

Treat this as a named building block, not a hidden math island. It should be easy to preview, tune, and reuse.

Why: small readable parts make the final graph easier to review and extend.

5. Optional face shadow map

Separate color choice from brightness. It keeps palette changes safe when the effect moves between levels.

Why: artists can rebalance mood without accidentally changing the mask logic.

04

Node Graph Flow

Input dataShape signalAnimateRemap colorControl alphaOutput

Start from the signal

Get a clean black-and-white read first; color, glow, and distortion should only support that read.

Expose decisions

Every exposed value should answer a real art question: how fast, how wide, how bright, how soft.

05

HLSL Equivalent

float ndl = saturate(dot(normalize(worldNormal), normalize(mainLightDir)));
float band = smoothstep(shadowThreshold, highlightThreshold, ndl);
float3 shade = lerp(shadowColor, litColor, band);
float rim = pow(1.0 - saturate(dot(viewDir, worldNormal)), rimPower) * rimIntensity;
return shade + rim * rimColor;

06

Artist Controls

07

Production Notes

Production check: keep the read clean, then measure cost in the scene where it actually ships.
  • Preview masks by themselves before judging the finished color.
  • Name parameters the way an artist would search for them in a Material Instance.
  • Keep a cheaper instance for background, crowd, or repeated usage.
  • Write down the gotchas while they are still fresh.