Bold shapes. Graphic color. Readability over realism.
When to Use
- Cartoon games / animated props and characters
- Exaggerated silhouettes and expressions
- When anime cel language is too specific
Tenets
- Silhouette first
- Exaggerated proportions
- Limited palette, bold accents
- Soft or graphic shading (project choice)
- Detail in shapes, not micro-PBR
Handoff
character-artist / prop-artist → materials → lookdev
Reference Guide
| Topic | Reference |
|---|---|
| Shape language | references/cartoon-shape-language.md |
Recipe
Target a 1080p readable toon look: 3 light bands, saturated 4-6 color palette, one 2 cm black outline, soft studio light with a gentle bloom.
- Cel material:
toon_material.pywithbands3,rim0.2 andoutline0.02 (inverted hull, EEVEE only). - Lighting:
light_rig.pypresetstudio_3pt(readable key/fill/rim). - Render:
render_preset.pystylized_flat(EEVEE, Standard view transform). Run it after the light rig, which sets an AgX look. - Finish:
comp_grade.pypresetstylized_bloomfor slight saturation lift and glow. - Keep shape exaggeration (squash/stretch, oversized hands and feet) in the modeling, not in shaders.
import runpy
skills = "<skills_dir>" # parent folder of this skill (the plugin's skills/ directory)
target = "SM_Asset" # object to style / dress
r = {}
r["toon"] = runpy.run_path(f"{skills}/stylized-style/scripts/toon_material.py", init_globals={"ARGS": {"name": "MAT_Toon_Cartoon", "base_color": [0.95, 0.45, 0.2], "bands": 3, "rim": 0.2, "objects": [target], "outline": 0.02}})["result"]
r["light"] = runpy.run_path(f"{skills}/lighting/scripts/light_rig.py", init_globals={"ARGS": {"preset": "studio_3pt", "target": target}})["result"]
r["render"] = runpy.run_path(f"{skills}/rendering/scripts/render_preset.py", init_globals={"ARGS": {"preset": "stylized_flat"}})["result"]
r["grade"] = runpy.run_path(f"{skills}/compositing/scripts/comp_grade.py", init_globals={"ARGS": {"preset": "stylized_bloom"}})["result"]
result = r