mcpField
B
blender-texturing

blender-texturing

github.com/el4cteoクリエイティブ・メディア1.1k288 回インストール今日更新
リポジトリ

blender-texturing について

テクニカルアーティスト向けのBlenderテクスチャリングスキルです。摩耗、汚れ、ほこり、さびを重ねた表現やデカールを作成でき、編集可能なレイヤーと、ゲームエンジン向けのベイクに対応します。

主な機能

  1. 01摩耗、さび、汚れ、ほこりのプロシージャルレイヤー
  2. 02CyclesとEEVEE対応のライブ曲率マスク
  3. 03レイヤー削除時の元状態の正確な復元
  4. 04表面に沿ったデカール配置
  5. 05書き出し用PBRテクスチャセットのベイク

活用シーン

  1. 01プロップのマテリアルに経年表現を追加
  2. 02壁面に警告デカールを配置
  3. 03ゲームアセット用にマテリアルをベイク
  4. 04曲率マップとAOマップでマスクを調整

インストール

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

$npx skills add https://github.com/el4cteo/blender-skills --skill blender-texturing

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

同梱ファイル

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

references/
trims-tiling-painting.md
scripts/
_bpyx.py
decal.py
smart_material.py

詳細

テクスチャリング

実行モデルは blender-core にあります。マテリアルの接続と計測値は blender-pbr-materials に、ベイクは blender-texture-baking にあります。このスキルが作成するのは、表面のストーリーです。塗装が剥がれる場所、汚れがたまる場所、何が印刷されているかを定めます。

それぞれを1回呼び出す

scripts/smart_material.py -- --objects Crate --wear 0.5 --grime 0.4 --dust 0.3
scripts/smart_material.py -- --objects Crate --rust 0.6 --under-color 0.3 0.29 0.28    # rusty iron
scripts/smart_material.py -- --objects SM_Crate --wear 0.5 --curvature-map //tex/T_Crate_CURV.png --ao-map //tex/T_Crate_AO.png
scripts/decal.py -- --target Wall --at 0 -0.1 1.5 --image //decals/hazard.png --size 0.4
scripts/smart_material.py -- --objects Crate --remove                                  # exact restore

プロがマテリアルを重ねる方法

まずクリーンなベース(正しいアルベド/ラフネス、blender-pbr-materials)を用意し、内側から外側へ重ねます。ベース → エッジの摩耗 → 錆 → 汚れ → ほこり。各レイヤーには物理的な原因があります。

レイヤーマスク(原因)見た目
エッジの摩耗凸状の曲率(エッジはぶつかりやすい)+チップノイズ下地のマテリアルが露出します。地金、プライマー、無垢材など
錆キャビティと摩耗したエッジ+斑点ノイズオレンジブラウン、メタリック 0、ラフネス ~0.85
汚れ凹状の曲率+(1 − AO)(拭き取れない場所に汚れがたまります)暗く、ラフネスは高め、非メタリック
ほこり上向きのワールド法線 × パッチノイズ(上から降り積もります)明るく、ラフネス ~0.9
ばらつきラフネスに細かいノイズ(±25%)最も手軽にリアリティを高める方法です。ラフネスを一定値のまま出荷しないでください
曲率だけだと、プロシージャルで均一な見た目になります。摩耗が強い場所とない場所を作るため、必ずノイズを掛け合わせてください。控えめが効果的です。摩耗 0.2~0.4 は「使い込まれた」印象になり、0.7 以上は「放置された」印象になります。

smart_material.py

  • すべての Principled BSDF の前に TX_Layers グループを1つ挿入し(Base Color、Roughness、Metallic)、元の設定を記録するため、--remove でリンクと値を正確に復元できます。再実行すると値がその場で更新されます。レイヤーの量はすべてグループノードの入力として設定されるため、そこで調整できます。
  • 曲率はライブでポータブルです(Cycles + EEVEE、ベイク不要)。TX_Curvature ポイント属性は、--edge-width(m、デフォルト 0.02)以内にある近傍点の平均高さです。密度に依存せず、帯の幅はおよそエッジ幅です。幅はベベル幅に近い値に設定します(プロップは 1~3 cm、建物は 5~10 cm)。コストは 3 万頂点あたり約 1.5 秒です。
  • 中程度のポリゴン密度(ベベル/サポート)が必要です。中央値のエッジ長がエッジ幅の 4 倍を超える場合、結果に note が付与され、摩耗が面全体に広がる可能性が示されます。低ポリゴンのゲームメッシュでは、ハイポリメッシュからベイクして(bake_maps.py --high ... --maps normal ao curvature)、--curvature-map/--ao-map を渡します(Non-Color として読み込み、--uv 経由で読み取ります)。
  • ノイズはオブジェクト空間にあります(--scale = 特徴のサイズ、m)。そのため、アセットを動かしてもマスクは貼り付いたままです。ミラー/リンクされた複製ではパターンが共有されるため、問題になる場合は --scale かオブジェクトを変えてください。
  • 色は sRGB 0~1 です。デフォルトは塗装の下地がスチールです(0.56, 0.57, 0.58, metallic 1, roughness 0.35)。塗装の下地に木材を使う場合は、--under-color 0.45 0.32 0.2 --under-metallic 0 --under-roughness 0.7 を使用してください。

ゲームエンジン向け

エンジンでは Blender のノードツリーを実行できません。結果をテクスチャセットにベイクします。bake_maps.py -- --low SM_Crate --maps basecolor roughness metallic normal --pack-orm(セルフベイク、--high なし)。次に build_pbr_material.py --textures を実行して、エクスポートします。blender-asset-qa とライティングした look で結果を確認してください。

デカール(decal.py)

  • --at に最も近いサーフェスポイントに細分化した平面を配置し、法線に合わせて向きを設定し、--rotation で回転させます。Shrinkwrap(投影、サーフェスより上)によって、サーフェスから --offset(2 mm)離れた位置に保ちます。親が設定され、影はなく、Dithered アルファを使用し、高さは画像のアスペクト比に従います。
  • blender-asset-qa と同様に三角形ごとの隙間を測定し、凸状の折れ目をまたぐ平坦な三角形がめり込まなくなるまで --subdiv を2倍にします(最大 128)。結果には gap_min_m/gap_max_m が報告されます。オフセット 0 でデカールを配置しないでください。必ず Z ファイティングが発生します。
  • ゲームでは、メッシュデカール1つにつきドローコールが1回かかり、アルファソートも必要です。同じアトラスを共有するデカールは1つのメッシュに統合してください。動的なデカールにはエンジンのプロジェクター(UE Decal Actor、Unity URP Decal Projector、Godot Decal)を使うか、ベーステクスチャにベイクしてください。

トリムシート、タイリング、ペイント

頂点カラーのブレンドを使ったトリムシートとタイリング、手作業によるペイント/テクスチャペイント(5.2 のブラシアセット)、ヘッドレスでのピクセル書き込みについては、references/trims-tiling-painting.md を参照してください。

注意点

  • マスクテクスチャ(曲率、AO、ラフネス、ID)は Non-Color にする必要があります。スクリプトで設定されますが、手作業で作成したノードでは設定されていないことがよくあります。
  • 曲率の計算や --scale の設定の前に、スケールを適用してください。どちらもワールドサイズに基づきます。
  • TX_Curvature はメッシュデータです。その後にモディファイアーを適用したり、リメッシュしたりすると無効になるため、トポロジーの変更後に再実行してください。
  • ビューポートの EEVEE と Cycles:マスクは同一です(Bevel/Pointiness/AO のシェーダーノードは使用しません。これらは Cycles 専用またはスクリーンスペースであるためです)。

コメント