Maya 2022にはUSDおよびUSDZファイルを出力できるプラグインが付属しています。これを使ってUSDファイルやUSDZファイルを作ってみました。何度もトライ&エラーを経て、テクスチャー付きでUSDファイルやUSDZファイルを出力できるようになりました。
この記事では、設定や手順についてまとめました。
動作環境
本記事作成時に動作を確認した環境は以下の通りです。
- Windows 11 Pro 21H2
- Maya 2022.3 Windows版
テクスチャーのファイルパス
USD/USDZファイルに書き出すときは、テクスチャーのファイルパスに注意が必要です。ファイルパスの中に、ひらがな、カタカナ、漢字などの全角文字などが入っているとエラーになります。スクリプトエディターのヒストリーに次のようなエラーが出力されます。
// エラー: Invalid asset path string -- character 27: invalid UTF-8 code point byte 0x83
半角英数文字以外が含まれないようにします。上位フォルダーなどに入っている場合もダメなので、ファイルを置く場所に注意しましょう。盲点だったのがユーザー名に漢字が含まれていてエラーになることです。ホームフォルダーのファイルパスに漢字が含まれてしまってエラーになったこともありました。
Usd Preview Surfaceを使用する
USD/USDZファイルに書き出すモデルのマテリアルは、Usd Preview Surfaceに設定します。ArnoldのaiStandard Surfaceなどで設定したマテリアルは出力されません。

Usd Preview Surfaceを用いると、Arnoldでのレンダリングが不可能となります。レンダリングは「Mayaハードウェア」などを使う必要があります。

Subdivision方法をNoneにする
USD/USDZファイルを書き出すには、「ファイルの種類」から「USD Export」を選択します。USD Exportのオプションの「Subdivision Method」を「None (Polygonal Mesh)」に変更します。このオプションは「ファイルタイプ特有のオプション」の「Geometry」の中にあります。

デフォルト設定の「Catmull-Clark」を使うと、形が全体的に崩れます。次のスクリーンキャプチャはUSDZで書き出したときに、上が「Catmull-Clark」、下が「None (Polygonal Mesh)」を選択して書き出したものです。


拡張子をusdzにする
書き出しダイアログにて、ファイル名の拡張子をusdz
に指定することで、テクスチャーを含むUSDZファイルが出力されます。拡張子を指定しない場合、テクスチャーファイルへの参照情報を含むUSDファイルとなります。
トラブルシューティング: USDファイルのファイルパスは絶対パスになる
Usd Preview Surfaceの設定でテクスチャーファイルへのパスを相対パスにすると、USDファイル書き出し時にエラーになってしまい、テクスチャーの情報が出力されません。絶対パスを設定する必要があります。そのため、複数のマシンで持ち回るときに、各ユーザーのホームディレクトリ以下にファイルを置くと、うまく運用できないと思います。
トラブルシューティング: どのファイルが問題かを探す
どのファイルに問題があるか見つけるには、書き出しオプションで、「.usd File Format」を「ASCII」に変更して書き出します。このオプションは「ファイルタイプ特有のオプション」の「Output」の中にあります。
書き出されたファイルをテキストエディターで開き、asset input:file = @@
で検索すると、書き出されなかったマテリアルが見つかります。正しく書き出されると、@
と@
の間にファイルパスが書き込まれます。