mcpField
S
scenario-maya-retopology-uv

scenario-maya-retopology-uv

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

scenario-maya-retopology-uv について

キャラクター、プロップなどの準備に使う、Agent向けのMayaリトポロジーとUVスキルです。カメラ距離や変形要件に合わせてループとUVを計画し、トポロジー、曲げ、テクセル密度、ベイク準備を検査します。

主な機能

  1. 01ランドマークに基づくトポロジー計画
  2. 02テンプレートフィットと部位別構築
  3. 03変形とまぶたの検査
  4. 04カメラ基準のテクセル密度とUV配置
  5. 05ベイクケージと重なりのレビュー

活用シーン

  1. 01変形用キャラクターのリトポロジー
  2. 02ゲームアセットのUVとベイクケージ準備
  3. 03対象ショットのUV密度とパディング確認

インストール

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

$npx skills add https://github.com/scenario-labs/skills --skill scenario-maya-retopology-uv

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

同梱ファイル

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

references/
critique.md
expert-notes.md
gui-paths.md
procedures.md
sources.md
scripts/
mx_retopology_uv.py

詳細

Maya のリトポロジーと UV

熟練者によるリトポロジーでは、変形に耐えられる最小限のポリゴン数でループプランを作成します。まずランドマークを配置し、目と口の周りにループを作り、各関節に3本のループを配置し、動かない場所にポールを置きます。また、クリースの乱れの原因を特定するため、ベンドテストを行います。熟練者による UV 作業では、カメラに映る部分にテクセルを割り当て、最も近いショットから密度を算出し、ミップマップでも維持できるパディングを確保します。マウスを使えない場合、エージェントは承認済みのトポロジーを再利用し、データから構築して、各段階を測定してからレンダリングします。ここに記載されている関連スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください (npx skills add scenario-labs/skills --skill <name>)。無人実行の場合は、ツールのスキーマを参照して作業を進め、不足しているスキルを報告してください。

必須の背景知識: scenario-maya-expert(実行チャネル、レビューループ、2027年のバージョンに関する注意事項)。 ツールキット:scripts/mx_retopology_uv.py (import mx_retopology_uv as RU)。mx_audit、mx_review、mx_run を基盤としています。

ステータス(2026-09-24): Maya の呼び出しはすべて、まだ Maya で実行されていません(未インストール)。オフラインで、純粋なテスト99件と偽 Maya テスト40件が合格しています。まず tests/code/maya-retopology-uv/run_all.sh を実行し、次に job_probe_commands の報告内容を修正してください。

方針(専門家による差分)

  • まずランドマーク、大きなポリゴンを作り、それからパズルのように埋めます。 FlippedNormals は、小さく始めるのは「ひどいやり方」であり、粗い状態なら修正できますが、細かく作り込んだ状態では修正できないと述べています(9N4rG5qHWgk [00:01:05] [00:02:07])。ループのマップは頂点を作る前に用意するデータです。テンプレートのフィットは、エッジを追加する前にベース密度で判定します。
  • 承認済みのトポロジーを再利用します。 FlippedNormals は、完璧な手、耳、またはベースメッシュをあらゆるモデルで使い回します([00:10:11])。Jessica Dru Johnson は、標準的なベースメッシュによって顔のスキニング作業を3日から30分に短縮しました(ZiYEO49B768 [00:58:51])。Quad Draw の代替手段は RU.fit_template です。
  • 変形する部分には自動トポロジーを使いません。 顔では「見た目は正常でも、実際にはそうではない」とされています(FlippedNormals [00:23:15])。自動処理はアニメーションしない部分に使います([00:22:13])。Retopologize は小道具、装甲板、静止した布地には適しています。胴体やゆったりしたコートに使う場合は、変形ゲートを通過させる必要がある、注意付きの出発点です。
  • 変形を分離し、範囲を限定します。 目と口の周りに同心円状のループを配置し、各関節にはコントロールループを1本、サポートループを2本配置します。唇の端から顎の端まで平坦なループを通し、せん断を防ぎます(Jessica [01:15:51] [01:30:10])。上下のまぶたのループ数を揃えます(FlippedNormals [00:21:41])。ポールは動きの少ない箇所や皮膚のひだに配置します([00:12:45])。三角形はくぼみ部分に限ります。nゴンは使いません。ZBrush が三角形化し、ブレンドシェイプが壊れるためです([00:05:31])。
  • 引き渡し前に曲げてテストし、責任の所在を正しく判断します。 antCGi によると、関節(手首、足首、股関節のしわ)に沿って走るループはモデラーが修正し、正しくループが配置されたヒンジで失われるボリュームは、補正シェイプで対処するリグ側の問題です。同じウェイトのままトポロジーを入れ替えて、それを実証します(x07USYlvu2o [00:10:27] [00:16:24])。実際の眼球に合わせてまぶたを配置し、瞬きの際に角膜に沿って曲がるだけのループを確保します([00:15:18];RlNnp4qQIrU [00:08:24])。顔のヒンジはせん断で評価します(Jessica [01:13:06])。四肢では、リニアブレンドを使うと、リングが完璧でもせん断が起きます[追加、測定済み]。
  • Retopologize の注意点(Maya 2027 Help)。 polyRetopo は編集時とファイルを開いたときに再実行されます。履歴を削除してください。複数の属性を変更する間はノードを一時停止します。Preprocess Mesh(既定でオン)は細部を滑らかにします。ノイズの多い10万以上の三角形を含む入力にのみ使います。ハードサーフェスでは 1 / 1 / 0 を使います。メッシュの半分だけを処理してはいけません。エッジコンポーネントのタグでフローを誘導します。
  • 最も近いカメラからテクセル密度を決めます。 Paulino は、最も近いショットで参照するパーツをフレーム内に収め、画面上のピクセル数を2倍にし、2の累乗に丸めてから、すべてのシェルに対して Get/Set を実行します(iL2iXizf9xM [00:02:33])。映像では密度を統一し、UDIMを使います。ゲームでは密度を均一にし、頭部を拡大して、ミラーされたシェルを重ねます(MLC s_KLbTUdKms [00:10:57])。
  • パディングはミップの問題であり、ベイクの準備はジオメトリの問題です。 シェル間は4 px、境界からは2 px空け、ミップレベルごとに2倍にします。Room space は2 pxのままにします(Maya 2027 Help)。UVシームにハードエッジを設定し、ベイクとエクスポートで同じ三角形化を使用します。ミラーUVを1タイルずらした状態で、ミラーモデル全体をベイクします(Polycount)。ローメッシュはハイメッシュに沿わせます(On Mars YDu9pYMkkSM [00:17:45])。

最初に確認する項目

入力計画に影響する理由指示がない場合のデフォルト
目的レンダリング時に分割するフィルム用ケージか、ベイクを使うリアルタイム用三角形かリアルタイム
変形、エンジン顔のリグ、ブレンドシェイプ。口角にスパンを1つ追加したことで、5つ目のインフルエンスが必要になった(Jessica [00:59:24])顔と四肢を変形させ、インフルエンスは4つ。scenario-maya-riggingで確認する
予算リード担当者による三角形数(Polycount)、「必要なだけ高く」(FlippedNormals [00:13:46])画面占有率を基に、仮定として1案を提案する
最も近いショットテクセル密度1920 x 1080、頭部に85 mm(Paulino)
テクスチャマップサイズ、0-1またはUDIM、最低ミップ、方針(最適化、テクニカル、連続)ゲーム:4分の1サイズで見える0-1。映画:4K UDIM。キャラクターは連続
テンプレート、目ベースメッシュ。まぶたに合わせる眼球プリミティブでブロックアウトしたベースと眼球をscenario-maya-modelingに依頼する
ポーズニュートラルな顔、リラックスしたAポーズ、正面を見る目(Jessica [01:00:30]; antCGi e74KphYwMww [00:07:39])ポーズを付けたソースを報告する

体に融合した服(AIメッシュ)。 ぴったりした衣服は、衣服のラインに沿ったループを持つ体のトポロジーになります。ゆったりしたレイヤーは、融合したソースに投影した独自のチューブまたはテンプレートを使います[追加]。プレートは滑らせても、胴体は一体のままです(Jessica [00:44:17])。アニメーションしないシワは、Retopologizeまたはベイクに回します(FlippedNormals [00:22:13])。

ワークフロー

  1. 受け入れ、読み取り専用です。 mx_audit.audit(source) を実行します。source はベイク元のままにします。 RU.prep_source で作業用コピーを作成します(溶接、スムーズ化、非多様体の報告)。破損した source は 再構築するか、投影ターゲットとしてのみ使用します(P2)。トランスフォームで向きを合わせます(cm、Y-up、+Z 正面、足元は 0)。GATE:数値を記録し、粘土シートを確認します。

  2. マッピング。 ランドマーク、開口部ごとのリング数、関節位置、流れを定めます(頬の下の口角、 胸鎖乳突筋に沿った首、鎖骨から後頭部、antCGi RlNnp4qQIrU [00:09:32] [00:37:43])。パーツごとに手法を決めます。GATE:ジオメトリを作成する前に、マップを JSON にします。

  3. パーツごとに作成します。

    パーツ手法呼び出し
    顔、頭、手、ベース付きの胴体ランドマークフィットRU.fit_template
    四肢、指、袖、スカート、尻尾平面断面、関節ごとに 1 + 2 ループRU.limb_stations, RU.build_tube
    小道具、装甲板、固定された布リトポロジーRU.retopologize(mesh, faces, hard_surface=...)
    ベースなしの胴体または顔scenario-maya-modeling のプリミティブベースを作成してからフィットQuad Draw の開始点としてフラグを付けた場合のみリトポロジー(gui-paths.md)

    続いて空洞を作成します:口袋、鼻孔、眼球ポーチ(FlippedNormals [00:25:16] [00:27:22])。GATE: パーツごとに mx_audit.verdict がクリーンであること。

  4. 緩和、中央揃え、ミラー。 RU.relax_project、RU.snap_center、RU.mirror_half(weld 0.001、 antCGi QW8w15J00Ok [00:02:56])を実行し、対称パーツを結合します(e74KphYwMww [00:24:32])。GATE:中央の ずれがなく、対称性が 100% であること。

  5. トポロジーをチェックします。 RU.retopo_report に加え、source の各ビューでワイヤーシートと粘土シートを確認します。

  6. UV 作成前の変形準備完了チェック(antCGi はこの後に展開します)。 各四肢について RU.deform_test(mesh, chain, bends, review_dir=...) を実行します(肘と膝は 90 度と 130 度、手首、足首、腰で確認します。ひねりは四肢の中ほどで評価し、肩や手首では評価しません。x07USYlvu2o [00:08:40])。顎を開く場合は kind="hinge"、RU.lid_check(head, eyeball) を使用します。プロキシウェイトを使い、skinCluster は 使用しません。バインドは scenario-maya-deformation のものを使用します。GATE:topology 判定がなく、まぶたが問題なく、 ポーズシートを確認済みであること。rig 判定は注記として引き継ぎます。修正を RU.compare_variants で実証します(P19、 P20)。

  7. UV。 エッジループをシームにします(RU.loop_keys、RU.cut_seams):首の付け根、頭部の切れ目、口の 内側、袖の線、腕の後ろ、手首、ウエスト、脚の内側、ブーツの履き口、靴底(MLC [00:01:37] から [00:08:05])。布は実際のシームに沿わせます(Paulino [00:05:16])。RU.unfold、RU.optimize を実行し、四肢の シェルは RU.orient_shell、続いて RU.straighten_rows を実行します(MLC [00:04:49])。 RU.mirror_uvs(mode="mirror") を実行します。GATE:計画したシェルになっていて、折り目がなく、歪みが許容範囲内であること。

  8. 密度とパッキング。 RU.density_from_camera(映像)または RU.density_for_budget(ゲーム)を使用します。 RU.set_texel_density(ゲームでは頭部を優先)を設定し、RU.layout(scale_mode="off") と RU.mip_padding を使用します。 UDIM、またはゲームのベイクでは RU.mirror_uvs(mode="stack", offset_u=1.0) を使用します。ただし、AO やロゴが異なる箇所では 使用しません。RU.lightmap_set を実行します。GATE:RU.uv_report が問題なく、UV と RU.checker_review のシートを確認済みであること。

  9. ベイクの準備。 RU.harden_uv_borders、RU.bake_check、RU.make_cage または RU.project_to_surface、RU.bake_copy、RU.overlap_review(low, high, out)(P21)を実行します。GATE:high が ケージ内にあり、ハードエッジがシーム上のみで、三角形分割が 1 つで、シルエットが一致していること。

AI キャラクターのエンドツーエンド手順:手順 P18。

数値

項目値対象、出典
関節ループ制御ループ1本+サポートループ2本、ナックルはそれぞれ3本各屈曲部(Jessica [01:15:51] [01:17:34])
まぶた、唇上側の数 = 下側の数FlippedNormals [00:21:41];antCGi RlNnp4qQIrU [00:05:22]
ミラー、中心カスタム溶接しきい値0.001;ずれの許容範囲は1e-4~1e-2 cm、0にスナップantCGi QW8w15J00Ok [00:02:24];FlippedNormals [00:19:06]
リトポロジーハードサーフェスは1 / 1 / 0;10万以上の三角形ではPreprocessを使用;許容値が10%未満だと遅いMaya 2027 Help
テクセル密度最も近いショットで画面上のピクセル数の2倍、2の累乗Paulino [00:02:33]
マップ、パディング4Kタイル、8Kでは半分のスケールで奇数シェル;4 / 2 px、ミップごとに2倍(512で見える2048:16 / 8)Paulino [00:05:48];Maya 2027 Help
ハードエッジ、ミラーすべてのUVシーム、約45°を超える屈曲部;ミラーUVは1単位ずらすPolycount
デフォメーション [追加]関節ループはボーンから20°以内、15°を超えるスパイラルなし、理想的なリングの面積の0.8を維持;ヒンジの平均せん断は10°未満;面積が0.3未満の面は潰れる;理想的なリングが0.7未満ならリグ上の注意事項organic digest;scenario-maya-deformation
まぶた [追加]まばたき時も含め、安静時に眼球内に何もないこと。頂点とエッジの中点を確認;隙間は眼球半径の0.1未満antCGi x07USYlvu2o [00:15:18]
ゲート [追加]ずれは平均エッジ長の10%未満;UV面積比は0.5~2、異方性は2未満;密度は目標の10%以内;パッキング率は0.7;開口部ごとにクリーンなリングが3本以上;シルエットの差は2%未満このスキル

品質ゲート

コード内(MAYA。Mayaでは未実行):

rep = RU.retopo_report("body_geo", "scan_high", openings={"eye_L": {"point": (3.2, 163, 8.5)}},
                       joints={"elbow_L": {"center": (45, 140, -2), "axis": (1, 0, 0), "radius": 6}})
dt = RU.deform_test("body_geo", [shoulder, elbow, wrist, hand_tip],
                    [{"name": "elbow_130", "joint": 1, "angle": 130, "axis": (0, 1, 0)}])
lid = RU.lid_check("body_geo", "eyeL_geo")
uv = RU.uv_report("body_geo", 4096, smallest_mip=1024, target_density=20.48, images_dir="/abs/out/uv")
print(rep["fails"], dt["verdict"], lid["fails"], uv["fails"])     # full arguments: procedures.md

トポロジー:Nゴンなし、polyRetopoの履歴なし、開口部ごとにクリーンなリングが3本以上かつ左右の半分が等しいこと、各関節帯にループが3本、空洞部のみ三角形を使用、目は頭蓋より高密度、中心のずれなし、topology判定なし。UV:すべての面にマッピング済み、意図しない重なりなし、最低ミップレベルでパディングあり、密度は目標どおり、ゲームではハードエッジはシームのみ。ビジュアル:ワイヤーとクレイのシート(リングが密で、四角形が均等);ポーズシート(解剖学的な屈曲部にしわがあり、ピンチなし);UVシート;3つのビューと最も近いショットでのチェッカー;重なり差分画像(赤:外側の低解像度側を大きく超えている箇所)。references/critique.mdに従って評価します。

よくある間違い

間違いありがちな状態修正方法
フェース上でリトポロジーするもっともらしいグリッドだが、リングがないテンプレートに合わせます。開口部を基準にします
polyRetopo の履歴が残っている編集時やファイルを開いたときにメッシュが再計算されるRU.retopologize で削除します
スキャンや AI メッシュのすべてのエッジがハードエッジになっているリトポロジーが失敗する、または極端に遅くなるprep_source ですべてをソフトエッジにします
内部フェースに対して Cleanup と Merge を実行する延々と非多様体ループになる選択モードで Cleanup を実行して手動で削除するか、Boolean Volume(P2)を使います
手首や足首の曲がる部分をリガーに渡す関節に沿ったループがあり、補正で修正されているtopology の判定に従い、ループをその部分にまたがるように引き直して、A/B テストします
ボリュームの損失に対してきれいなリングを作り直す同じ肘の潰れが起こるrig の判定に従い、scenario-maya-deformation 用のケースについて補正のメモを残します
眼球を作らずにまぶたをモデリングするまばたきでまぶたが突き抜けるlid_check を実行し、まぶたのループを追加してフィットし直します
中心がずれた状態で UV の後にリラックスするミラーの継ぎ目ができ、テクスチャがずれる先に snap_center を実行します。UV の前にリラックスするか、transfer_uvs を使います
シェル全体の UV をまっすぐにする「このひどい状態」向きを整えて行を揃え、ピン留めして内部を最適化します(MLC)
マニフォールドの監査に合格したメッシュで Unfold が失敗するUnfold3D が中止される三角形化した複製を展開します。複製を三角形化し、選択モードで Cleanup を実行します
密度を設定した後に Layout Uniform を使う。ユニークベイクが重なる密度が変わり、AO がミラー反転するscale_mode="off" を使います。方式に応じて重ね、1 タイル分オフセットします
モデルの半分をベイクし、三角形化が二通りある中央に継ぎ目ができ、陰影がジグザグになるミラーしたモデル全体を使い、bake_copy を作成します

引き継ぎ

  • scenario-maya-modeling(ベースメッシュ、眼球、mx_validate(profile="model") でクリーンな状態)、scenario-zbrush-expert(実寸、ニュートラルな状態。ポーズ付きのソースは差し戻し)、scenario-3d(FBX または OBJ[glTF を確認]。そのリメッシュは静的パーツにのみ使用)から受け取ります。ループの不具合はポーズと数値を添えて scenario-maya-deformation から戻します。
  • scenario-maya-rigging と scenario-maya-deformation に引き渡します: 新しいバージョンの <part>_geo を、履歴なしでフリーズし、cm、Y-up、中央に配置して足をグリッドに接地させます。目は分離して前向きにし、口袋を用意し、対称パーツを結合します。retopo_report、deform_test(リグのメモ:補正が必要なヒンジ)、lid_check の JSON、ワイヤー表示とポーズのシートを渡します。
  • scenario-maya-lookdev に引き渡します: UV セット、px/cm、UDIM テーブル、ベイクパッケージ(高解像度メッシュ、三角形化したベイク用複製、ケージ、オフセット、タンジェント基底:Unreal と Unity では MikkTSpace。Arnold の normal_map は MtoA 5.6.1.1、Maya 2027.1 から MikkTSpace モードに対応)、uv_report JSON を渡します。

Maya 2027 のメモ

  • Quad Draw はインタラクティブ操作のみです(先に Make Live を実行します)。2027 年のホットキー表は失われているため、gui-paths.md の 2018 年のパネル情報は[要確認]です。polyRetopo のフラグは保存されません。RU.call が渡すのは、cmds.help に列挙されているフラグのみです。Flow Retopology(クラウド、2027.1)にはサインインが必要です。ヘッドレスでは動作しません。Reduce はデシメーションです。
  • 破損したソース:Mesh > Booleans の Volume モードは、Voxel size を指定すると(2026)水密なメッシュを再構築しますが、2 つ目の入力が必要です。Retopologize の前に Mesh > Remesh を使うと、分布が均一になります。
  • Unfold3D がデフォルトです。非多様体メッシュは拒否し、選択されていない UV にピンを設定します(Legacy では選択項目のみ)。Relax は Optimize > Legacy にあります。Texel Density を使うには、先に Map Size を設定します。Measure には Pixel Distance があります。
  • dgaTension(2026.3)は、参照メッシュに対する伸びをヒートマップで計測します(RU.tension_node、属性は[要確認])。手作業で作成したテストバインドでは、Skin Tools のレイヤーが初期化されず(デフォルトのまま)、そのため skinPercent による作業で全体が塗りつぶされます。スキン適用済みメッシュでは、Non-Deformer History を削除してください。History は削除しないでください(antCGi [00:12:41])。

参考資料

  • references/procedures.md:テストパスを含む P0 から P21 までの完全なコードです。コードを書く前に読み込んでください。
  • references/expert-notes.md:専門家ごとの原則、意見の相違、判断条件です。顔、体、衣服、変形テスト、マッピング戦略を計画する際に読み込んでください。
  • references/critique.md:自己レビュー用の評価基準です。レビューのたびに読み込んでください。
  • references/gui-paths.md:メニュー、ホットキー、ツール設定(Quad Draw、Retopologize、テストバインド、UV Toolkit)です。
  • references/sources.md:認証情報、URL、タイムスタンプを含むすべてのソースです。

コメント