Cell Shading in Unreal

Awesome Jess, would you be willing to post up the results? I would love to see what people are doing with it :slight_smile:

Added the tutorial to the UE4 wiki, adding images is CLUNKY!

Put the Cel shader into the vehicle example game.

Cel Shaded.


Oh right, forgot to clamp the texture thanks:)

Any progress on that material setup? The vehicle picture looks good, a few artifacts here and there but possibly just the normals aren’t made for this type of shading.

Any chance to see tutorial about achieving this effect in material?


material version is up on youtube :slight_smile:

Niiiice! Thanks a bunch!

So I don’t want to act as a necromancer to this thread, but how would one go to not leave sky sphere black? Everything works fine but it left my Sky Sphere completely black.

yep, same issue here

I tried this and my scene looks kind of yellow. Maybe it has to do with what to plug in the “Emissive Color” parameter, but I’m not sure…f5de3c313cf4732de62e94eb4580bfbd4aa5f8ad.png9d93775b52dd3f0f3af8ab9b3e6a3c789d197c1a.jpeg

take another look at the tutorial, your component masks are wrong :slight_smile:

If you want to get the skybox back you need to plug it into the base colour rather than emmisive. or take the emmisive channel and add it back in the post process.

About your non post process material tutorial, you need a little update :

You connect the “set vector parameter Value” node to the construction script.
It works fine in the editor and update the light vector when moving the light in the level.
But when you launch the preview (or a build), the parameter collection is not updated and the material use the default value set in the parameter collection.

I copy paste the same block (directionnal light -> Get forward vector -> set Vector parameter value) and connect it to the “Event begin Play” too.
Doing this, the material react to the light vector normally in the game.

I imagine that if the light vector is rotating during the game (like in a day / night cycle), you’ll need to update the parameter collection somewhere too for the changes to take effect.

The yellowness is cause by allowing alpha (A) through in your component masks. Don’t select alpha.