MayaからUSD/USDZを書き出す方法

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 = @@で検索すると、書き出されなかったマテリアルが見つかります。正しく書き出されると、@@の間にファイルパスが書き込まれます。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashiのアバター Akira Hayashi 代表・ソフトウェアエンジニア

アプリ開発が好きなアプリ開発者。このブログは学習メモを記事にしたテックブログです。仕事ではアプリ開発をメインに、技術書の執筆やセミナーの講師などもしています。業務や著書のサイトはこちらです→ アールケー開発

目次