scenario-zbrush-sculpting について
scenario-zbrush-sculptingは、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 のスカルプト(コアフォーム、スクリプト化されたストローク)
熟練したスカルプトは、大きな形から小さな形へと、段階を踏んで進めます。軽量なメッシュの解像度を上げるのは、フォームが求めたときだけです。クレイはフォーム全体に薄く、低強度で重ね、シャープさを加えるのは最後にします。弱い形にシャープさを加えることはありません。エージェントにはペンがありません。まず正確な操作(プリミティブ、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 はエッジを定め、クレイは形を作り、ClayBuildup はその下を消します。 Standard は既存の形を押し出すため、特徴をはっきりさせるのに使います(Henning 0PaYUUvgwYM 00:27:26)。ClayBuildup はその下にある形を置き換えるため、ディテールを加えた後には使いません(TpS0QdlfHWU 00:07:44)。Pablo は Z を上げた Standard で硬いエッジを定めてから、クレイでなじませます(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 を Divide してはいけません。三角形と星形のポールが塊になり、どんなスムージングでも直せなくなります(rArw79xEpvE 00:09:44)。コピーを ZRemesher にかけて Divide し、投影します。
- レベルを守って作業します。 大きな形の変更は 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)。エージェントにとって、これらは正確な操作です。数値を指定してプリミティブを配置し、コードで ZSpheres を作り、マスクと Deformation スライダーを組み合わせ、Mirror の後に Mirror And Weld を実行します。
- スカルプトの成否を分けるのは中間周波数です。 FlippedNormals はこれをディテール作成の「背骨」と呼んでいます。早い段階で毛穴を加えると、「2 レベル遅れた」状態になります(G2o6fdoACIQ 00:05:46, 00:08:17)。ディテールで「弱いスカルプトを直すことはできません」(Pablo tbQqC6tyDBQ 00:12:50)。
まず確立する項目
| 入力 | 変更内容 | brief に記載がない場合のデフォルト |
|---|---|---|
| 対象 | ベースのルートとポイントの段階設定(STAGES[...]["points"]):頭部、クリーチャー | 球体から作る頭部のバスト |
| 目的 | コンセプト:S3 または S4 で止めます。クワッドだけでも十分です(tbQqC6tyDBQ 00:11:43)。映画またはゲーム:細部の前にリトポロジーを行います(Zp07GW3rND0 00:08:22)。プリント:scenario-zbrush-pose-print | コンセプト |
| スタイル | リアル:scenario-zbrush-character-creature。スタイライズド:scenario-zbrush-stylized | ニュートラルな形状 |
| フォーム一覧 | brief とドメインスキルのプロポーションに基づく、中心線と幅を指定した zs.Form | なし:ドメインスキルに確認する |
モデル単位での頭部の幅(ref_width) | すべてのブラシサイズ | 正面ビューでのモデル幅 |
| ビュー | 正面は測定済み [obj]。ほかのビューには live_04 の規約が必要です | 正面 |
ワークフロー
各パスで、Scene.capture、プラン作成(clay_pass、move_pass、crease_pass)、preview_plan(内容を確認)、run_plan、pass_report、zb_review.review の順に実行し、最も弱い項目を 1 つ挙げて修正します。各ゲートでバージョン管理された ZTL を保存します。
-
セッション。
zb_launch.start()を実行し、中立状態(P1)にしてキャリブレーション(P2)を行います。各パスでは、「Draw:Perspective」と LazyMouse をオフにします。LazyMouse の半径が合成パスの開始部分を覆ってしまうためです(Pavlovich AdkZe1yKFTU 00:03:31)。GATE:ドキュメントのズームが 1 で、キャリブレーションがあるか、v02 の既定値が記録されていること。 -
S0 ベース。 次のいずれかを使用します。128 の球体 DynaMesh(約 43k ポイント)、Density 1 または 2、DynaMesh Resolution 0 の Adaptive Skin を使用する ZSphere アーマチュア(
zsphere_code)(Pablo)の後、DynaMesh 64。あるいは、プリミティブを追加し、Geometry Position と Size で配置します(P3)。GATE:シルエットが正面と側面で認識でき、ポイント数が S0 の範囲内であること。 -
S1 プライマリブロックアウト。
- 移動した後、DynaMesh を再実行します(
move_pass、remesh_due、続いてremesh_code、P16:Draw モード、マスク解除、ポリグループを維持するためポリペイントをオフにし、リメッシュされたことを証明します)。 - フォーム全体に Clay を適用します(
clay_pass、プリセットclay_block)。ソケットは彫り込みフォームとして作成します(sign=-1)。TrimDynamic で平面を作成します(preset="trim")。対称をオンにし、プランは +X の半分を対象とします。
GATE:
stage_gate("S1")に合格すること。シートでプロポーションが適切であることが確認でき、すべての要素が揃い(G2o6fdoACIQ 00:02:50)、大きく単純な塊になっていること。 - 移動した後、DynaMesh を再実行します(
-
S2 プライマリの調整。
- 解像度を上げます。頭部は二乗則(
next_dynamesh_resolution)に従って、400k~800k ポイントを目指します。 クリーチャーはパーツを 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です。 - Morph Target を失う前に、リスクのあるパスをチェックポイントとして保存し、調整します(P8)。再度 DynaMesh を実行したり、ZRemesher や Divide を使ったりする前に行ってください。ポイント数を変更すると Morph Target が失われ、
dial_code(..., expect_points=)は処理を拒否します。
GATE:Red Wax 表示で形状が整っていること、面が引き伸ばされていないこと、ストローク跡が目立たないこと。
- 解像度を上げます。頭部は二乗則(
-
形状が固まり、S3 でレベルが必要になった場合、リトポロジーを行う場合、または後の大きな変更でもディテールを維持する必要がある場合は、DynaMesh を終了します。Henning の DynaMesh のみで 648 まで進めるラダーはコンセプト静止画に適しています。どちらのルートを選ぶか、その理由を明記してください。レベルを使う場合(P11):バージョン管理された ZTL を保存し、複製して、そのコピーに ZRemesher を実行します。
projection_readyになるまで Divide を行い、その後、ツールキットのzb_ops.project_all(checkpoint=...)を使用します。これにより、安全な順序(バージョン管理された保存、最上位レベルでの StoreMT と New Layer、PA Blur の低減、ゲート、morph_repair)が適用されます。これを再実装しないでください。GATE:ターゲットのポイント数がスケッチ以上であること、ボリュームの差が 1%以内であること[追記]、シートに変更がないこと、目と口をレベルごとに確認していること(修復:scenario-zbrush-retopology-export)。
-
S3 セカンダリ。
- レベルを使います(P15)。
level_for("secondary")(SDiv 2 または 3)を実行し、その後"refine"で一度に 1 レベルずつ上げます。大きな修正を行う場合は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")、クレイでなじませます。2 つのカットの間はfill_betweenで埋めます。GATE:S3 との形状 IoU が 0.98 以上であること[追記]、しわの深さが線に沿って変化していること。 -
引き継ぎます。 P14 パッケージを添えて、S5 と S6 をドメインスキルに引き継ぎます。
数値
| 値 | 数値 | 基準 | 出典 |
|---|---|---|---|
| スクリプト Z、clay | block 6、refine 2、finish 2;descent 6、3、2、1 | expert Z の 0.3 倍の筆圧 | Henning 00:04:58;digest derivation |
| ブラシ径 | clay block 15~35%、secondary 10~15%、refine 3~8%、Dam 3~7%、Standard 1~2%、Move design 60~90%、Move local 10~15% | ビュー内の頭部の幅(Draw Size はキャンバスのピクセル数です。zb_sculpt は ppu を使って変換します);clay は形状の幅の 0.5~1.0 倍に保ちます | FlippedNormals frames;digest T1 |
| ClayBuildup | FreeHand、Focal -56、Alpha 06 または Off;Imbed 20、Roll Dist 約 6 | Henning;Morten;Pablo frame 00:05:55 | |
| Dam_Standard | Dots、Focal -14、Zsub、Z 15(大きなカットでは 33) | 「開始位置より 10 下」 | 0PaYUUvgwYM 00:18:42;TpS0QdlfHWU |
| Move / TrimDynamic | Focal 0、Z 51 / Focal -56、Z 43 lowered、Zsub | TpS0QdlfHWU frames | |
| 頭部のポイント数の段階 | 43k sphere、96k~99k S1、400k~826k S2、1.6M~2.46M S3 および S4 | ポイント | FlippedNormals frames |
| クリーチャーの段階 | skin 6k、pieces 28k~43k(DynaMesh 64~128)、結合後 256 = 367k、SDiv 5 = 3.8M | ポイント | Pablo tbQqC6tyDBQ frames |
| DynaMesh | ポイント数は解像度の 2 乗に比例して増加します。制限:詳細は 1024 キューブ内で安全、上限 2048(約 24M ポリゴン) | bbox の最長辺;SubTool ごと | TpS0QdlfHWU ladder;DynaMesh doc |
| Divide、ZRemesher | レベルごとに x4;目標値は千単位、5 では 4,963 | Pablo rArw79xEpvE 00:03:16 | |
| 操作ごとの SDiv | 大きな移動は 1;二次的な操作は 2 または 3;三次的な操作とレイヤーは上位 | スタックのレベル | Pablo rArw79xEpvE 00:12:28、00:14:16 |
| Projection | 目標ポイント数はスケッチと同数以上(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 を超える大きな Move、形状 IoU、非対称性、バンド);zb_audit.verdict(..., "sculpt");remesh_due、Polish のずれ、projection_ready。 - 目視項目: MatCap Gray でのレビューシート(正面、右側面、背面、斜め前、上面);Flat Color のシルエットとサムネイルサイズのシート;フォームを読み取るためのかすめる角度からのビュー、マークの確認に使う Red Wax、移動するライトの下での Standard マテリアル(MatCap はライトを焼き込むため)、または BPR;目の確認用のパースビューのルックレンダー;
references/critique.mdのステージチェックリスト。シートを確認せずにステージを完了としないでください。
よくある間違い
| 間違い | 見た目 | 修正 |
|---|---|---|
| スクリプトの Z のつもりで Expert Z を使う(ClayBuildup 20) | 鋭い隆起、1ストロークで筋肉ができる | Z 6 にしてキャリブレーションし、パスを調整する |
| フォームに沿って Clay をドラッグする | 溝が描かれるだけで、ボリュームがない | clay_pass で横切るようにハッチングする |
| モデルの外からストロークを開始する | ストロークが何も変えず、ビューが回転することもある | プランはキャンバスマスクにクリップされます。再キャプチャする |
| LazyMouse をオンのままにする | ストロークの開始位置がずれ、短いストロークが反映されない | pass_spec のデフォルトを lazymouse=False にする |
| スキン上のマークをスムージングで消す | 「半分だけ滑らかで、ディテールはある」状態になり、ボリュームが失われる | ディセントパスを使う。Polish は低解像度か、より低い SDiv でのみ使う |
| 仕上げたディテールの上から ClayBuildup を使う | 線や毛穴が消える | エッジには Standard を使い、ディテールの前に clay を使う |
| DynaMesh を分割する | こぶや放射状のポールができる | 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 に関する注意事項
- Perspective は
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 のジェスチャーを置き換えます。 - Undo の制御手段はありません(
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:ホットキー、パレットのパス、ブラシ設定が記載されています(コンピューター操作エージェント向け)。references/sources.md:ソース、認証情報、URL、タイムスタンプが記載されています。scripts/zb_sculpt.py:ステージ、プリセット、Scene、ジェネレーター、キャリブレーション、パスの実行、リメッシュ、レベル、レビュー指標が記載されています。テスト:tests/code/zbrush-sculpting/(オフラインテストは合格済み。ZBrush でのライブテストはまだ実行されていません)。