Video summary
How To Use Toon Shading New In UE5.8 - Unreal Engine 5.8 Materials Tutorial
Main summary
Key takeaways
Tutorial overview: Toon / “Tune” Shading in Unreal Engine 5.8 (UE5.8 Materials)
- The tutorial demonstrates how to create stylized toon shading in Unreal Engine 5.8 using a new built-in “Tune” shading model.
- The Tune shader is:
- engine-integrated (not a custom shader post-process)
- customizable via a Tune Profile setup
- not a post-process material, meaning it must be applied per material/object rather than affecting the whole scene globally.
- Core goal: clean, fully dynamic, stylized lighting that still responds naturally to the environment.
In other words: you get toon banding behavior while keeping UE’s real-time lighting responsiveness.
Key capabilities and behavior
Lighting band control via a custom ramp
- The shader uses a custom “tune profile”, particularly the diffuse ramp, to control:
- where shading bands begin
- band softness/contrast
Band breakup / stylized detail
- Bands can be broken up using an offset texture (e.g., noise) for a more painterly feel.
- The tutorial also explores possibilities such as:
- halftone
- cross-hatch–style effects (by experimenting with textures)
Automatic response to dynamic lighting
The toon shading model reacts automatically to:
- colored lights (including point lights)
- dynamic shadows
- lighting changes like day/night behavior and Lumen response
Material setup steps (what the tutorial does)
- Create folders in the Content Browser:
Materials→Tune→ create a new materialM_Tune
- Use Substrate:
- At the bottom, connect/use Substrate Tune BSDF (where “Tune shader happens”).
- Promote key PBR inputs to parameters for easier Material Instance tuning:
- Base Color (default set to 0.5 gray for testing)
- Metallic (default 0)
- Specular (default 0.5; typically recommended not to change)
- Roughness (default 0.5, later adjusted)
Recommended parameter guidance (practical tuning notes)
Metallic
- Avoid going to 1.0 in many cases.
- Suggested middle ground: 0.8–0.9.
- For some texture sets, metallic = 1 can look “too realistic” and break the style (the tutorial later adjusts to ~0.3 as an example).
Roughness sensitivity
- Roughness strongly impacts reflections.
- If metallic is high and roughness is too low, results can become too realistic.
- Example lower bound suggested: ~0.35–0.4 (depends on the desired look).
Specular
- Usually left at 0.5.
- Optional approach:
- set to 0 if you want to remove highlights
- or “lock it” in the graph
Tune Profile authoring (the banding system)
- Create a Tune Profile asset via the Tune Profile dropdown and save it in the
tunematerials folder. - The most important control is:
Diffuse Ramp
- The default ramp is described as already “really nice.”
- The tutorial shows modifying it for:
- a two-band / sharper cel look (deleting intermediate keys and aligning black/white near ~0.5)
- a softer falloff look (reshaping the ramp)
- There is a Reset option to recover defaults if ramp edits go wrong.
Diffuse ramp offset texture (adds painterly/crosshatch variation)
- A diffuse ramp offset texture distorts/breaks up bands.
- Examples shown:
- Noise texture (increasing strength increases visible band breakup)
- a Sphere render mask to simulate halftone-like/patterned shading
- Key experiment knobs:
- texture choice
- scale
- strength
- possible inversion for better results
Specular ramp + shadow + GI controls (Tune Profile details)
Specular Ramp
- Can be left alone for smoother specular.
- Optional: use noise to distort specular falloff (example strength ~0.1).
Shadow extinction
- Mostly left at default (example value: 10).
- Controls how/where shadows fade.
Global illumination (Lumen integration)
- Set up so toon shading works with Lumen.
- Diffuse indirect scale:
- 1 → reacts to Lumen indirect lighting
- 0 → reduces/changes indirect influence, but may cause artifacts (e.g., streaks/falloffs)
- Diffuse ramp includes shadow:
- when enabled, you get proper banding inside shadows
- the tutorial prefers this ON
- Specular indirect scale:
- example issue: unwanted glow/brightness on striations
- setting to 0 removes glow (the tutorial temporarily adjusts diffuse indirect scale to maintain the desired look)
Texturing workflow (mapping character textures to Tune shading)
- Uses a PBR texture set approach:
- Base color (diffuse) texture
- Normal map
- MRA texture (packed metallic/roughness/AO channels; channel order may differ by asset)
- Example packing assumption (tutorial’s character):
- Metallic = Red
- Roughness = Green
- (AO also packed, but may be ignored)
- Graph usage:
- multiply operations combine diffuse/base color with texture-derived channels
- Ambient Occlusion:
- intentionally not used for the toon look (it adds gradients/fades that may undermine the style)
Normal strength control
- Uses a FlattenNormal node with a parameter (default 0):
0= no change- negative values can increase perceived normal strength
Handling multiple material slots / texture sets (example: Quinn A/B)
- The character/mannequin uses multiple material slots.
- The tutorial initially applies one set and notices mismatches on some body parts (due to different texture sets).
Solution:
- Create a Material Instance (child) for the second slot (“Quinn B”) from the first (“Quinn A”).
- Convert textures to parameters (diffuse/base color, MRA, normal), so the instance can swap them.
- For “B”, assign the second texture set for the missing body regions.
Environment / lighting tests shown
- Changing sun/sky position shifts toon bands:
- lower light → warmer tone due to sky atmosphere colors (e.g., “golden hour look”)
- Nighttime test:
- works as expected depending on the scene’s lighting setup
- “no light = no effect”
- Point light test:
- a point light produces toon bands immediately
- changing point light color correctly tints the character
- multiple lights can be used simultaneously
- highlighted as an advantage over many “custom toon shaders”
Substrate extra features demonstrated
1) Emissive (and Lumen compatibility)
- No emissive texture exists on the character, so the tutorial repurposes the MRA channels.
- Emissive is built by using an inversion style operation like:
- 1 - (texture channel) to invert the pattern so only certain thin lines glow.
- Emissive works:
- during day/night
- visible at night
- with Lumen
2) Pattern UVs control
- Default behavior:
- uses mesh UVs to wrap the diffuse ramp offset texture.
- Alternate coordinate options:
- World position:
- pattern stretches in certain directions
- can appear “anchored” oddly as the character moves
- Triplanar mapping (shown as a UE 5.7 method):
- uses a coordinate basis including pre-skinned mesh position so the pattern stays consistent on skinned meshes
- recommended value: 3 (“pre-skinned”) for animated/skinned characters
- World position:
3) Anisotropy (specular highlight shape)
- Promoted to a parameter (adds extra cost).
- Effect overview:
0= round highlight- positive = stretched horizontally
- negative = stretched vertically
- Suggestion: avoid unless needed; remove the parameter if not experimenting.
Main sources / speakers
- Velocity (host/tutorial speaker) — Pitchfork Academy
- Patreon/community references mentioned:
- Velocities Vault
- Misozo’s Patreon
- Pitchfork Academy public Discord