关于 scenario-zbrush-pose-print
面向 ZBrush 的技能,用于摆放多 SubTool 模型并准备经过测量的 3D 打印零件。它以数值检查、可逆姿势、打印几何验证和规范导出组织创作与技术流程。
主要功能
- 01比例与包络检查
- 02可逆的多 SubTool 姿势调整
- 03带点序保护的姿势传递
- 04测量空心结构、切件与配合
- 05网格精简与打印报告
适用场景
- 01在保留 SubTool 的同时摆放角色
- 02准备树脂打印的人偶套件
- 03检查壁厚、间隙和空腔
- 04导出并标明毫米单位的零件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-zbrush-pose-print安装后在 Claude Code 中输入/scenario-zbrush-pose-print确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/critique.mdexpert-notes.mdgui-paths.mdprocedures.mdsources.mdscripts/zb_pose.pyzb_print.py详细介绍
ZBrush 姿势与 3D 打印
专家级流程意味着:姿势站得稳、读得清,并能转移到每个 SubTool 而不丢失任何级别;打印部件的尺寸、壁厚、配合间隙和空腔都已在导出的文件中按毫米测量。基本原则:把每项决策都变成 Agent 可核验的数值(缩放比例、点的顺序、关节角度、壁厚、间隙);保持姿势可逆,只用笔刷笔画进行清理。如果此处提到的某个同级技能不在你的可用技能中,请让用户安装它(npx skills add scenario-labs/skills --skill <name>);若无人值守,则根据工具架构继续操作,并标明这一缺口。
必备背景: scenario-zbrush-expert(桥接、笔刷引擎、审核循环、2026 年陷阱)。
基本原则(专家进阶要点)
- Gaboury:缩放是首要决策。 第一个 SubTool 是一个与客户要求尺寸相同的盒子;任何内容都不能超出盒子。由于尺寸后期可能变更(原先带 15 个活动关节的 6 in 模型改为 4 in、带 8 个活动关节),必须能一步缩放整个工具。Agent 流程:
brief_box、zb_print.envelope、set_export_scale(target_mm)。 - Munoz Gomez:在最低级别摆姿势,通过 Transpose Master 处理多个 SubTool,并将姿势放在 3D Layer 上。 板件和手持道具(武器、盾牌、手杖)要作为刚性部件留在 TPose 网格中(使用 Auto Groups,每个独立部件设为一个组,并对整个部件进行遮罩)。使用 Move Topological 消除相交。Plouffe 禁止变形基本体,但不禁止刚性移动:不要把手持道具单独取出,再仅通过一次旋转重新放置。
- Maxon 文档:有两种情况会破坏转移: SubTool 部分隐藏(Vertex Mismatch),以及 TPose 网格上的 Gizmo 3D 变形器(它们会重新排列点;执行 TPose>SubT 后,SubTool 将无法使用)。Pavlovich:“顶点的顺序非常重要。”从干净的项目开始;在 TPose 网格存在时保存 ZPR(Transpose Master 数据保存在其中)。
- Plouffe:需要一起弯曲的部件在第 1 级必须具有相同的多边形尺寸(遮罩模糊会逐多边形扩散)。弯曲后重新放置螺栓和圆盘。只在最终尺寸和观看距离能展现细节的地方投入精力。
- Pavlovich:没有级别的 DynaMesh 使用 Proxy Pose 加 ZSphere 骨架。 位置比尺寸重要;辅助部件用于保持体积,只旋转。
- Gaboury:绝不要掏空 9M 雕刻模型。 对轻量 DynaMesh 副本进行壳体处理(128 的分辨率足以制作 9 in 的汽车模型),保留其内壁并进行 Polish,然后在 Live Boolean 中将其从未修改的精细部件中减去。Create Shell Thickness 的数值并非毫米;务必测量。
- Bennett(Hasbro):最小壁厚为 1 mm(0.85 mm 曾被标记不合格),边缘为 0.5 mm,Formlabs 部件的配合偏移为 0.12 mm; 加厚薄壁时要从内侧加厚,以免改变外表面。
- Gaboury:凭观察决定是否进行减面(每个网格约 1M 面已足够;10k 到 20k 个三角形仍可打印);对重要细节(面部、双手)施加遮罩,以引导 Decimation Master;任何编辑后都要重新预处理;SLA 打印的每个杯状部件都要设置排气孔。
先确定
| 输入 | 为什么会影响计划 | 需求未说明时的默认值 |
|---|---|---|
| 工艺:树脂(SLA、MSLA)、FDM、模具成型或铸造 | 壁厚、间隙、中空处理、收缩(Hasbro 将 PVC 雕塑放大至 104 %);模具还需遵循 Hasbro 的规则:手指相触会锁住模具,Group Front 显示分型线,Draw Draft Analysis 显示拔模斜度 | 树脂,直接打印 |
| 尺寸:比例和实际高度、包围盒 W x H x D、是否包含底座 | 导出比例、需求框、特征最小尺寸 | 1/6 = 站立高度 / 6(1,800 mm 对应 300 mm),以静止姿势测量 |
| 打印机成型体积、切片软件上限 | 拆分(Gaboury 为 Form 2 的成型平台拆分了一辆汽车);多边形数量或文件大小上限(他的示例为:50 MB) | 询问;报告每个部件的尺寸 |
| 部件:一体式还是套件,胶粘还是插销连接 | 切割位置和定位键(Carratala 在雕刻时规划切割) | 自然分界处(衣领、腰带、袖口、手持武器),每个胶粘接缝设置两个定位键 [已添加] |
| 姿势来源;替代姿势 | 路径和图层 | 每个姿势使用一个图层 |
| 交付内容 | STL 不含单位;3MF 会声明单位 | 每个部件提供以 mm 为单位的 STL 和 3MF,以及 JSON 报告 |
不使用鼠标进行姿势调整
艺术家默认的操作(Ctrl+单击一个多边形组,拖动 Gizmo 环)是一种画布手势。SDK 无法读取遮罩数据,而 press_key 虽有文档说明,但在已安装的 2026 存根中被标记为“Does not work, hidden for now”(不起作用,暂时隐藏);canvas_click 也被报告为不可靠(Maxon 论坛)。按确定性排列的方案:
| 方案 | 适用场景 | 方法 | 状态 |
|---|---|---|---|
| A. 数值外部绑定(Munoz Gomez 的 Blender 方案,精确化) | 人形模型、极端姿势或大量姿势 | TPoseMesh、export_tpose、将 loose_pieces 刚性绑定到各自的单根骨骼,scenario-blender-rigging 按角度调整姿势并按相同顺序返回,import_pose、TPose>SubT | 确定性;已离线测试防护措施 |
| B. 通过代码创建 ZSphere 绑定 | 在 ZBrush 中、有机模型,或通过 Proxy Pose 使用 DynaMesh | 根据多边形组边界创建关节,zs_build,通过正向运动学 zs_pose 调整姿势 | 已测试 FK;绑定网格跟随 API 编辑 [verify live_p02] |
| C. 整个 SubTool 刚性移动 | 姿势调整后添加的底座、支架或道具 | rotate_subtool_matrix(X、Y、Z)加上 translate_subtool,即载体的整体变换,并根据导出结果修正 | 数学已测试;方向 [verify live_p03, p08] |
| D. 遮罩加 Gizmo 或动作线 | 由计算机操作 Agent 或人工进行清理 | Ctrl+单击组,Alt 设置枢轴,拖动 | 对此 Agent 而言较弱 |
缺少人工协助时较弱:手势设计、Plouffe 手绘渐变遮罩、大幅重新设计褶皱。procedures.md P6 中有针对 Agent 的接缝平滑和 Move Topological 操作方式,但仍需 [verify]。
工作流
zb_pose.call("name", ...) 在 ZBrush 中运行;zb_print 处理导出的 OBJ;完整代码见
references/procedures.md。
- 接收。 已版本化的 ZTL、
inventory(),以及以 mm 为单位的目标和包络。关卡:每个 SubTool 均已命名、名称唯一,且包含点和级别。 - 缩放。 依次运行
set_export_scale、export_parts、check_scale,然后运行brief_box(导出期间隐藏)。关卡:高度误差在 0.5 % 以内[新增];每个部件采用相同的导出比例(从另一个 ZTool 追加的部件会采用另一种比例);envelope通过;用caliper检查指定尺寸。 - 姿势准备。 运行
clean_project(保存 ZTL、设为默认项目、Load Tool);为每个段设置多边形组,板件和道具保留为独立部件;运行preflight_tpose。关卡:预检通过,密度差异小于 2 倍[新增]。没有级别:使用 scenario-zbrush-retopology-export 或 Proxy Pose。 - 摆姿势。 道具和板件设为可见后,运行
tpose_mesh(layer=True, groups=True),再运行export_tpose(顺序参考),并保存项目;选择路线 A 或 B,先居中,先处理父级再处理子级,仅旋转;不使用 Gizmo 变形器。关卡:rigid_pieces通过;follows显示每个携带的道具都随其载体移动到位(0.5 mm[新增]);piece_interference为空,或已为 P6 列出;tpose_to_subtools(expected, rest_obj)通过顺序校验和点数校验;rigid_delta与计划相差不超过 2 度[新增];balance能站稳,或已计划好底座;审阅表:轮廓和重量感清晰(Plouffe:不稳定的姿势会“毁掉整个作品”)。 - 修复变形。 在顶层新建图层。先处理接缝,同时保护其余部分(Munoz Gomez 会先平滑并移动,再清除遮罩);然后针对新姿势重新雕刻体积和褶皱(拉伸关节处产生张力,内弯处产生压缩[新增]);重新摆放基本几何体;对部件使用 Move Topological;姿势专属细节放在仅用于该姿势的图层上,因为图层会线性混合。关卡:
stretch_report接近静止姿势;piece_interference通过;检查 Polyframe 瓦片。 - 拆分。 在自然断点处分件;将打印时应为一个整体的部分合并(使用 Live Boolean 并集,或在轻量副本上使用 DynaMesh:Hasbro 工程师会在精简后的网格上操作)。模铸件:环线、分模线、拔模斜度。关卡:每个部件均封闭,且符合构建体积限制。
- 按需挖空。 运行
hollow_copy(插入内部模型、DynaMesh 约设为 128、Create Shell),使用keep_inner_shell;Live Boolean:从精细部件开始,依次对内壳、排液孔和通气孔进行布尔减法;薄端保持实心。太薄:将切割体向内移动,绝不要移动外表面。关卡:thickness的 p01 达到壁厚目标;树脂件没有封闭空腔;outer_drift通过;杯状结构处设有通气孔。 - 切割并加定位键。 在 Live Boolean 中使用 QCube 切割体,或拆分多边形组后执行 Close Holes[新增];运行
plan_keys;插座 = 在插销基础上扩大 2 倍间隙。关卡:clearance中位数达到目标,无干涉;套件制作前先试打印一对定位键(Gaboury)。 - 精简。 名称唯一;为每个 SubTool 设置面数预算,在 Pre-process 前应用遮罩(
mask="cavity"[新增]);每次编辑后都重新预处理。关卡:面数在预算范围内;deviation的 p99 低于打印机的 XY 分辨率[新增];提供前后特写。 - 交付。 每个部件均提供以 mm 为单位的 STL 和 3MF;运行
print_report(..., envelope_mm=...);提供实际尺寸的审阅图块(低于工艺下限的细节需补齐、融合或留待上色处理:Hasbro)。关卡:print_report["ok"]为真;已检查每项“待查看”内容;已注明单位。
数值
| 项目 | 数值 | 来源 |
|---|---|---|
| 最小壁厚 | 1 mm;0.85 标记为风险 | Hasbro、PVC 和 Formlabs 复制品 |
| 修剪后的边缘 | 0.5 mm;约 0.2 mm 会浮起 | Hasbro |
| 配合偏移 | 0.12 mm(Formlabs);他在 ZTool 中用 Inflate 2 得到了这个值 | Hasbro,按 ZTool 校准 |
| 外壳复制 | DynaMesh 64 太低,128 足够(车里有 9 个);Thickness 先设为 4,再设为 6 | Gaboury |
| From Thickness | 缩放到 mm 后,最小值为 1,最大值为 5 | Maxon 文档 |
| Decimation | 每个网格约 1M;20 % 时从 2.7M 降至 545k,外观不变;8k 时出现多面体感 | Gaboury |
| Decimation 质量 | 40 到 100 % 时几乎相同,2 到 40 % 时差异明显 | Maxon 文档 |
| 收缩时的缩放 | 对于 6 in 的 PVC 人偶,高度 / 12 + 4 % | Hasbro |
| 代理姿势蒙皮 | Adaptive Skin Density 1,DynaMesh Resolution 0 | Pavlovich |
质量关卡
- 测量(对单位为 mm 的 OBJ 使用
zb_print):水密性、体积、薄壁占比(样本的 0.2 % [已添加])、封闭空腔、浮动外壳、高度、包络、统一导出比例、构建体积、间隙、平衡、面数、外部偏移。姿势:点顺序、rigid_pieces、follows、piece_interference、rigid_delta、stretch_report。 - 视觉(scenario-zbrush-expert
zb_review.review,MatCap Gray,五个视图):动态和 平衡;使用 Polyframe 检查关节;基本体是否圆润;握把是否紧握手柄;展示一次简述框; 在副本上使用 From Thickness;检查每个列出的位置;检查 Decimation 后的特写。根据references/critique.md进行评估。
常见错误
| 错误 | 表现 | 修正 |
|---|---|---|
| 使用顶层姿态、粗略蒙版,过早清除蒙版 | 多边形拉伸、重叠 | 使用最低级别和模糊蒙版;清除前先用 Smooth 和 Move 平滑并移动接缝(Munoz Gomez) |
| 将携带的道具从 TPose 网格中拉出,之后再旋转一个角度 | 一把剑位于抬起且弯曲的手旁;即使 interference 为 0 也会通过 | 将其作为刚性部件保留在 TPose 网格中;否则,携带者的整体变换会限制 follows |
| TPoseMesh 中有部分隐藏的 SubTool | Vertex Mismatch | 使用 preflight_tpose(对全部对象启用 ShowPt) |
| 在 TPose 网格上使用 Gizmo 变形器 | SubTool 被破坏;点数检查无法发现顺序变化 | 使用旋转或骨架;顺序保护机制会拒绝传递 |
| 会话关闭时有 TPose 网格,但没有 ZPR | 无法恢复 SubTool | TPoseMesh 后立即使用 save_project |
| 在姿态上显示中性姿势的细节 | 弯曲处的细节变得柔软、拉伸 | 在仅用于姿态的图层上进行精修(线性混合) |
| 将 Create Shell 的数值理解为 mm;插入件与表面接触 | 壁厚错误;部件连成一体 | 测量 thickness;将插入件放在内部,并用作切割器排出材料 |
| 从外侧加厚壁面 | 雕刻形体发生偏移 | 将切割器向内移动,并检查 outer_drift |
| 预处理后再进行蒙版或编辑 | 减面操作忽略这些修改 | 重新预处理(封装器始终会这样做) |
| 键位没有间隙 | “20 个圆盘得赶在中午前打磨完”(Hasbro) | 偏移 0.12 mm,测量并进行测试打印 |
| STL 未指定单位 | 150 mm 被打印成 150 英寸 | 标明 mm,或提供 3MF |
交接
- 接收来自 scenario-zbrush-sculpting、scenario-zbrush-character-creature、 scenario-zbrush-stylized 或 scenario-zbrush-hard-surface 的内容:带有命名 SubTool、 各级细分(或用于 Proxy Pose 的 DynaMesh)和每个部件对应多边形组的版本化 ZTL,以及最新审核表;如果雕刻没有细分级别,则接收 来自 scenario-zbrush-retopology-export 的投影堆栈。
- 发送给 scenario-blender-rigging 或 scenario-maya-expert:TPose OBJ 和一份计划(关节、 角度、每根骨骼对应的刚性部件),并要求返回时保持相同的顶点顺序。
- 将摆姿雕刻(图层、ZTL、ZPR、表格)交付给 scenario-zbrush-paint-render;将打印 套件(单位为 mm 的 STL 和 3MF、报告、表格、部件和键位列表)交付给用户或打印方。
ZBrush 2026 说明
- Proxy Pose(2023.1)位于 Tool > Geometry 中。Transpose Master 仍随附(“保存文件后处于非活动状态”的问题已在 2025.2 修复);其数据保存在 ZPR 中。文档中的干净项目 DefaultCube.ZPR 不在 2026.2.1 安装包中:使用
Lightbox/Projects/DefaultProject.ZPR[待验证]。 - 3D Print Hub 提供 Export to 3MF(相关错误已在 2026.2.1 修复)。Update Size Ratios 和 Scale Master Set Scene Scale 会打开对话框:请使用导出缩放流程。
- From Thickness(2026.2.1 中标记为 Min Thickness、Max Thickness、Ball or Ray)会在 Max Thickness Polygons 上方询问“多边形过多……是否继续?”。此提示会卡住桥接,因此
from_thickness会先拒绝操作。 - Live Boolean 会从结果中移除 UV、折痕、3D 图层和遮罩:请对打印副本执行布尔运算。Decimation Master 和 Transpose Master 是 ZScript 插件:请确认控制权已返回(live_p01、p07)。在 macOS 上,Cmd+W 会退出 ZBrush。
参考资料
references/procedures.md:包含完整代码的桥接操作流程(缩放和简要说明、干净项目、Transpose Master、三种绑定流程、修复、镂空链路、键、遮罩抽减、交付)。操作 ZBrush 前请加载。references/expert-notes.md:专家原则及时间戳和决策条件。规划姿势或套件时加载。references/critique.md:针对姿势、变形和打印部件的评估标准。每个检查点都要加载。references/gui-paths.md:供计算机操作 Agent 或人工使用的调色板、按钮和快捷键。references/sources.md:来源、凭据、时间戳和修订记录。scripts/zb_pose.py(在 ZBrush 内)和scripts/zb_print.py(Agent 端,numpy):离线测试位于tests/code/zbrush-pose-print/;live_p01 到 live_p08 的实时测试尚未在 ZBrush 中运行。