mcpField
B
blender-retopology-uv

blender-retopology-uv

github.com/el4cteoクリエイティブ・メディア569109 回インストール2 週間前に更新
リポジトリ

blender-retopology-uv について

BlenderでリトポロジーとUVを扱うアーティストやテクニカルアーティスト向けのワークフローガイドです。自動・手動のメッシュ処理から、UV配置、テクセル密度、特殊なケースまで説明します。

主な機能

  1. 01自動リトポロジー手法の選択
  2. 02変形メッシュのエッジフロー規則
  3. 03UVシームとアンラップ手法
  4. 04UVアイランドの配置と密度管理
  5. 05特殊なUVワークフロー

活用シーン

  1. 01ゲーム用プロップのローポリ化
  2. 02変形キャラクター向けトポロジーの作成
  3. 03メッシュのUV展開と配置
  4. 04UVやテクセル密度の問題診断

インストール

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

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

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

同梱ファイル

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

scripts/
_bpyx.py
auto_retopo.py
texel_density.py
uv_pack.py

詳細

リトポロジーとUV

実行モデルについては blender-core を参照してください。

リトポロジー

自動(scripts/auto_retopo.py -- --objects Sculpt --tris 8000 --method ...)では、<name>_low が作成され、ソースは非表示になります。

Method用途備考
quadriflow有機的な小道具、静止キャラクター、スキャンデータクリーンな四角形ポリゴンです。まずボクセルリメッシュを行い、入力を多様体にします。UVは失われるため、再展開が必要です
decimate背景の小道具、LOD、AI生成メッシュUVと形状を維持し、三角形ポリゴンを生成します。高速です
planarハードサーフェスのCAD/ブーリアン演算結果平坦な領域を溶解し、シーム/シャープ/マテリアル/UVの境界を維持します

手動(主役級キャラクター、または変形するあらゆるもの)。Shrinkwrap モディファイア(PROJECT、ターゲット=スカルプト)を設定した新しいメッシュオブジェクトを作成し、スナップを FACE_PROJECT と use_snap_project に設定します。ソースは別のビューポートカラー/X線表示にします。下記のエッジフローが重要なため、自動リトポロジーでは変形する主役級メッシュには不十分です。

変形するメッシュのエッジフロー規則
  • 目と口の周囲に同心ループを配置します(3リング以上)。鼻唇溝のループは鼻翼から口角へ流れるようにします。
  • 曲がる関節(肘、膝、指の関節)にはそれぞれ3ループを配置し、ボリュームを保つため両側にもループを配置します。肩には腕を上げるための追加ループが必要です。
  • 極(3辺/5辺の頂点)は曲がる部分を避けます。胸や後頭部など、平坦で硬い領域に配置してください。
  • 四角形ポリゴンを均等に配置し、変形やシルエットに必要な場所では密度を高めます。三角形は、隠れていて変形しない箇所にのみ使用してください。
  • 2026年のキャラクターの三角形数の目安:モバイル 5–15k、Roblox のボディは合計 ≤ 10.7k、コンソール/PC の三人称視点では 30–80k、主役級/シネマティックでは 100k 以上です。blender-game-optimization で対象プラットフォームを確認してください。

UV

  1. シーム:目立たない位置(腕の下、脚の内側、後頭部、パーツの下)に隠し、硬いエッジに沿わせ、円柱は背面で切ります。ゲーム用メッシュのルール:すべての硬いエッジ(>~60°、sharp_edge)をUVシームにする必要があります。そうしないと法線マップにアーティファクトが発生します。scripts/uv_pack.py --seams-from-sharp 60 で設定できます。
  2. 展開:--method seams(マーク済みシームを使う Angle Based)、--method min_stretch(SLIM、4.3 以降。有機的な形状で歪みが最小)、--method smart(ハードサーフェス/自動、--angle 66)。
  3. 長方形のアイランドをまっすぐにします(Follow Active Quads、ライブのみ)。トリムやピクセルグリッドを揃えられます。
  4. アイランドスケールを平均化してパックし、ピクセル単位で余白を設定します:2k → 8 px、4k → 16 px、モバイル 1k → 4 px。--shape CONCAVE は最も密にパックできます(ヘッドレスでは低速)。デフォルトの AABB は即座に完了します。
  5. テクセル密度(scripts/texel_density.py --res 2048):アセット内の spread を 1.3 以下に保ちます。--set <px/m> で設定します。fits_0_1 が false の場合は、解像度または密度を変更してください。
  6. QA:blender-asset-qa は、面積ゼロのUV面と重なり率を報告します。
テクセル密度の目標(px/m、スタジオの基準値であり、絶対的な規則ではありません)
コンテキストpx/m
一人称視点の主役級アセット/武器1024–2048
一人称視点の環境512–1024
三人称視点のゲーム512(コンソール/PC)、256(モバイル)
見下ろし型/ストラテジー128–256
Robloxテクスチャあたり約 256–512:5×5 studs → 256²、10×10 → 512²、20×20 → 1024²
同じシーン内のすべてのものは、同じ密度に揃える必要があります。例外は主役級アセットで、密度を2倍以内に保ちます。

特殊なケース

  • ミラー/積層 UV:スペースを節約できますが、固有のベイクができなくなります。ベイク中は重複する島を正確に +1 U 移動して(0–1 の範囲外へ)、その後元に戻します。法線マップはミラーに対応している必要があります(MikkTSpace を使用するエンジンではタンジェント空間が対応します)。
  • ライトマップ UV2(--lightmap。UVMap_Lightmap を生成):重なりがなく、すべての島が 0–1 の範囲内にあり、十分なマージンが必要です。Unreal/Unity では独自に生成できます。エンジンのパイプラインで必要な場合にのみ同梱してください。テクスチャリング用には UV0 をアクティブにしておきます。
  • UDIM(映像/ヒーローアセット向け):島を 1001 以降のタイルに配置します(タイルごとに U を 1 ずつオフセットします)。テクスチャノードの画像は source="TILED" にします。ほとんどのゲームエンジンは UDIM に対応していません。
  • トリムシート:帯状の部分を展開してから、トリムの列に合わせて島をスケール・移動します(V 位置はトリムレイアウトに従います)。タイリングのため、島が U 方向で 0–1 の範囲を超えてもかまいません。
  • Roblox:UV セットは 1 つだけにし、すべてを 0–1 の範囲内に配置します。重なりは許可されています。

注意点

  • 5.0 以降:UV の選択状態は UV マップ間で共有されます(.uv_select_* 属性)。古い BMLoopUV.select コードは動作しません。
  • uv.* オペレーターは Edit Mode で実行され、選択中の面に作用します。最初にすべてを選択してください(スクリプトでは自動的に処理されます)。
  • ヘッドレス環境での uv.pack_islands は、回転を有効にした CONCAVE/CONVEX では、小さなメッシュでも 2~25 秒かかることがあります。反復作業中は AABB を使用してください。
  • 展開時の警告「failed to solve island」:その島にシームがありません(閉じた形状です)。シームを追加してください。
  • テクセル密度を測定する前にスケールを適用してください。適用しないと密度が正しく表示されません(スクリプトはワールド空間を使用し、スケールをすでに考慮しています)。

コメント