Tutorials
Five short walkthroughs covering the most common workflows.
1. First cel-shaded actor in 30 seconds
Goal: take any actor in your level and make it cel-shaded.
Project Settings → Rendering → Custom Depth-Stencil Pass = Enabled with Stencil.
(Restart not required.)
Select any static or skeletal mesh in your level. The Details panel should show its mesh component.
In the mesh component's Details → Rendering section:
- ☑ Render CustomDepth Pass
- CustomDepth Stencil Value =
1
The actor is now cel-shaded. Move the camera around — you'll see hard band cutoffs on shadow/light boundaries plus an outline at silhouettes.
2. Indoor / outdoor zones with ACelshadingVolume
Goal: a stronger style indoors, softer outdoors, with smooth blending.
Place Actors → All Classes → drag CelshadingVolume into your level,
positioned over the indoor area. Untick bUnbound and scale the box to cover the room.
Set SpatialFalloff = 200 cm.
In the volume's Details panel, expand Cel Look → Banding:
- Tick ShadowCurve → set
3.0(deeper shadows). - Tick ShadowEntryPoint → set
0.40(more area reads as shadow).
Drag a second CelshadingVolume. Leave bUnbound = true (it's the global default).
Tick HighlightCutoff → set 4.5 (admit more bright sun into the bands).
Set the indoor volume's BlendPriority = 10, the outdoor's = 0.
Higher priority writes last, so the indoor style overrides where the camera enters the box.
3. Sharing the CustomStencil byte with other plugins
Goal: coexist with another plugin that uses CustomStencil for outline / highlight.
The CustomStencil texture is a single 8-bit value. Reserve one bit for cel-shading — e.g. bit 7
(128). The other 7 bits remain free for other features.
Open the console (~) and run:
r.Celshading.CelStencilMask 128
r.Celshading.CelStencilRef 128
Or persist them via DefaultEngine.ini:
[/Script/Engine.RendererSettings]
r.Celshading.CelStencilMask=128
r.Celshading.CelStencilRef=128
For each cel-shaded actor, set CustomDepth Stencil Value = 128.
For actors using the other plugin's bits, leave them ≤ 127.
4. Preset workflow
Goal: save a tuned look as a reusable asset and apply it to other volumes.
Drop a CelshadingVolume, override the fields you want (Style + Lighting). The "Active Preset"
field can stay empty for now.
Click the Save As Preset… button on the volume's Details panel. Pick a folder
(e.g. /Game/CelshadingPresets/) and a name. The preset asset is created and auto-linked
as the volume's Active Preset.
On a different volume, set Active Preset to your saved asset and click Apply Preset. The preset's Style + Lighting are copied into the volume (one-shot copy — not a live binding). Edit either independently afterwards.
5. Sun / Sky / Fog overrides per zone
Goal: drop into a cave volume that changes the sun direction and densifies the fog.
Drop a CelshadingVolume over the cave entrance, scale the box, untick bUnbound,
set SpatialFalloff = 500 cm.
In Atmosphere → Atmospheric Fog:
- Tick AtmosFogDensity → set
0.3 - Tick AtmosFogScatterColor → pick a cool blue
In Atmosphere → Sun:
- Tick SunRotation → set Pitch =
-80(sun nearly straight down) - Tick SunIntensity → set
3.0(dimmer sun for cave)
Move the editor camera into the volume — overrides apply live (the subsystem ticks in the editor). Move out — sun returns to its original orientation, fog returns to its original density.