11月12日(火)、13日(水)に開催された「NVIDIA AI Summit Japan」。生成AIや産業デジタル化、ロボティクス、大規模言語モデル(LLM)など、50以上のセッションやライブデモが集まるなか、国内で初の開催となる「OpenUSD Day」では、CG業界での注目度が高いOpenUSDに関するセッションも用意された。
本稿ではそのうち、「開発者目線で解説する OpenUSDの意義とその背景、これから」と「共通交換フォーマットとしてのOpenUSDとアセットパイプラインの継続的進化」のふたつのセッションの内容をレポートする。
関連記事
・NVIDIA Omniverseが切り拓く小売業界向けコンフィギュレータ「Product Configurator」の実力
・日南に聞く、最先端のビジュアライゼーション環境とは? Omniverse、生成AI活用を後押しする、マウスコンピューター「DAIV」
開発者目線で解説する OpenUSDの意義とその背景、これから
本セッションの登壇者は、ポリフォニー・デジタルのソフトウェアエンジニア・手島孝人氏。ピクサーの研究開発部門でOpenUSD、Hydra、OpenSubdivといったオープンソース開発を担当し、日本でも『グランツーリスモ7』(2022)でOpenUSDを活用した識者だ。セッションでは、OpenUSDの歴史から技術的な面白さ、可能性までをわかりやすく解説していた。
■ピクサーの映像制作の現場から生まれたUSDフォーマット
ピクサーが3DCG映像作品制作のプロダクションにおいて、制作工程間のデータのインターチェンジ(互換性)・スケーラビリティ(拡張性)・コンカレンシー(依存関係)を解決するために開発したUSDフォーマット。特に大きなキーワードは「非破壊編集(プロシージャル)」だ。
クリエイティブ界隈では1994年、Photoshop 3で導入された「レイヤー」機能がいち早く非破壊編集を実現し、試行錯誤やバリエーション制作のハードルを大きく下げた。
ピクサーでは『バグズ・ライフ』(1998)制作時から、非破壊パイプラインの研究開発を始め、2012年にはそのパイプラインを「PRESTO」と命名。「PRESTOは、私がピクサーに入って少し経ってから、『メリダとおそろしの森』のために一新したものです。これがその後のピクサー映画制作用の統合環境になって、USDフォーマットの元になるフォーマットもこの時に生まれました」(手島氏)。
ピクサーでは2012年にOpenSuvdivをオープンソース化し業界に受け入れられたことを受け、2016年にはUSDのオープンソース化に踏み切る。それが瞬く間に業界に浸透。「ピクサーが30年近くの経験で培ったノウハウをつぎ込み、実際に映画制作にも使われた、“生きたソフトウェア”だということが、広く受け入れられた理由です」(手島氏)。現在では数々のDCCツールがサポートし、Omniverseなどのプラットフォームも生まれている。
「OpenUSDがFBXなど他のフォーマットのライブラリと決定的に異なる点は、“非破壊編集をサポートした処理系を提供している”というところに尽きます。例えば、USDのレイヤー機能はアプリケーション固有のものとではなく、フォーマットと不可分な標準化されたものとして提供されています。つまり、OpenUSDを使えば、どんな環境のどんなツールでも予測可能で合理的な合成結果が得られることが保証されているのです」と手島氏。
■『グランツーリスモ7』ではOpenUSDによるパイプラインを開発
OpenUSDの導入状況について手島氏は、大手映像制作スタジオに関してはアニメーションと実写VFXのどちらでも導入が一巡している一方、中小のスタジオ、特に日本ではこれからという印象を抱いている。また、ゲーム制作の分野については、海外も日本もまだまだこれからという状況だという。
手島氏は『グランツーリスモ7』(2022)でOpenUSDを活用しているが、具体例として、レーシングカー用のカスタマイズの一つである金属フレーム「ロールケージ」を大量に収録された車に数多く用意するため、専用に開発したツール「ロールケージビルダー」を紹介。
まずはMayaから車のモデルデータ、カスタムパーツのシェーダや扉のドアのヒンジデータなど、様々な情報を社内のUSDアセットライブラリに格納する。そして、Houdini上でUSDをフルネイティブ編集できる「Houdini SOLARIS」コンポーネントでUSDを読み取り、格納された様々な情報にアクセスする。プロシージャルに生成したモデルをまたUSDで出力して、ゲーム導入までのパイプラインでシームレスにやり取りができたという。
■OpenUSDの技術的な面白さとその可能性
OpenUSDにはUSDA(アスキー)、USDC(バイナリ)、USDZ(非圧縮ZIPコンテナ)の3種類があるが、手島氏はUSDAの存在が重要だと話す。「USD導入時には、動作確認や実験でエディタを使って手書きできるアスキーフォーマットがとても役に立ちます。USDの運用に慣れてからも、開発時に試験的な追加事項をUSDAで書くというケースがありますから」。
セッションでは次に、OpenUSDを特徴付ける処理系の代表的機能として、「コンポジション」、「スキーマ」、「アセットリゾルバ+ファイルフォーマットプラグイン」、「Hydra」の4つを紹介。
「コンポジション」について手島氏は「OpenUSDを使った複数人のコラボレーションと非破壊パイプラインを支える、複数の“意見”を合成して調停する仕組みで、いちばん大事な機能です」と説明。USDファイルに書かれているのはデータそのものではなく、「このデータはこうしたい」という“意見”で、そうした“意見”をレイヤーとして複数集め、決まったルールに基づいてデータの値を決める。それがコンポジションという仕組みだ。
「スキーマ」は、特定のデータをどう表現するか決める約束事。例えば、「UsdGeomSphere」スキーマはOpenUSDの中でシンプルに球体を表現するもの。「ここで大事なのは、半径がdouble radiusで定義、標準化されているという決め事です。これによって、インターチェンジの互換性が確保できます」(手島氏)。
「アセットリゾルバ」はレイヤー探索時のふるまいを制御する仕組みで、ネットワーク上にどのようにアセットが格納されていても、その扱いの差を吸収して、USDレイヤーの読み込みとして表現できる。「ファイルフォーマットプラグイン」はカスタムプラグインにより、あらゆるフォーマットをUSDレイヤーに置き換えたり、USD以外のフォーマットにエクスポートできる仕組み。既存システムとの統合時に強力な武器となる。
こうしたアセットの扱いにはベストプラクティスと呼ばれるデータ構造のパターンがある。手島氏は一例として、最近特に注目を集めている「Animal Logic Alab」というUSDアセットライブラリを紹介。映画制作レベルの本格的な仕様のデータをUSDで公開している。
「Hydra」はOpenUSDと共にピクサーからリリースされた、オープンソースのレンダラインターフェイス。シーングラフの入力とレンダー出力を抽象化し、同一のインターフェイスにできる。ビューポートでHydraに切り替え、KarmaやArnoldなどのレンダラを好きにスイッチしてUSDシーンをレンダリングするなど、ハブとして機能するものだ。
手島氏は最後に「多くのDCCベンダーが協力し合って積極的にUSDエコシステムの発展に貢献していますし、ユーザーのコミュニティもヘルシーかつ爆発的に広がっています。さらに現在模索しているゲーム制作現場向けの取り組みが、今後、製造業・教育分野・サービス業へUSDを応用するための良い礎になっていくでしょう」と語り、セッションを締めくくった。終了後は、現場でOpenUSD活用の道を模索するエンジニアからの質疑応答もあり、OpenUSDが注目されていることの証左となっていた。
共通交換フォーマットとしてのOpenUSDとアセットパイプラインの継続的進化
本セッションの登壇者は早稲田大学 招聘研究員で3DCGエンジニアの奥屋武志氏。技術研究や論文執筆に従事しながら、ゲーム・アニメ業界でのアセットパイプライン開発も手がける3DCGエンジニアである。セッションでは、奥屋氏がゲーム・アニメ業界で実際にどのようにOpenUSDを活用できるのか、自身による実装例を交えて詳しく紹介した。
■プロジェクトの大型化に伴うパイプラインの課題
日本のゲームやアニメ作品はここ10~15年でプロジェクトが大型化し、5年や10年スパンで開発が進むゲーム作品や、複数シーズンにまたがり放送されるアニメ作品も増えた。こうしたプロジェクトの長期化により未来予測が難しくなり、現実として制作環境内に複数の3DCGソフトが混在する状況が増えているという。そこで活用したいのがOpenUSDだと奥屋氏。「共通交換フォーマットとしてOpenUSDを活用して、できるだけ少ない労力でパイプランを継続的に進化できるように、各種ツールを開発していきたい」。
先の手島氏の講演でも述べられたように、本来のOpenUSDの利点は強力なコンポジション機能による非破壊編集にある。しかし一方で、この理想的な工程に現実が追いつかない現状があると奥屋氏は話す。「アニメ制作会社ではラフ画を別のスタッフがブラッシュアップする工程がありますが、それは3DCGでも同様です。例えば、A社が制作したベースモデルをB社が修正し、具体的なカットに合わせて別のツールでマテリアルを設定するといったフローはよくあります。また、後工程で編集可能な状態にするためには、後工程のツールのネイティブ形式への変換が必要な場合もあり、もうこの時点でOpenUSDのメリットである“非破壊パイプライン”ではなくなります」。
こうした“破壊編集”にはメリットがあるのが現実だ。既存のパイプラインの延長線上で考えることから学習コストや不確実性が小さく、短期的なコストとスピード面で有利なほか、特定のツールに最適化されたフォーマットに変換することによる処理速度向上やメモリ使用量削減も期待できるためだ。
そこで奥屋氏は、OpenUSDによる非破壊パイプラインをストレートに取り入れるという選択肢だけではなく、“破壊的なデータ変換を含むパイプライン”を提案する。「理想とのズレをある程度許容しながら、現行の延長線上で考えるという折衷案です」(奥屋氏)。
現在、各DCCツールのOpenUSD対応は急速に進んでおり、例えば3ds Maxは数ヶ月に1回のペースでOpenUSDプラグインがアップデートしている。奥屋氏の提案は、こうした各ツール標準のOpenUSDインポーター・エクスポーターをできるだけ活用して、不足する機能を自作スクリプトで補完し、アセットパイプラインを進化させるというものだ。
3ds Maxでの開発では、OpenUSDファイルの読み書きを行う「usd-core」と3ds Maxの状態を取得・変更する「pymxs」の2つのPythonモジュールを利用してインポーター、エクスポーターを開発する。
■OpenUSDの6つの活用例
セッションでは次に、制作ワークフロー内で実現したいことをベースに、6つのケースでOpenUSDの活用法を紹介した。
(1)OpenUSD標準の仕様に変換
「エクスポート側で情報が落ちることを許容できるケース、例えば、マテリアルを完全には復元できなくても、テクスチャが貼ってあれば良しという場合は、OpenUSDの標準機能に変換することで汎用的な利用が可能になります」と奥屋氏。
3ds MaxのV-Rayマテリアルを他のソフトへ出力したい場合は、「UsdPreviewSurface」マテリアルにテクスチャを追記する。
手順としては、3ds Max公式のUSDエクスポーターでUsdPreviewSurfaceを含むUSDファイルを保存し、3ds Maxの自作スクリプトにより3ds Max内でマテリアルのノードからテクスチャを探してUSDファイルに追記する。これを出力先のツールのUSDインポーターで読み込めば、UsdPreviewSurface互換のマテリアルとして表示できるようになる。
(2)OpenUSD標準から各ソフト特有のデータに変換
今度は逆に、各ソフトのマテリアルを3ds MaxのV-Rayマテリアルに変換したい場合。USDエクスポーターから書き出したOpenUSDを3ds MaxのUSDインポーターで開き、UsdPreviewSurfaceマテリアルを自作スクリプトでV-Rayマテリアルに変換するという手順になる。
(3)各ソフトからエクスポートされた特有のデータをインポート
特定のソフトが出力するデータを他のソフトで利用するケース。「V-Ray for Mayaで作成したV-RayマテリアルをMaya標準のUSDエクスポーターで保存して、3ds Max標準のUSDインポーターで読み取ると、一部のマテリアルが再現ができませんでした。そこで、USDViewで欠落したデータを確認して、インポーターを自作することでマテリアル構造を再現したのです」(奥屋氏)。
(4)各ソフト特有の要素とOpenUSD標準の要素を相互に変換
特定のソフトが持つUSD非標準要素をUSDファイルに保存し、他のソフトで再現するというケース。
例えば、オブジェクトを階層化して管理し、グループ単位で表示・非表示を切り替えるなどができる3DCGツールは多い。Blenderで言えばシーンコレクション機能、3ds Maxで言えばレイヤー機能がそれにあたる。しかしOpenUSDは、それらに完全に一致する概念がなく、近い要素があるという状態だ。
そこで、これを再現するために、Blender用のエクスポーターと3ds Max用のインポーター両方を開発。シーンコレクションをOpenUSDのScopeに変換し、Scopeを3ds Maxのレイヤーに変換する。OpenUSDを経由することで、似た要素を確実に相互変換できるようになるのだ。
(5)Omniverseを活用
OpenUSDのプラットフォームとしてNVIDIA Omniverseを活用するというアイデア。「アニメーション制作で3Dレイアウト作業をOmniverse上で展開し、効率化を図った事例があります。課題は、3DレイアウトチームとCGチームが同じレンダーファームを共有するため、レンダリング待ちが発生していたこと。そこで、3Dレイアウトチームの作業をOmniverseのリアルタイムレンダリングで進めることで、ボトルネックを解消しました」(奥屋氏)。
(6)OpenUSD未対応のソフトをOpenUSDに対応させる
C++またはPythonで機能拡張ができるソフトであれば、OpenUSDに対応できる可能性がある。奥屋氏は実際にPythonでAfter Effects用USDインポーターを開発し、3DCGソフトの座標とカメラ情報をAfter Effectsに送信できるようにしている。
奥屋氏は最後に「現状ではゲームからアニメ、アニメからゲームという横展開では要求スペックのちがいから3Dモデルアセットはつくり直しになることが多く、これは業界内の長い課題になっています。しかし将来的には、OpenUSDを活用したデータ変換でそれを解決できるのではと考えています」と語り、未来への期待を滲ませた。
TEXT__kagaya(ハリんち)