关于 scenario-zbrush-sculpting
scenario-zbrush-sculpting 是供 Agent 在 ZBrush 中执行雕刻的技能,提供从基础形体到细化的分阶段流程。它结合确定性操作、规划笔触、测量和视觉审查。
主要功能
- 01用基本体或 ZSpheres 搭建初稿
- 02规划并执行脚本笔触
- 03跨细分级别细化形体
- 04测量并检查各雕刻阶段
- 05每轮操作后审查渲染
适用场景
- 01搭建角色或生物的初稿
- 02细化主要与次要形体
- 03验证每轮雕刻后的变化
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-zbrush-sculpting安装后在 Claude Code 中输入/scenario-zbrush-sculpting确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/critique.mdexpert-notes.mdgui-paths.mdprocedures.mdsources.mdscripts/zb_sculpt.py详细介绍
ZBrush 雕刻(核心形体、脚本化笔触)
专业雕刻从大形推进到小形,并设有关卡:只有形体需要时才提高轻量网格的分辨率;以低强度薄层沿形体铺设黏土;最后才处理锐利边缘,而且绝不在薄弱的形体上做锐化。Agent 没有画笔:它会先使用精确操作(基本体、ZSpheres、DynaMesh、遮罩加 Deformation 滑块),再根据模型空间中的形体规划笔触、对准视图、测量体积,并在每次处理后检查(scripts/zb_sculpt.py)。
如果这里提到的某个相关技能不在你可用的技能列表中,请让用户安装它
(npx skills add scenario-labs/skills --skill <name>);如果无法等待,请根据工具架构继续操作,并标明这一缺口。
必备背景知识: scenario-zbrush-expert(桥接、笔触引擎、检查循环、2026 年陷阱)。
原则(专家的关键差异)
- 压力是隐藏设置。 Henning Sanden 使用 ClayBuildup Z 20 起形时,笔压可能只有「30%」(0PaYUUvgwYM 00:04:58);脚本化笔触的压力则是恒定的。黏土起步设为 Z 6,细化时降至 2 到 1;每个会话校准一次(
zs.run_calibration),检查后再调整整轮处理的效果:部分 Morph 值会使效果变柔和,负值则会加剧效果(Drust,B_wKwXwjcZs 00:05:20);图层强度在不同级别上也有同样作用。 - 横跨形体铺设黏土,沿形体画线。 Henning 表示,横向笔触会在中心形成峰值,并向边缘渐隐;纵向笔触则是在「描绘形状」(0PaYUUvgwYM 00:02:13、00:30:39)。Pablo Munoz Gomez 先沿长形体铺设大块体量,再用较小的笔触横向处理;绝不试图一笔塑造一块肌肉(tbQqC6tyDBQ 00:06:32)。每个形体都由一条中心线和一个宽度构成。
- Standard 设定边缘,Clay 塑造形体,ClayBuildup 会抹去下方形体。 Standard 会推动现有形体,因此能赋予形体明确特征(Henning,0PaYUUvgwYM 00:27:26);ClayBuildup 会替换其下方的形体,因此绝不能在细节之后使用(TpS0QdlfHWU 00:07:44)。Pablo 先用较高的 Z 值通过 Standard 设定硬边缘,再用 Clay 将其融合(tbQqC6tyDBQ 00:10:27)。
- 优先细化,而非平滑;低分辨率起形阶段除外。 Henning 通过逐渐降低强度的笔触消除痕迹,并在「足够好」时才平滑一次(TpS0QdlfHWU 00:22:26、00:22:58);Pablo 在起形阶段会随意平滑(tbQqC6tyDBQ 00:02:29)。S1 低分辨率阶段:使用 Polish 滑块;从 S2 开始处理皮肤:逐级向下处理。
- 形体仍在变化时使用 DynaMesh,稳定后再细分级别。 过早使用高分辨率 DynaMesh 会得到「一团凹凸不平的东西」(Pablo,tbQqC6tyDBQ 00:04:38),而且分辨率相对于物体大小而言(FrqUnna1jns 00:13:40)。绝不要细分 DynaMesh:它的三角形和星形极点会形成无法靠平滑消除的凸块(rArw79xEpvE 00:09:44)。复制一份并使用 ZRemesher,再细分并投射。
- 严格管理细分级别。 SDiv 1 时处理大形(在最高级别上推动形体「看起来会很怪异」);在 SDiv 2 或 3 时塑造次级形体,然后逐级向上细化;绝不要把所有工作都留到最高级别(Pablo,rArw79xEpvE 00:12:28、00:14:16;tbQqC6tyDBQ 00:12:26)。细节绝不能改变轮廓(tbQqC6tyDBQ 00:13:27)。
- 先不使用笔触。 Pablo 表示,起形时整个过程「甚至完全不使用任何画笔」(gitoJ7B8FmY 00:05:26)。对 Agent 而言,这些操作是精确的:按数量放置基本体,用代码创建 ZSpheres,使用遮罩加 Deformation 滑块,以及 Mirror 后再执行 Mirror And Weld。
- 雕刻成败取决于中频细节。 FlippedNormals 称其为细节塑造的骨干;过早添加毛孔会让你「落后两个级别」(G2o6fdoACIQ 00:05:46、00:08:17)。细节「无法弥补薄弱的雕刻」(Pablo,tbQqC6tyDBQ 00:12:50)。
首先确定
| 输入 | 影响内容 | 简报未说明时的默认值 |
|---|---|---|
| 主体 | 基础路线和点数阶梯(STAGES[...]["points"]):头部、角色 | 从球体开始塑造头部胸像 |
| 用途 | 概念设计:做到 S3 或 S4 即可,即使只有四边面也足够(tbQqC6tyDBQ 00:11:43);影视或游戏:微细节处理前先进行重拓扑(Zp07GW3rND0 00:08:22);打印:scenario-zbrush-pose-print | 概念设计 |
| 风格 | 写实:scenario-zbrush-character-creature;风格化:scenario-zbrush-stylized | 中性形体 |
| 形体列表 | zs.Form 中心线及宽度,依据简报和领域技能的比例 | 无:询问领域技能 |
头部宽度(模型单位,ref_width) | 每个笔刷尺寸 | 正视图中的模型宽度 |
| 视图 | 正视图按 [obj] 测量;其他视图需要采用 live_04 约定 | 正视图 |
工作流
每一轮:Scene.capture,制定计划(clay_pass、move_pass、crease_pass),preview_plan(查看效果),
run_plan,pass_report,zb_review.review,然后指出最薄弱的一项并修复。每个关卡都保存一个带版本号的 ZTL。
-
会话。
zb_launch.start(),设置中性状态(P1),进行校准(P2)。每一轮都关闭透视(Draw:Perspective)和 LazyMouse:其半径会吞掉合成路径的起始部分(Pavlovich AdkZe1yKFTU 00:03:31)。关卡:文档缩放为 1,存在校准结果,或已注明 v02 先前状态。 -
S0 基础。 任选其一:分辨率为 128 的球体 DynaMesh(约 43k 个点);使用
zsphere_code创建 ZSphere 骨架,以 Density 1 或 2 生成 Adaptive Skin,并将 DynaMesh Resolution 设为 0(Pablo),然后执行 DynaMesh 64;附加基本体,并通过 Geometry Position 和 Size 放置(P3)。关卡:从正面和侧面看轮廓都清晰可辨;点数符合 S0。 -
S1 初级塑形。
- 先移动,再重新执行 DynaMesh(
move_pass、remesh_due,然后remesh_code,P16:Draw 模式、清除遮罩、关闭 polypaint 以保留 polygroups,并提供已重新网格化的证明)。 - 使用 Clay 塑造各个形体(
clay_pass,预设clay_block);用雕刻形体表现眼窝(sign=-1);使用 TrimDynamic 平面(preset="trim")。开启对称:计划仅覆盖 +X 半侧。
关卡:
stage_gate("S1")通过;图纸比例正确、每个元素都齐全(G2o6fdoACIQ 00:02:50),大体块简洁明了。 - 先移动,再重新执行 DynaMesh(
-
S2 一级细化。
- 提高分辨率:按平方规律提升(
next_dynamesh_resolution),趋向 40 万到 80 万个点; 生物:将部件 MergeDown(原位操作;MergeVisible 会新建一个 Tool;其确认对话框可能 阻塞桥接 [待验证],所以先保存 ZTL),DynaMesh 设为 256。 - 依次以 Z 6、3、2、1 进行细化,并放大查看每个区域(
descent,P7);用 TrimDynamic 处理多余的凸起。 - 眼睛(P17):按编号放置眼球球体,每个向外旋转 3 到 7 度(Costa
j5XLtLMN0P8 00:29:10);用 Dam_Standard 切出眼睑,再将其向外移动,使之包住眼球
(Henning TpS0QdlfHWU 00:18:33)。Henning 在开启透视的情况下塑形(00:17:28):笔触
保持正交,其视觉效果由
persp_snapshot_code读取。 - 在进行任何重新 DynaMesh、ZRemesher 或 Divide 之前,检查风险较高的步骤并调整(P8):
点数变化会破坏 Morph Target,而
dial_code(..., expect_points=)会拒绝执行。
GATE:在 Red Wax 下形体干净,没有拉伸的面,笔触痕迹逐渐消退。
- 提高分辨率:按平方规律提升(
-
退出 DynaMesh,当形体已稳定且 S3 需要细分级别、即将进行重拓扑,或后续的大幅改动必须保留细节时。Henning 的纯 DynaMesh 细化层级方案达到 648 级,适合概念静帧: 说明所选方案及原因。细分级别(P11):保存带版本号的 ZTL,Duplicate,使用 ZRemesher 处理副本,再 Divide 直到达到
projection_ready,然后调用工具包的zb_ops.project_all(checkpoint=...),它会按安全顺序执行(保存带版本号的文件、在顶层存储 Morph Target 并新建图层、降低 PA Blur、设置关卡、执行morph_repair);切勿重新实现此流程。GATE:目标点数不少于草图中的点数,体积偏差在 1% 以内 [已添加],图层未改变,并逐级检查眼睛和嘴部(修复:scenario-zbrush-retopology-export)。
-
S3 二级细化。
- 在细分级别上(P15):使用
level_for("secondary")(SDiv 2 或 3),然后每次向上一级使用"refine";大幅修正时返回level_for("big")= SDiv 1;仅在顶层进行三级细化和图层操作。 - 在非对称处理阶段关闭对称;在大型结构上使用
pattern="two_direction";预设为clay_secondary。
GATE:
mirror_asymmetry大于零,中间带细节高于 S2,雕塑在缩略图大小下不依赖细节也清晰可辨。 - 在细分级别上(P15):使用
-
**S4 对比度。**沿褶皱使用 Dam_Standard(
crease_pass),刻得比直觉认为合适的更深 (0PaYUUvgwYM 00:19:49);在眼睑、嘴唇和眉缘的凸起 Z 方向使用 Standard(preset="standard"), 再用黏土笔刷融合;在两条切线之间使用fill_between。GATE:与 S3 相比,形状 IoU 至少为 0.98 [已添加]; 褶皱深度沿线有所变化。 -
移交 S5 和 S6,并附上 P14 包,交由领域技能处理。
数值
| 值 | 数值 | 相对于 | 来源 |
|---|---|---|---|
| 脚本化 Z,粘土 | 块面 6、细化 2、收尾 2;递减 6、3、2、1 | 专家级 Z 乘以 0.3 压力 | Henning 00:04:58;摘要推导 |
| 笔刷直径 | 粘土块面 15 到 35 %、次级 10 到 15 %、细化 3 到 8 %、Dam 3 到 7 %、Standard 1 到 2 %、Move 设计 60 到 90 %、Move 局部 10 到 15 % | 视图中的头部宽度(Draw Size 是画布像素:zb_sculpt 通过 ppu 转换);粘土保持在形体宽度的 0.5 到 1.0 倍范围内 | FlippedNormals 帧;摘要 T1 |
| ClayBuildup | FreeHand、Focal -56、Alpha 06 或 Off;Imbed 20、Roll Dist 约 6 | Henning;Morten;Pablo 帧 00:05:55 | |
| Dam_Standard | Dots、Focal -14、Zsub、Z 15(大切口为 33) | “比起始值低十” | 0PaYUUvgwYM 00:18:42;TpS0QdlfHWU |
| Move / TrimDynamic | Focal 0、Z 51 / Focal -56、Z 43 降低、Zsub | TpS0QdlfHWU 帧 | |
| 头部点数阶梯 | 43k 球体、96k 到 99k S1、400k 到 826k S2、1.6M 到 2.46M S3 和 S4 | 点数 | FlippedNormals 帧 |
| 生物点数阶梯 | 皮肤 6k、部件 28k 到 43k(DynaMesh 64 到 128)、合并后 256 = 367k、SDiv 5 = 3.8M | 点数 | Pablo tbQqC6tyDBQ 帧 |
| DynaMesh | 点数随分辨率的平方增长;限制:在 1024 立方体中细节安全,封顶 2048(约 24M 多边形) | 包围盒最长边;每个 SubTool | TpS0QdlfHWU 阶梯;DynaMesh 文档 |
| Divide、ZRemesher | 每级 x4;目标值以千为单位,5 得到 4,963 | Pablo rArw79xEpvE 00:03:16 | |
| 每次操作的 SDiv | 大幅移动 1;次级 2 或 3;三级细节和图层置顶 | 堆栈层级 | Pablo rArw79xEpvE 00:12:28、00:14:16 |
| 投射 | 目标点数应达到草图点数或更高(745k 对 400k);FlippedNormals 约 3M | VRisbJQAaZw 00:17:24;Zp07GW3rND0 00:01:02 | |
| 眼睛角度 | 每只向外 3 到 7 度,约 5 度 | 正前方 | Costa j5XLtLMN0P8 00:29:10 |
| 阶段门槛 | 无效笔触最多 10 %;边缘 cv 达到 1.5 x 时重新执行 DynaMesh;Polish 偏移 2 % | [已添加] |
质量门槛
- **量化检查:**每次操作后运行
pass_report(无效笔画、体积变化方向、视图偏移、枢轴移动、未找到设置);检查remesh_code(...)["ok"];核对点数与STAGES及该操作的 SDiv;检查stage_gate(预算、SDiv 1 以上的大幅移动、形状 IoU、非对称性、条带);检查zb_audit.verdict(..., "sculpt")、remesh_due、Polish 偏移、projection_ready。 - **目视检查:**使用 MatCap Gray 查看检查表(正面、右侧、背面、四分之三视角、顶部);查看 Flat Color 剪影,并将检查表缩至缩略图大小;使用掠射视角、Red Wax 查看笔迹,并在移动光源下使用 Standard 材质(MatCap 会烘焙光照)或使用 BPR 查看形体;使用透视外观渲染检查眼睛;查看
references/critique.md中的阶段检查清单。未查看检查表前,绝不要判定阶段完成。
常见错误
| 错误 | 表现 | 修正 |
|---|---|---|
| 将 Expert Z 当作脚本 Z 使用(ClayBuildup 20) | 出现生硬的凸脊、肌肉像是一次笔画画成 | Z 设为 6,校准后再调整笔画 |
| 沿着形体拖动 Clay | 出现绘制出的沟槽,没有体积 | clay_pass 使用交叉排线 |
| 笔画从模型外开始 | 笔画没有任何变化,视图可能会转动 | 计划会裁剪到画布蒙版;重新捕获 |
| 忘记关闭 LazyMouse | 笔画起始位置偏移,短笔画无效 | pass_spec 默认设置为 lazymouse=False |
| 把皮肤上的笔迹平滑掉 | “半光滑但有细节”,体积流失 | 逐级降低分辨率进行雕刻;仅在低分辨率或较低 SDiv 下使用 Polish |
| 在已完成的细节上使用 ClayBuildup | 线条和毛孔被抹掉 | 边缘使用 Standard;先用 clay,再做细节 |
| 对 DynaMesh 执行 Divide | 出现凸块和星形极点 | 使用 ZRemesher、Divide、project_all |
| 在最高级别执行大幅 Move | 出现变形的凸块 | 使用 level_for("big"),然后再升回去 |
| 开启蒙版或处于 Move 模式时重新执行 DynaMesh | 未进行任何重新网格化(该操作只清除了蒙版) | 使用 remesh_code |
| 开启 polypaint 时执行 DynaMesh | 重新网格化后多边形组消失 | 使用 keep="groups"(关闭 Colorize),或 "polypaint";切勿同时使用 |
| 重新网格化或 Divide 后调整 Morph | 目标已消失 | 先调整;使用 expect_points |
| SubTool 变更后仍假定对称设置保持不变 | 笔画只落在一侧 | 对称设置是按 SubTool 分别设定的(Pablo RABWfzWNw0c 00:27:02):每次操作都要设置 |
将 Brush:Smooth 选作笔刷 | 无法平滑(它只会成为 Shift 笔刷) | 使用 Deformation Polish,降低 SDiv |
| 开启 LSym 时使用 Mirror And Weld,或以错误的一侧为源 | 在局部镜像或复制错误的一侧 | 关闭 LSym;先使用 Deformation Mirror(9a9S1OcYHx4 00:09:35) |
交接
- **接收:**从 scenario-zbrush-expert 接收会话、简报和带版本号的 ZTL;从 scenario-zbrush-retopology-export 接收清理后的 AI 网格或扫描网格(scenario-3d 网格也通过这种方式传递); 从领域技能接收比例和形态列表。
- **交付:**P14 包(带版本号的 ZTL、
stats()、最后一张图表、JSON 格式的形态、校准、 门禁):将真实感 S3 或 S4 形态分层交付给 scenario-zbrush-character-creature;将形状语言 相关工作和头发交付给 scenario-zbrush-stylized;将有机基础形态交付给 scenario-zbrush-hard-surface;将 完成的雕刻交付给 scenario-zbrush-retopology-export。
ZBrush 2026 说明
- 透视功能为
Draw:Perspective(已安装的 commands.xml);Transform:Persp不存在 (zs.PERSP_PATHS)。PolyFrame 为Transform: Pf。 Brush:Dam_Standard无法解析 [v03];zb_ops.select_brush("Dam_Standard")可找到 DamStandard。- 平滑笔刷只能绑定到 Shift,
press_key不起作用:Zsub 会替代 Alt,Deformation Polish 会替代 Shift,Masking 按钮和 Mask Changed Points [verify] 会替代 Ctrl 手势。 - 没有撤销控制(
merge_undo是空操作):每个阶段使用 Morph Target 或图层,并为各阶段保存带版本号的 ZTL。 - Gizmo 变形器和 Transpose 拖动只能通过 GUI 操作;除非将 Focal Shift 设为 -100,否则 Gizmo 的变形效果较柔和。Local Symmetry 会跟随 Gizmo:执行 Mirror And Weld 前先将其关闭。
- Sculptris Pro:无级别;仅支持 Dots、FreeHand 和 Spray。Chisel 的默认笔触在 2025.1 中已更改:每次操作都要设置笔触类型。
参考资料
references/procedures.md:每个步骤(P0 到 P17)的桥接代码及其实时测试。编写桥接代码前加载。references/expert-notes.md:专家观点详解及分歧表。选择方案时加载。references/critique.md:各阶段评审标准、AI 网格判断、笔触计划审查。每次门禁检查时加载。references/gui-paths.md:快捷键、调色板路径和笔刷设置(计算机使用 Agent)。references/sources.md:来源、凭据、URL、时间戳。scripts/zb_sculpt.py:阶段、预设、Scene、生成器、校准、操作执行、重网格、级别、评审指标。测试:tests/code/zbrush-sculpting/(离线测试已通过;尚未在 ZBrush 中运行实时测试)。