UE5 / Recipe / Character Surface

Semi-Realistic Skin for UE5

A character skin material recipe between stylized and realistic: soft color zones, controlled roughness, subtle pore detail, blush masks, and restrained specular.

Recipe baseline

Visual slot reserved

The future reference should show soft color zones, controlled cheek/nose highlights, and just enough skin texture to avoid plastic.

01

Visual Target

What we are building: skin that keeps a soft stylized read while borrowing realistic controls: color zones, roughness variation, micro detail, and a specular response that does not become oily.
Image placeholder: semi-realistic skin lookdevGenerate later: neutral character bust, soft skin color zones, subtle pores, controlled nose/cheek highlights, 16:9 landscape, no text.

Semi-realistic skin is a balancing act. Too smooth becomes plastic; too much detail breaks the stylized face.

02

Use Cases

CharacterHero facesUse for characters that need more material depth than anime skin but not full scan realism.
LookdevStylized realismGood for games that use realistic lighting with simplified facial forms.
ProductionSkin instance libraryCreates a shared control set for tones, blush, oiliness, and detail intensity.

03

Mental Model

Semi-realistic skin lives between two failures

If it is too clean, the face becomes plastic. If it is too detailed, pores and scan noise fight the stylized facial shapes. The recipe is about controlled life, not maximum realism.

Color zones carry emotion

Cheeks, nose, ears, lips, under-eye areas, and joints need subtle hue shifts. These zones often make a character feel more alive than adding another pore normal layer.

Specular changes facial planes

A misplaced cheek or forehead highlight can alter the perceived expression. Specular should be masked by region and reviewed under the real game lighting setup.

04

Graph Steps

Base toneColor zonesRoughness regionsPore detailSpec maskOutput

1. Start with a calm base skin tone

Use a clean base color without baked lighting. Keep the tone simple enough that blush, lip, and under-eye masks can add life without becoming muddy.

Beginner check: preview the face with only base tone and lighting. It should feel stable, not gray or overly red.

2. Add color zones as soft masks

Blend warmth into cheeks, nose, ears, lips, and joints. Add cooler or darker shifts under the eyes only if the character design supports it.

Why: these zones communicate blood flow and softness without needing realistic skin simulation.

3. Control roughness by facial region

Nose, forehead, lips, cheeks, and dry areas should not share one roughness value. Use masks so highlights appear where they support the form.

4. Add micro detail at low strength

Pore normals and fine color breakup should be subtle. Review from dialogue and gameplay distances; if the detail only looks good in extreme close-up, expose a strength control.

5. Keep specular from fighting expression

Use a specular or oil mask to avoid accidental shine on cheeks, under-eye areas, or stylized flat planes. Strong highlights can make a calm face look sweaty or tense.

6. Build one instance language for skin tones

Expose tone bias, blush amount, roughness bias, pore strength, and spec amount consistently so different characters can share the same master safely.

05

Artist Controls

06

HLSL Sketch

float3 tone = baseSkinColor * skinToneBias;
float blush = Texture2DSample(maskTex, maskSampler, uv).r;
float oilMask = Texture2DSample(maskTex, maskSampler, uv).g;
float poreMask = Texture2DSample(detailTex, detailSampler, uv * poreTiling).r;

float3 color = lerp(tone, blushColor, blush * blushAmount);
float roughness = lerp(baseRoughness, oilyRoughness, oilMask * oilAmount);
float normalStrength = lerp(1.0, poreNormalStrength, poreMask * poreAmount);

float specMask = saturate(oilMask * specAmount - blush * specReduceOnCheeks);
return float4(color + specTint * specMask, 1.0);

07

Senior Notes

Lighting setup changes the whole read

Skin should be reviewed under the same lighting family used in-game. Studio-only tuning can make the face look great in isolation and wrong in the actual level.

Do not hide sculpt problems in the shader

If face planes are wrong, material tricks will not fix expression readability. Use the shader to support good forms, not to repaint them.

Subsurface is not a magic slider

Subsurface or profile-based skin can help, but it must be balanced with color zones, roughness, and lighting. Too much scattering can flatten stylized facial structure.

08

Common Mistakes

  • Adding pore detail before color zones and roughness regions are working.
  • Using one roughness value for the whole face.
  • Letting specular highlights overpower facial expression.
  • Treating semi-realistic skin like either anime skin or full scan realism with no middle language.
  • Approving skin only in a neutral preview scene and not under final game lighting.