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 を使う
Usd Preview Surface を使う

Usd Preview Surface を使うとArnoldでレンダリングできなくなります。レンダリングは「Maya ハードウェア」などを使う必要があります。

Maya ハードウェア でレンダリング
Maya ハードウェア でレンダリング

Subdivision方法をNoneにする

USD/USDZファイルを書き出すには、「ファイルの種類」から「USD Export」に変更します。USD Exportのオプションが表示されたら、「Subdivision Method」を「None (Polygonal Mesh)」に変更します。「ファイルタイプ特有のオプション」の「Geometry」の中にあります。

None (Polygonal Mesh) に変更する
None (Polygonal Mesh) に変更する

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

Catmull-Clark で出力
Catmull-Clark で出力
None (Polygonal Mesh) で出力
None (Polygonal Mesh) で出力

拡張子をusdzにする

書き出しダイアログで書き出すときに、ファイル名の拡張子を usdz にするとテクスチャーを埋め込んだ USDZファイルが出力されます。拡張子を入力しないときは、テクスチャーファイルへの参照情報が書き込まれたUSDファイルとなります。

トラブルシューティング : USDファイルのファイルパスは絶対パスになる

Usd Preview Surfaceの設定でテクスチャーファイルへのパスを相対パスにすると、USDファイル書き出し時にエラーになってしまい、テクスチャーの情報が書き出されません。絶対パスを設定する必要があります。複数のマシンで持ち回るときに、各ユーザーのホームディレクトリ以下にファイルを置くと上手く運用できないと思います。

トラブルシューティング : どのファイルが問題かを探す

どのファイルに問題があるか見つけるには、書き出しオプションで、「.usd File Format」を「ASCII」に変更して書き出します。「ファイルタイプ特有のオプション」の「Output」の中にあります。

書き出されたファイルをテキストエディタで開き、asset input:file = @@ で検索すると書き出されなかったマテリアリが見つかります。正しく書き出されると、@@の間にファイルパスが書き込まれます。

投稿者プロフィール

林 晃
林 晃アプリ開発者
アールケー開発代表。Appleプラットフォーム向けのアプリ開発が好きなアプリ開発者。アプリの受託開発、技術書執筆、技術指導・セミナー講師。3DCGコンテンツ作成にも取組中です。

基礎から学ぶARKit


「基礎から学ぶARKit」を執筆しました。本書はARKitを使ったARアプリの開発方法を解説した技術書です。

ARKitを使ってARアプリを作るときの流れや基本的なAPIの使い方などをサンプルアプリを作りながら学べます。

詳細

基礎から学ぶMetal


「基礎から学ぶMetal」を執筆しました。本書はMetalを使ってGPUプログラミングを行うための最初のステップを解説するMetalの解説書です。

私が初めてGPUプログラミングを行ったとき、どこから手をつけて、学んでいけば良いのか分からず呆然としました。もし、あのとき、これを教えてくれればという部分を解説しました。本書で解説している部分はMetalの基礎となる部分で、Metalを使うときに必ず触れることになる部分です。

詳細

関連記事

  1. Mac Miniで minidlna を動かす

  2. XcodeやAppCodeで16進数や2進数で値を確認する方法

  3. Swiftでコマンドラインツールを作る(コマンドライン引数と標準入出力…

  4. Markdownの編集環境をセットアップする

  5. Ubuntu Server のシステム更新

  6. iPhone / iPadのソフトウェアアップデート

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事