Visual slot reserved
The future reference should show soft color zones, controlled cheek/nose highlights, and just enough skin texture to avoid plastic.
UE5 / Recipe / Character Surface
A character skin material recipe between stylized and realistic: soft color zones, controlled roughness, subtle pore detail, blush masks, and restrained specular.
The future reference should show soft color zones, controlled cheek/nose highlights, and just enough skin texture to avoid plastic.
01
Semi-realistic skin is a balancing act. Too smooth becomes plastic; too much detail breaks the stylized face.
02
03
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.
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.
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
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.
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.
Nose, forehead, lips, cheeks, and dry areas should not share one roughness value. Use masks so highlights appear where they support the form.
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.
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.
Expose tone bias, blush amount, roughness bias, pore strength, and spec amount consistently so different characters can share the same master safely.
05
06
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
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.
If face planes are wrong, material tricks will not fix expression readability. Use the shader to support good forms, not to repaint them.
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