【2026年版】MayaからUSDでBlenderに渡すと何が落ちる?既定の書き出しの落とし穴5つを3.6と5.2で実測

当ページのリンクには広告が含まれています。
maya usd to blender export pitfalls 2026
🎨 3DCG専門スクールで学習(2026年9月まで)
🖌️ Blender・Maya・ZBrush・Substance Painter実習
📝 Tech Otaku Lab運営

Maya 2025 から既定のまま USD を書き出すと、アニメーションが入らず、インスタンスにしたオブジェクトのマテリアルが抜けました。最上位の要素が複数あると既定プリムがライトになり、ほかのファイルから参照するとメッシュが0個になります。Blender 3.6 では cm がそのまま m として読まれ、100倍の大きさになりました。

書き出しでフレーム範囲・インスタンス無効・ルートプリムを指定し、マテリアルは UsdPreviewSurface のままにすると、形・色・テクスチャ・頂点カラー・動き・カメラが 3.6 でも 5.2 でも残りました。

Maya で作ったモデルを Blender へ渡すとき、USD は FBX に代わる選択肢になります。ただ、書き出しと読み込みの既定の設定で何が残り、何が落ちるのか。同じ検証機の Maya 2025 で小さなシーンを作って USD に書き出し、Blender 3.6.11 と 5.2.1 LTS で読み込んで、残ったものを数えました。

目次

何を書き出して、何を数えた?

シーンには、よく使う要素を1つずつ入れました。

入れたもの 中身
形 立方体・球・板(グループの中に入れ、グループを回転)
マテリアル standardSurface(色と粗さ)・画像テクスチャ付きの standardSurface・lambert
動き 立方体の移動(1〜24フレーム)
その他 球のインスタンス・頂点カラー・カメラ(35mm)・平行光源・点光源

測り方:Maya 2025(MayaUSD 0.32.0・USD 0.23.11)を画面なしの mayapy で動かし、mayaUSDExport で書き出しました。Blender は初期設定・画面なしで、USD の読み込みを既定の設定のまま実行し、物体の数と位置、カメラの焦点距離とライトの種類、マテリアルのノード、フレームごとの位置を Python で取り、Maya で設定した値と比べました。頂点の座標・UV・頂点カラーは Maya の値と1つずつ突き合わせ(1mm・0.001・0.01 だけずらした対照は不一致と判定)、テクスチャは描画して確かめています。2026年9月26日測定。

既定のまま書き出すと何が落ちる?

5つありました。どれも書き出しか読み込みの設定で避けられます。

落ちたもの 原因 避け方
アニメーション 書き出すフレーム範囲の既定が1〜1 frameRange を指定
インスタンスのマテリアル インスタンスへの割り当てを書けない exportInstances をオフ
参照したときのメッシュ 既定プリムがライトになった rootPrim で1つにまとめる
MaterialX のマテリアル Blender で中身が空になった UsdPreviewSurface(既定)のまま
大きさ(3.6 のみ) cm を変換せずに読む 読み込みの Scale を 0.01

アニメーションは frameRange を指定しないと入らない

既定のまま書き出すと、立方体は1・12・24フレームで同じ位置のままでした。MayaUSD の公式 Readme でも、書き出しの frameRange の既定は [1, 1] です。1〜24を指定すると動きが入り、Blender ではキーフレームではなく Transform Cache 制約として読み込まれました(Blender のマニュアルの記述どおり)。

インスタンスにしたオブジェクトはマテリアルが抜ける

exportInstances は既定でオンです。この状態では、テクスチャを貼った球に Blender の両方の版でマテリアルが付いていませんでした。Maya は書き出し時に「Can’t author direct material binding on instance proxy」という警告を出しており、USD にも割り当てが書かれていません。exportInstances をオフにすると、テクスチャ付きのマテリアルが 3.6 でも 5.2 でも残り、描画すると球にチェッカー模様が出ました(マテリアルを外した対照では模様なし)。

UdemyでBlenderの講座を探す※ 講座の内容と返金の条件は、購入前に公式ページでご確認ください

最上位が複数あると、参照したときにメッシュが0個

今回のシーンでは既定プリム(defaultPrim)が点光源になり、マテリアルもその下に置かれました。公式 Readme は「指定が無ければ最初の最上位」と説明していますが、実際に選ばれたのはファイル上で最後の最上位でした。このファイルを別の USD からプリムを指定せずに参照すると、読まれたのはマテリアルだけで、メッシュは0個です。rootPrim で全体を1つのプリムにまとめると、参照でメッシュ4個がそろいました。Blender で直接開く場合は全体が読まれるので、この問題は出ません。

MaterialX で書き出すと、Blender ではマテリアルが空

convertMaterialsTo を MaterialX にすると、lambert とファイルテクスチャは Maya 独自のノードとして書き出されました。Blender は 3.6 も 5.2 もマテリアルを作りましたが、中のノードは0個で、立方体の色も失われました。既定の UsdPreviewSurface なら色と粗さが残ります。

Blender 3.6 では100倍の大きさになる

Maya の既定の単位は cm で、USD には「1単位=0.01m」と書かれます。5.2 は読み込みの Apply Unit Conversion Scale(既定でオン)がこの値で縮め、100cm の立方体が1mになりました。3.6 にはこの項目が無く、100m の立方体になります。3.6 で読むときは Scale を 0.01 にします。

残ったものは?

項目 結果(3.6・5.2 共通)
形 頂点の座標が3つとも一致(m・Z-up に直して最大差 0.000001m)
UV・頂点カラー 値が1つずつ一致
standardSurface 色(0.8, 0.2, 0.1)と粗さ 0.4 が残った
lambert 色×Diffuse(0.8)=0.16, 0.48, 0.16 に
上方向の軸 X軸90度の回転で Z-up に直った
カメラ・ライト 焦点距離35mm と種類は残った

違いが出たのは2点です。インスタンスは 3.6 が別々のメッシュに展開し、5.2 はコレクションのインスタンスのまま読みました。ライトの強さは、USD に書かれた値(2と3)が 3.6 ではそのまま、5.2 では8と約9.42になりました。明るさは描いて合わせ直すのが確実です。

どう書き出せばいい?

今回すべてが残った設定です(Maya の Python)。

import maya.cmds as cmds
cmds.loadPlugin("mayaUsdPlugin", quiet=True)
cmds.mayaUSDExport(
    file="C:/work/scene.usda",
    frameRange=(1, 24),          # 動きを入れる
    exportInstances=False,       # インスタンスのマテリアルを残す
    rootPrim="scene",            # 全体を1つにまとめる
    convertMaterialsTo=["UsdPreviewSurface"],
)

Blender 5.2 は既定のまま読み込めます。3.6 は読み込みの Scale を 0.01 にします。

まとめ

Maya から USD で渡すときは、既定のまま書き出さず、フレーム範囲・インスタンス・ルートプリムの3つを指定します。インスタンスをオフにするとファイルは大きくなります(今回は約55KB→約94KB)。スキンやブレンドシェイプ、複雑なシェーダーは試していません。

Maya の USD 対応の仕組みはMayaUSD の4モジュールと2種類のバージョン番号、Blender の版の違いは3.6 と 5.2 のファイル互換、基本の操作はBlender の完全入門にまとめています。

UdemyでBlender・3DCGの講座を探す※ 講座の内容と返金の条件は、購入前に公式ページでご確認ください

よくある質問

Maya から USD で書き出すとアニメーションが入らないのはなぜですか?
書き出すフレーム範囲(frameRange)の既定が1〜1だからです。当サイトの検証では、既定のまま書き出すと Blender で動かず、1〜24を指定すると動きました。Blender では Transform Cache 制約として読み込まれます。
USD にしたらテクスチャが消えたのはなぜですか?
インスタンスにしたオブジェクトの場合、MayaUSD がマテリアルの割り当てを書き出していない可能性があります。当サイトの検証では、exportInstances をオフにするとテクスチャ付きのマテリアルが Blender 3.6 でも 5.2 でも残りました。
Blender 3.6 で USD を読むと大きさが100倍になるのはなぜですか?
Maya の既定の単位が cm で、3.6 は USD の単位を変換せずに読むためです。3.6 は読み込みの Scale を 0.01 にします。5.2 は Apply Unit Conversion Scale が既定でオンなので、そのままで m に直ります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITインフラエンジニア歴12年、クラウド(AWSがメイン、一部Azure)の実務は4年目(いずれも2026年時点)。社会人向けの3DCGスクールを2026年9月に卒業。Windows 11 + RTX 4070 Ti SUPER の自宅環境で実際に手を動かしながら、インフラ・クラウド・AI・3DCGの技術記事を書いています。

コメント

コメントする

CAPTCHA


目次