zbrush
Automate ZBrush sculpting workflows with ZScript, prepare retopology with ZRemesher, and manage mesh decimation or exports.
SKILL.mdskills/zbrush/SKILL.md
GitHubMaxon ZBrush AI Skill Guide (Claude)
Overview & Engine Architecture
Maxon ZBrush is a high-density sculpting DCC (often tens of millions of polygons). Agents should treat tools as SubTool hierarchies + SDiv levels, Dynamesh/Sculptris as topology regenerators, ZRemesher as a quad-flow contract, and Multi Map Exporter as a 32-bit displacement pipeline—not 8-bit previews. Automation is primarily ZScript (.txt / compiled .zsc), plus GoZ bridges to Maya/C4D/Blender.
┌─────────────────────────────────────────────────────────────┐
│ ZBrush sculpt → retopo → maps │
│ │
│ Geometry │
│ ├── SubTools + PolyGroups │
│ ├── SDiv multi-res / Dynamesh / Sculptris Pro │
│ └── ZRemesher + Decimation Master │
│ │
│ Pipeline │
│ ├── ZScript macros ([IFreeze] loops) │
│ ├── Multi Map Exporter (32-bit EXR displacement) │
│ └── GoZ interchange cache │
└─────────────────────────────────────────────────────────────┘
Version pins: document ZBrush year/build and plugin paths (ZStartup/ZPlugs64). UI path strings in ZScript break across versions—prefer documented plugin menu paths the studio actually ships.
When to use / when not to
Use when
- Organic/hard-surface sculpt, retopo via ZRemesher, decimation for game proxies.
- Extracting displacement/normal maps for downstream renderers.
- Batch SubTool export / GoZ handoff macros.
Do not use when
- Primary need is procedural FX sims →
@houdini. - Final PBR layer painting →
@substance-painterafter UVs. - Full scene lighting/ MoGraph →
@cinema-4d/@blender.
Operational Capabilities & Agent Directives
- Wrap long macros in
[IFreeze, ...]to suppress redraw thrash. - Decimate only after Pre-process; target % must match delivery (e.g. 20% proxy ≠ hero sculpt).
- Displacement: 32-bit float EXR/TIFF, mid 0.0 when using that convention; generate from lowest SDiv vs high.
- ZRemesher: guides + Keep Groups; fix spiral flows on cylinders before blaming the tool.
- Viewport lag: Solo / hide SubTools / Group Split—do not “just add RAM” as first advice.
- GoZ: repair path prefs + clear public cache files when send fails silently.
- Paths in macros: use studio-provided export roots; never invent privileged or credentialed shares.
- No invented serials / license servers.
Production Example: batch Decimate + OBJ export
Save under ZStartup/ZPlugs64/ (adjust export root to the user’s project path):
// Batch decimate visible SubTools and export OBJ
[IButton, "ZPlugin:Pipeline:BatchDecimate", "Decimate visible SubTools to 20% and export OBJ",
[VarSet, totalSubTools, [SubToolGetCount]]
[VarSet, activeIdx, 0]
[IFreeze,
[Loop, totalSubTools,
[SubToolSelect, activeIdx]
[If, [SubToolGetStatus, activeIdx] == 1,
[IPress, "ZPlugin:Decimation Master:Pre-process Current"]
[ISet, "ZPlugin:Decimation Master:% of decimation", 20]
[IPress, "ZPlugin:Decimation Master:Decimate Current"]
[VarSet, subToolName, [IGetTitle, "Tool:ItemInfo"]]
[FileNameSetNext, [StrMerge, "C:/Export/Decimated_", subToolName, ".obj"]]
[IPress, "Tool:Export"]
]
[VarInc, activeIdx]
]
]
[Note, "Batch Decimation and Export Completed", , 2]
]
CLI launch (install path local to machine):
"C:\Program Files\Maxon ZBrush 2025\ZBrush.exe" -zscript "D:\Pipeline\auto_setup.zsc"
Map extraction checklist: Multi Map Exporter → 32Bit displacement → lowest SDiv active → OpenEXR → verify UDIM tiles if used.
Technical Troubleshooting Matrix
| Signature | Likely cause | Fix path |
|---|---|---|
| Canvas freeze >30M polys | All SubTools drawn | Solo; hide; Group Split |
| ZRemesher spiral cylinders | Missing guides / groups | ZRemesher Guides; Keep Groups; Detect Edges |
| GoZ silent fail | Bad app path / cache | Preferences → GoZ paths; clear GoZ_ObjectList.txt |
| Stair-step displacement | 8/16-bit map | 32-bit EXR; correct SDiv pair |
| Holes after Dynamesh | Open mesh / non-manifold | Close Holes; Dynamesh resolution pass |
| Macro clicks wrong button | UI path drift | Re-record paths on pinned ZBrush build |
Best Practices
- PolyGroup early; split heavy heroes into SubTools by material/region.
- Keep a non-decimated sculpt archive; export proxies separately.
- Document mid-value and tangent space for map consumers (Maya/C4D/Blender/Unreal).
- Prefer GoZ or FBX/OBJ with scale notes (ZBrush scale traps are common).
- Store macros in version control as
.txtsources; compile.zscin-tool.
Limitations
- ZScript is UI-automation fragile across versions and locales.
- True headless farm sculpt is limited—expect interactive or scripted GUI sessions.
- Stop and ask if license activation, network ZStartups, or client export roots are missing.
Related Skills
@substance-painter— PBR texturing after UVs@blender/@cinema-4d— downstream mesh/lookdev@houdini— procedural secondary FX on exported geo@unreal-engine— game displacement/normal consumption
Agent Operational Directive
MANDATORY: Use
[IFreeze]for batch SubTool loops. Export hero displacement as 32-bit float. Fix GoZ paths/cache before rewriting meshes. Never invent Maxon serials or credentialed export URLs.