Ink-ready contrast. Panel-friendly staging. Halftone optional.
Tenets
- High contrast lighting for ink read
- Strong contour / crease support
- Limited screentone / hatch language in textures or comp
- Hero poses and camera angles
- Speeds lines / impacts as FX meshes when needed
Reference Guide
| Topic | Reference |
|---|---|
| Ink & tone | references/ink-tone.md |
Recipe
Target ink-ready contrast: 2 hard bands, thick black contour, hard key light, low heroic camera angle, punchy saturation.
- Ink + flats:
toon_material.pywithbands2,rim0 andoutline0.025 (heavy contour). - Lighting:
light_rig.pypresetgolden_hour(hard sun plus a cool fill gives a strong shadow shape). - Camera:
camera_rig.pylens_mm24,elevation_deg-10,fill0.8 for a dramatic low hero angle. - Render:
render_preset.pystylized_flat, thencomp_grade.pystylized_bloomwithvignette0.25. - Halftone/speed lines have no script: add a Image Texture dot pattern (Nearest, Multiply) in the material, or draw FX as separate meshes.
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_Comic", "base_color": [0.9, 0.2, 0.15], "bands": 2, "rim": 0.0, "objects": [target], "outline": 0.025}})["result"]
r["light"] = runpy.run_path(f"{skills}/lighting/scripts/light_rig.py", init_globals={"ARGS": {"preset": "golden_hour", "target": target}})["result"]
r["camera"] = runpy.run_path(f"{skills}/camera-cinematography/scripts/camera_rig.py", init_globals={"ARGS": {"name": "CAM_Style", "target": target, "lens_mm": 24, "elevation_deg": -10, "fill": 0.8}})["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", "vignette": 0.25}})["result"]
result = r