mcpField
S
scenario-blender-sculpting

scenario-blender-sculpting

github.com/scenario-labsクリエイティブ・メディア1.2k433 回インストール1 日前に更新
リポジトリ

scenario-blender-sculpting について

頭部やキャラクターを制作するBlender制作者向けのスキルです。低解像度のブロックアウトから表面の仕上げまで段階的に進め、最終的な表面作業にはGUI上のブラシを使います。

主な機能

  1. 01低解像度で頭部をブロックアウト
  2. 02明示した平面で主要形状を形成
  3. 03各段階で比率とメッシュを確認
  4. 04GUIブラシで表面を仕上げ
  5. 05表情シェイプキーを作成してレンダー確認

活用シーン

  1. 01頭部やキャラクターの形状を構築
  2. 02顎や頬骨の輪郭を確認
  3. 03ニュートラルな顔に笑顔の表情を作成
  4. 04複数の視点からスカルプトを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scenario-labs/skills --skill scenario-blender-sculpting

インストール後、Claude Code で/scenario-blender-sculptingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
critique.md
expert-notes.md
procedures.md
sources.md
scripts/
bx_sculpt.py

詳細

スカルプト(頭部とキャラクター、Blender 5.2)

熟練したスカルプトでは、構造が最初で、表面は最後です。明確な面と角で大きな形を作り、低解像度のうちにプロポーションを確定し、長いレンズを通してすべての段階を目で評価し、メッシュの数値ではなく、最終的に魅力があるかどうかで判断します。エージェントはヘッドレスでブロックアウトと一次形状を作成し(scripts/bx_sculpt.py:スムーズブレンドの Clay、平面カット、numpy ブラシ)、ライブ GUI セッション(bx_gui)で Blender の実ブラシを使ってクライアント品質の表面仕上げを行います。ここに記載された関連スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください(npx skills add scenario-labs/skills --skill <name>)。無人実行の場合は、ツールのスキーマに基づいて進め、不足している点を明示してください。

必須の背景知識: scenario-blender-expert(実行チャネル、レビューループ、5.2 API の変更点)。

基本姿勢(エキスパートとの差)

  • 平面は見つけるのではなく、明確に定めます。 Thelen は Draw Sharp で平面の境界を切り、面の「見え方がおかしい」と感じるたびに切り直します。Naydenov は単純化して平面にし、その後スムーズにします。Reinhardt は Scrape、Trim、Line Project を使ってきれいにカットします。実行可能な形では、点と法線で平面を定義し、Clay の半空間クリップまたは plane_cut / corner_cut に渡します。flatten や scrape の一打は、その下にある球体に平面を合わせるため、球体に沿ってしまいます。
  • あごはオトガイ角を持つブロックで、頬骨は独自の下側の平面を持つ塊です。 Zarins によれば、オトガイ角は年齢と性別を示す調整軸で、成人男性では急になります。顔の最も幅広い点は頬骨弓の上端です。Naydenov によれば、頬骨は耳から下向きかつ前方へ伸び、下縁だけが見えます。Thelen は、骨に組織を加え、決して刃物のように鋭くしないようにします。
  • 塊を上流工程で修正し、平面で形を言い直すだけにします。 平面を切り直しても見え方が改善しないなら、問題は塊またはプロポーションにあります(Thelen の診断法)。実測では、風船のようなあごに平面カットを施すと形状の指標は反転しましたが、レンダリングでは宝石のファセットのように見えました。あごのブロックを作り直すことで解決しました。
  • できる限り長く低解像度を保ちます。 Abbitt によれば、スムージングが強く作用するのは大きなポリゴンだけです。Thelen はプロポーションを粗い段階で確定します。リメッシュのたびに対称化し(Keelan Jon)、その後、全体をリラックスさせます(Kaspar FDscc66fC90 00:11:55)。
  • 小さなランドマーク(鼻孔、眉、目)は早い段階で示します。 Yan は、幅が広すぎる鼻が鼻孔から分かったと述べています(vB7kPWjBgQI 00:05:11)。
  • 一貫した誇張で様式化します。 Yan によれば、最初の1分で方向性を決め、周囲の要素もそれに合わせます。顔が長い場合は、引き伸ばすのではなく頭蓋を小さくします。
  • コンセプト上の頭部には、それらしさを伝える要素が必要です。 Thelen は、髪があると男性の頭部らしさがより伝わると述べています(00:48:58)。Naydenov によれば、髪は印象を大きく変えます(00:53:05)。髪も衣装もない「冒険者」は、髪のないマネキンに見えてしまいます。
  • 非対称性と表情はシェイプキーで表現し、ベースはニュートラルで対称な状態に保ちます(Kaspar f-mx-Jfx9lA 00:09:44;Thelen 00:38:27)。表情のテストでプロポーションの誤りが明らかになるため、ニュートラルの状態で修正します(Kaspar 00:10:49)。

最初に決めること

入力変更内容指定がない場合のデフォルト
誰か(性別、年齢、タイプ、態度)顎角、眉、顎の幅、形状表現成人男性、ニュートラルなベース、明記された内容を反映[追加]
スタイルスタイライズ:誇張の表;リアル:正典+参考資料スタイライズ、「不気味に感じない程度に抽象化」(Kaspar)
キャラクターの手がかりタイプを印象づける髪、衣装、小道具少なくとも髪と、衣装の特徴を示す要素を1つ[追加]
目的静止画(頂点ペイント、デシメート)か、ゲームまたは映画(リトポロジー)静止画;アニメーション付きの場合はscenario-blender-retopology
納品時のフレーミングディテールの頻度、表情の大きさ1080 pxのフレームをバストアップで埋める[追加]
スケールサイズが頭の高さHに対する比率なら不要H = 0.24 m[追加]
チャネルヘッドレスのnumpy / Clay、またはGUIのライブブラシヘッドレスのブロックアウト;ブリッジ接続時はGUIで表面を作成

ワークフロー

  1. デザイン表。 G = S.head_guides(H)、STYLE 辞書(誇張する箇所を1つか2つ)、手がかりのリスト、平面のランドマーク点:ゴニオン、顎の底、頬骨。GATE:書き留めてあること。
  2. ブロックアウト(ボクセル H/40)。 頭部のデフォルトは Clay です。頭蓋は、頭蓋側面と前方へのテーパーを定める半空間でクリップした楕円体にします。顎は、口元の盛り上がりのBEHINDに配置した sd_round_box とし、ゴニオンを通る側面、下面、下顎枝の各平面でクリップします。四角い顎先のブロック、下方の平面を添えた耳から頬へのラインに沿う頬骨の楕円体、口元の盛り上がり、眉の隆起、鼻、約15度傾けた首、耳、目の周囲の前面ボックスを配置します。大きな塊は0.08~0.15 Hでブレンドし、縁は0.02~0.03 Hでクリップします。選択肢:プリミティブを union_remesh で結合します(rounded_boxは球体のように見えるCatmull-Clarkの塊です。顎には絶対に使わないでください)。GATE:コンポーネントが1つであること、lower_face_report(head, H)["ball"] がFalseであること、シルエットと90 mmのレンダーで、横顔と斜め前から見た輪郭に顎のラインとゴニオンの角が現れ、誇張が見て取れること。
  3. 主要フォーム(H/100~H/110)。 ランドマークを使って、より細かいボクセルでClayを作り直します。眼窩(眼球の1.1倍の球で、まぶたより小さくする)、別々の眼球を囲む薄い殻状のまぶた(眼球から作るKeelan Jonのまぶた、amVAlpxHp8k 00:37:05)、内側に収めた鼻翼、耳のくぼみ、首の筋肉を作ります。髪と衣装は別々のClayオブジェクトにします(非対称なものには to_object(name, symmetric=False) を使用)。GATE:横顔の形が際立っていること、目がビー玉や袋のように見えないこと、髪が顔を縁取っていること、stage_report がクリーンであること。
  4. セカンダリ(H/130~H/150、remesh_stage)。 投影方向を向いた面に crease_line でラインを入れます(口元、下唇の下、まぶたの縁)。鼻孔は下側から作ります。塊の形状が適切で、移動量を小さく保てる箇所に限り、corner_cut / plane_cut で平面を強調し直します。GATE:10万未満の面数(Abbitt)、90 mmのレンダーに引っかき傷、ひび割れ、縁がないこと。
  5. 表面仕上げ(クライアント品質):ライブGUI。 bx_gui で本物のClay Strips、Scrape、Crease Polish、Smooth 0.2を使用します(固定して検証済み:ストロークがメッシュにレイキャストされ、オブジェクト空間の位置を渡します。最初に set_view(frame=obj) を設定し、view_distance は頭部の高さの数倍にします)。ヘッドレスのnumpyストロークはブロックアウトと主要フォームには適していますが、仕上げには向きません。Multiresは、安定したクリーンなベースにのみ使用します(Henning Cmi0KoFtc-4 00:16:04)。
  6. 表情。 対称なニュートラルのベースを用意します。sc = S.Sculptor(head, symmetry_x=False) とし、move_feature で口角、頬、下まぶた、反対側の眉を動かします。 S.write_shape_key(head, "Smirk", sc.co)。口角の移動量は納品時のフレーミングに合わせます(Numbers)。ボクセルリメッシュを行うとキーが失われます。最後の工程にしてください。
  7. 最終レンダー。 S.final_render(objs, path, direction, lens=90, res=1600)(キャビティ、実際の頂点を基準にフレーミング)を、正面、横顔、斜め前から、ニュートラルと表情の両方で作成し、すべての画像を開きます。

各ステージで、レンダーし、最も弱い箇所を1つ挙げ、それを修正してから再レンダーします(Yan)。レンダーが間違って見えるのに指標を満たしている場合は、レンダーを優先します。

数値

値数値出典
ボクセルの段階ブロックアウトはH/40、主要部はH/65〜H/110、二次部はH/130〜H/235、ディテールは約H/330Morren、Abbitt;例
ボクセルから算出した面数ボクセルあたりの面積のおよそ1.5倍(voxel_for_faces)実測、3 %
バストの面数の例H/40は8k、H/110は64k、H/150は103k(首を含む)実測
面数の目安形状は100k未満で作成;ディテールは約500kAbbitt
リメッシュ直後のミラー誤差最大0.67〜0.75ボクセル、平均0.05〜0.07ボクセル(最近傍頂点)実測
クレイのブレンド(頭部)マッスは0.08〜0.15 H、平面のクリップは0.02〜0.03 H、まぶたは0.012 H例 [追加]
顎下顎角間幅は頬骨弓間幅の0.90〜1.00倍(例は0.93);例における下顎枝と下顎底の角度は124度Thelen;例 [追加]
目(スタイライズ)半径0.064 H、まぶたの厚さ0.012 H、上まぶたの縁は中心より上に21度例;14度では眠そうに見える
髪毛束の半径は0.065〜0.115 H、半径の0.8倍の高さまで立ち上げ、生え際から後方へ;ベースは0.008〜0.02 H例 [追加]
認識できる角の移動量口幅のおよそ1/8(65 mmの場合は8 mm、0.03 H);1/30では見えない実測
mmあたりのピクセル数バストが1080 pxを占める場合:2.8;バストの高さが270 pxの場合:0.75実測(framing)
スムーズの強さ0.2(5.2のデフォルトは0.7)Henning
クリースの解像度半径の幅に少なくとも3〜4頂点Ryan King
レビュー用レンズ85〜95 mmの遠近法Morren、Kaspar、Naydenov、Yan
ランドマーク目のラインは0.5 H;鼻の下端は眉から顎までの中間;唇の合わせ目は鼻から顎までの1/3;耳は鼻の付け根から眉まで;幅はH/1.5;口角は瞳の中心の真下;外眼角の傾きは約8度;首は約15度前傾Abbitt、Naydenov、Thelen

品質ゲート

  • 測定可能な指標: S.stage_report(obj, voxel)(コンポーネント数 1、非多様体 0、ストレッチの p95/中央値が 2.5 未満、非対称化前の mirror_max が 1e-4 未満)。S.lower_face_report(head, H):ball が True の場合、下顔面が平面より 2 倍以上よく、10%以内の誤差で 1 つの球に収まります(キャリブレーション値:E2 の風船を使った顎 3 例は 0.057~0.082、ベースラインは 0.18~0.20、v2 の例は 0.23~0.26)。S.profile_rhythm(obj):顎が前に出て、引っ込み、唇が前に出て、引っ込み、鼻が前に出ます(鼻の付け根より下に垂れた鼻は、唇の起伏を隠します)。指定した平面に対する sc.planarity(c, r)。
  • 視覚(ゲート): 正面、側面、斜め前、下から、85~95 mm の S.long_lens_render または final_render を使用し、さらに正投影シルエットには bx_review.review(..., modes=("silhouette", "matcap")) を使用します。順序:シルエット、大きな面(キャビティをオフにするか、mode="flat")、下からと上から、線、サムネイルサイズでのキャラクターの見え方。評価基準: references/critique.md。

よくある間違い

失敗例どのように見えるか修正方法
rounded_box または ellipsoid のような顎、過度なスムージング下顔面が風船のようになり、頬、顎、顎下が一つの球になる指定した平面を持つ Clay の顎ブロックを作成し、lower_face_report のゲートで確認します
「平面を作る」ために、軽く叩いた箇所を平らにする、または削る球の形に沿ったファセット指定した平面を作成します。Clay のクリップ、plane_cut、corner_cut を使います
不適切なマスに平面カットを施す縁のある宝石のファセット。指標上は合格先にマスを移動するか作り直してから、カットします
顎ブロックの前面が口より前にある下顔面を覆うマスクや板顎を頬の盛り上がりの後ろに置き、前面は頬の盛り上がりと顎に持たせます
顎ブロックが高く、ブレンドが小さい頬を横切るパネルの縁低いブロックにして、上方向に 0.15 H ブレンドします
眼窩がまぶたより広い輪状の溝、目の下のたるみ眼窩を眼球の 1.1 倍にし、まぶたを 0.012 H ブレンドします
まぶたが眼球の赤道より後ろまで伸びている閉じたポケット、3 つのコンポーネント眼の中心面でまぶたをクリップします
髪のオフセットが均一、または厚いベースキャップに房を追加しているヘルメットの縁、ミミズのような房が付いたビーニーベースを薄くし、房でボリュームを作ります
生え際より後ろから房が始まっている額の上に何もないヘッドバンド生え際から房を始めます
非対称なパーツを対称化している流した髪が鏡像になり、中央に継ぎ目ができるto_object(..., symmetric=False)
表面をかすめる方向から見た面に折り目を投影する平行なひび割れ視点に正対する面にだけ折り目を付け、それ以外は省きます
笑顔をベース形状に彫り込んでいる非対称を取り除けないニュートラルなベースを使い、write_shape_key を使います
口角を 1~2 mm 動かす表情が見えない口幅のおよそ 1/8 にし、ピクセル単位で確認します
髪も衣装もない髪のないマネキンステージ 0 の手がかりリストを使います
プロポーションより先にディテールを作る間違った頭蓋骨に線を描いているゲートを通過するまでは大まかな形を保ちます
遠くから nearest を使ってストロークをスナップする鼻先の溝on_surface(p, view)
リメッシュ後もマスクが残っているどのブラシでも反応しない領域があるremesh_stage でクリアします
ビューを縮小した状態で GUI ストロークを使うメッシュ全体が平らになるbx_gui.set_view(frame=obj) を設定し、view_distance を確認します
生え際を傾いた一つのカットとして作る横から見るとギャリソンキャップのようになり、前面に垂直な壁ができる方位角に応じた関数として生え際を作ります(もみあげ、耳の上、うなじまで)。生え際から約 0.12 H の範囲に、クイッフの傾斜を作ります[eval]
左右対称な目視線がなく、見つめるような、またはぼんやりした印象狙いを付けた 2 つの眼球を作ります。まぶたの縁と眉の角度を印象の調整に使います(ニュートラルなベースでは眉を水平にします)[eval]
特徴が 2 点でしか接続されていない横顔で鼻が浮いて見え、透けた隙間があるビューごとにレイグリッドでシルエットの穴を検査します。大きな鼻には頬につながる側壁を作り、最後のリメッシュ後に bx_audit で自己交差を検出します[eval]

Blender 5.2 の注意事項

  • ヘッドレスでクラッシュ(セグメンテーションフォルト):スカルプトモードでは sculpt.symmetrize、sculpt.mesh_filter、paint.mask_flood_fill、 sculpt.mask_filter、sculpt.face_sets_create、sculpt.face_sets_init、object.voxel_remesh がクラッシュします。ポーリングに失敗:sculpt.brush_stroke、sculpt.set_pivot_position、 sculpt.detail_flood_fill、トリムジェスチャ。動作するもの:paint_mask_extract、brush.asset_activate、 編集モードの mesh.symmetrize、quadriflow_remesh、マルチレゾリューションの操作。
  • OpenVDB は Blender 5.2 に同梱されています(import openvdb)。FloatGrid.copyFromArray と convertToQuads で Clay をメッシュ化できます。
  • ブラシは Essentials アセットです。Flatten、Fill、Scrape は Plane タイプに統合されています。size は直径です。 Draw Sharp のデフォルトは SUBTRACT です。sculpt_tool は sculpt_brush_type です。
  • ボクセルリメッシュの出力はフラットシェーディングです(shade_smooth())。属性(マスクを含む)は保持され、シェイプキーは削除されます。
  • Blender の NumPy 2 では、a.ptp() ではなく np.ptp(a) を使います。

参考資料

  • references/procedures.md:すべての段階でテスト済みのコード(Clay のレシピ、平面、形状チェック、髪、まぶた、表情、最終レンダー、クラッシュ一覧、ブラシ一覧、GUI のレシピ)。スカルプトスクリプトを書く前に読み込んでください。
  • references/expert-notes.md:タイムスタンプ付きの専門家による原則。キャラクターを設計するときや手法を選ぶときに読み込んでください。
  • references/critique.md:ブロッカーを含む段階ごとの評価基準。各ゲートで読み込んでください。
  • references/sources.md:最適なタイムスタンプを付けた27本の参考動画。
  • 例:tests/code/blender-sculpting/stylized_head_blockout.py(13秒。stylized_head/stage_N/ にレンダーを出力)。比較用:tests/code/blender-sculpting/compare/compare_sheet.png。

コメント