USD (Universal Scene Description) は、ピクサーが開発した、3Dコンピュータグラフィックスのシーンをデジタルコンテンツ制作アプリケーション間でやり取りするためのファイル形式です。拡張可能なオープンソースのファイル形式であり、3Dジオメトリ、シェーディング、ライティング、物理、その他のグラフィックス関連のドメインに関する情報を格納できます。また、複数のソースからのデータを合成およびオーバーライドして、非破壊的に編集できる単一のシーングラフを作成できます。
USDは、デザイン、建築、アニメーション、ゲームなどの多くの業界で使用されており、Blender、Cinema 4D、Houdini、Maya、AppleのSceneKitなど、多くのソフトウェアアプリケーションでサポートされています。USDは、ピクサーの3Dグラフィックスパイプラインの中核であり、NvidiaのOmniverseプラットフォームの基盤でもあります。
Universal Scene Description (USD) の仕様では、いくつかのファイル形式が使用されています。
- .usd – ASCIIまたはバイナリでエンコード可能
- .usda – ASCIIでエンコード
- .usdc – バイナリでエンコード
- .usdz – 圧縮なし、暗号化なしのzipアーカイブとしてフォーマットされたパッケージファイル。.usd、.usda、.usdc、.png、.jpeg、.m4a、.mp3、.wavファイルを含めることができます。
Blender(またはその他の3Dソフトウェア)は、インターフェースのみを使用して多くのタスクを実行できるようにすることで、あなたの作業を楽にします。しかし、パイプラインに他のソフトウェアを導入し始めると、問題が次々と発生し始めます。そこで、あなたが現在直面しているであろう最大の問題点と、ピクサーがどのようにそれらの問題を克服するためのソリューションを作成したのかについて説明しましょう。
問題点
Substanceでモデルにテクスチャを適用し、その作業をUnrealにインポートしたり、別のソフトウェアを使用している人とプロジェクトを共有しようとしたりしたことがあるなら、これがどれほど面倒なことであるかおそらくお分かりでしょう。異なるファイルタイプ、個々のソフトウェアごとの適切なエクスポートワークフローに対処し、その過程で貴重なデータを失うと、わざと壁に頭を打ち付けているような気分になるかもしれません。
そして、これはすべての3Dアーティストが経験することだと信じてください。独自のカスタムパイプラインを持つソロクリエイターとして作業している場合でも、ピクサーのような大規模なスタジオで、そこにいる他の1,232人のための適切なワークフローを維持するために厳格なパイプライン制約に従わなければならない場合でも、問題は同じです。
なぜこうなるのか
もっとも、それも理にかなっていますよね?各ソフトウェアは、そのニーズに合わせて独自のファイルタイプを使用しています。たとえば、Blenderのファイルは、Blenderで動作するようにコーディングされていますが、Substanceでは動作しません。当然ながら、企業では、各アーティストが自分の選択したツールと互換性のあるファイルを必要とし、プロジェクトでの作業を簡単、あるいは可能にする必要があります。
そのため、別のソフトウェアに切り替えたり、プロジェクトを次の担当者に引き渡したりする場合は、FBXやOBJのような、より普遍的なファイルタイプにエクスポートする必要があります。しかし、これらのファイルタイプでさえ、シミュレーション、ライティング、その他多くのBlenderプロジェクトの側面を適切に保存できないなど、多くの制限があります。
USDの紹介
では、この問題に対する答えは何でしょうか?それが Universal Scene Description (USD) です!2016年にピクサーによってオープンソースソフトウェアとして初めて公開されたUSDは、主にアーティストが互いの間や使用するツール間でデータを簡単に移動できるようにするためのものでした。
リリース以来、USDは常に変更と改善が行われており、これはBlenderのようなオープンソースソフトウェアでは一般的なことです。Blenderも常に更新および拡張されています。
USDとは?
USDは多くの側面を持っており、深く掘り下げると、非常に技術的で複雑なものとして説明することができます。しかし、簡単に言えば、 USDは、Blender、Unreal、Houdini、Substance、Maya、Nvidia Omniverseなどのアプリが互いに通信し、理解するための方法です。
コンピュータ業界には、これに対する「相互運用性」という専門用語があります。少し言いにくいですね!しかし、その響きがどんなに素晴らしくても、実際にはあなたが思っているほど複雑ではありません。今日から自分のコンピュータで、あるいは世界中の複数の友人や同僚と共同で使用を開始できます。
USDの違い
従来、パイプラインは非常に一方通行なものであり、各担当者は前の担当者が終了した後にのみ作業を行うことができます。または、あなた自身の場合、モデリングが完全に完了した場合にのみ、テクスチャリングのようなプロセスの次のステップに進むことができます。
これをケーキ作りに例えることができます。ケーキを作り上げていく過程では、各ステップを完了してから次のステップを開始する必要があります。生地を混ぜる前にケーキを焼くことはできませんし、オーブンでケーキを焼く前に組み立てることはできません。各ステップは、前のステップが完了していることに依存しています。
さらに重要なことに、フロスティングとフィリングを追加したり、スポンジをチョコレートにする必要があると判断したりしたら、もう後戻りはできません。ケーキを焼き直したり、フレーバーをバニラに変更したり、フロスティングを取り外したりすることはできません。そして、これを 破壊的なワークフロー と呼びます。
しかし、USDはレゴのようなものです。 各ブロックは、キャラクター、オブジェクト、環境など、3Dシーンの一部を表しており、これらのブロックを独立して組み立て、分解、および修正できます。
従来のパイプラインでは、1つのブロックを変更すると、残りの構造を調整する必要がありました。しかし、USDを使用すると、各構成ブロックを個別に操作でき、たとえば、モデル全体を再構築する必要なく、1つのブロックを別の色に変更することができます。
これは 非破壊的なアプローチ であり、パイプラインの制限に縛られることなく、実験的で共同的なワークフローを可能にします。
USDの目標
USDのすべての目標は、アプリケーション間でデータを自由に移動できるようにする方法を作成し、アーティストやチームに、エクスポートや、作業を継続するために互いを待つことに拘束されるのではなく、作成に集中できる自由を与えることです。コンセプトチームが後で変更を加えることを決定した場合でも、アーティストは再開する必要はありません。また、他のプログラムから取り込んだファイル形式が、選択したソフトウェアで動作しないという問題も発生しません。
サービスレベルでは、USDは、異なるソフトウェア間で簡単に交換できる、高度な相互運用性を持つファイル形式のようです。そして、公平を期すために言うと、これは多くのBlenderユーザーにとってそうなるでしょう。なぜなら、私たちの多くは単独で作業する傾向があるからです。しかし、USDは単なるファイルタイプではありません…
仮想セット、シーン、ショット、ワールドに任意の数のアセットを組み立てて整理し、アプリケーションからアプリケーションへそれらを使用し、多くの場合リアルタイムで非破壊的に編集する方法です。
USDの操作方法
それでは、BlenderワークフローでUSDをどのように操作できるかを見てみましょう。最も基本的な形式では、USDはバージョン3.6以降、Blenderのエクスポートオプションになっています。したがって、作業中のファイルがあり、それをUSDファイルとして保存する場合は、 ファイル > エクスポート > Universal Scene Description に移動すると、ファイルを保存するためのプロンプトウィンドウが表示されます。
いくつかのオプションがありますが、主な注意点は次のとおりです。
- 選択のみ – エクスポートで選択されたオブジェクトのみを含めます。
- アニメーションとヘアー – オブジェクトのアニメーションとヘアパーティクルデータを含める/除外します。
ここに、USDの動作を示す優れた例があります。これは、3ds MaxやSubstanceなどの一連のソフトウェアで作成されたNvidiaのUSDサンプルライブラリからのファイルです。これをインポートしてBlenderで開くと、ほぼ100%すぐに動作します!
ご覧のとおり、ライト、被写界深度、カメラ、マテリアルなど、すべてのデータが含まれています。適切にエクスポートされないのは、自分で設定する必要があるHDRIライティングだけです。しかし、これが3DS MaxのArnoldレンダラー内とほぼ同じように見えることを考えると信じられないほどであり、単一のファイルタイプを使用してBlenderにエクスポートされ、同じようにうまく機能します!
適切な階層、マテリアルがあり、基本的にはすべて設定されています。本当に素晴らしいです!とにかく、これはUSDが異なるアプリケーション間でどのように機能し、 相互運用可能なファイル形式として機能する かを示しています。
実践的なUSDの例
しかし、より実践的な例を見てみましょう。このパイプラインの例では、ゲームのオブジェクトをモデリングするためにBlenderを使用するという典型的なワークフローを使用します。
従来のパイプラインは次のようになります。
- Blenderでモデルを作成
- モデルをUV展開
- PainterはBlenderファイルを使用できないため、FBXとしてエクスポート
- Substance PainterにFBXをインポート
- Substanceでマテリアルを追加
- テクスチャを画像としてエクスポート
- ゲームエンジンにFBXをインポート
- テクスチャを手動で設定
- レンダリングを作成
USDを使用すると、このプロセスを大幅に簡素化し、大部分を 非破壊的なワークフロー を維持できます。パイプラインは非常に似ており、BlenderとSubstanceが主なコンポーネントです。
ただし、USDはこれらのアプリ間でリアルタイムでネイティブに動作しないため(主にBlenderのUSDサポートがまだ限られているため)、この接続を作成するために Nvidia Omniverse を使用します。
Omniverseを使用すると、Nvidiaによって構築された、よりUSD互換性のあるBlenderのブランチにアクセスできます。Substance PainterのOmniverseコネクタを有効にして、LifeLinkを実現できます。また、USD Composerを使用して、アプリ間のギャップを埋め、最終製品を表示できます。
その設定で、カスタムBlenderブランチでBlenderプロジェクトを開くことができます。次に、Nを押して右側に移動すると、Nucleusアドオンが表示され、これをUSDファイルとしてエクスポートできます。
次に、USD Composerに移動してそのUSDファイルを開くと、アプリ間の ライブリンク のようなものが得られます。メッシュに何らかの変更を加え、それを再エクスポートして、USD Composer内で自動的にそれを取得させることができます。
さらに良くなります!モデルをインポートしたら、Substance Painterを開き、Omniverseコネクタを有効にして、[メッシュのインポート]に移動して、USD ComposerからSubstanceにオブジェクトを自動的にインポートできます。この時点で、Blenderで変更を加えた場合でも、再エクスポートしてUSD Composerでそれを取得でき、Substance Painterに自動的にリンクされます。
ただし、Substance Painter内でテクスチャを追加すると、これを再度実行すると、それらのテクスチャが削除されます。したがって、満足したら、Substance Painterでマテリアルを追加し、Life Linkを有効にすると、これらがUSD Composerに自動的にポップアップ表示されます。
その後行った変更はすべて自動的にエクスポートされ、USD Composerで更新されます。本当に、本当にクールです!
私にとって、このワークフローはほとんど気が遠くなるほどです。BlenderとSubstance Painterでリアルタイムに変更を加え、そのすべてが自動的に連動し、最終レンダリングに反映されるのは別格です。
Nvidia Omniverseが提供するすべてのものを試してみたい場合は、説明にあるリンクから無料でダウンロードできます。また、USDとOmniverseが一緒に提供するすべての技術的なユースケースについて詳しく知りたい場合は、別の無料ダウンロードリンクと、3月にGTCで仮想または対面でオープンUSDデーセッションに参加するためのリンクもあります。
これは本当に3Dワークフローの未来なので、チェックアウトすることを強くお勧めします。
USDの詳細
この楽しい例に加えて、USDにはもっと多くの機能があります。そして、その機能を十分に活用すれば、アーティストとしてより効率的になります。では、他に何ができるのでしょうか?
普遍的なファイル形式があなたの生活をはるかに楽にするという事実に加えて、それは間違いなく未来です。2023年8月以降、USDはThe Alliance of Open USD (略してAO USD) という公式の非営利組織になり、その創設メンバーは Pixar、Apple、Adobe、Autodesk、Nvidia です。
これは、これらの企業がどれほど投資しており、これを相互運用可能なファイル形式の未来として本当に見ているかを実際に示していると思います。誰もが非常に簡単に使用できるはずです。
ファイル形式であることに加えて、USDは、ライトやカメラからシミュレーションキャッシュやシーンデータまで、ほぼすべて を、 「プリム」(プリミティブの略)と呼ばれるレイヤーのような構造 に保存します。複雑なシーンやアセットを幅広いアプリケーションで読み取り可能な形式で記述するためのすべてのデータが含まれています。
それを知っていれば、「Universal Scene Description」という名前は実際に非常に理にかなっています!
Blenderコレクションに精通している場合、USDは同様に機能します。複数のネストされたコレクション内に何かをネストできます。USDはこれらすべてのレイヤーをインスタンスとして扱うという利点があります。したがって、最適化された方法で、すべてのデータを非常に高速にロードして読み取ることができます。
これはBlenderでのインスタンスコレクションと同様に機能します。インスタンスは実際の複製オブジェクトよりも必要な計算量が少ないためです。また、After EffectsでのプリコンポーズやNukeでのコンパウンドにも非常によく似ています。基本的に、ネストされたグループ/レイヤー内にグループ化することで、コンピュータがファイルをより簡単かつ高速に操作できるようになります。
この最適化の優れた例は、Nvidiaの最新のUSDサンプルプロジェクト「Da Vinci’s Workshop」です。リアルタイムライティングでUSDプロジェクトを表示するのに最適なUSD Composerアプリを使用して、この大規模な67GBのアセット、テクスチャ、およびライトのライブラリを、ラグや問題なく、約120 FPSで再生できます。これは、USDが非常に最適化された方法でファイルとテクスチャを効率的にロードするため可能です。
同様に、以前はAlembicファイルとしてエクスポートされていたアニメーションの場合、USDキャッシュは現在、はるかに高速です。Alembicファイルは通常、巨大で最適化されておらず、コンピューターでの読み取りが遅いため、通常は再生が途切れ途切れになります。USDを使用すると、安定したFPSの達成はまったく問題なく、ファイルサイズははるかに小さくなります。
その他の利点
もう1つの非常に優れた機能は、 USDプロジェクト内のレイヤーにファイルの外から非常に簡単にアクセスできる ことです。たとえば、USDファイル内の球体が緑色であるというデータを含むプリムレイヤーがある場合、USD ComposerのようなUSD互換エディターでその色を赤色に変更するだけで、Blenderでファイルを開くことなく球体の色を変更できます!これは非常に強力です。
もちろん、それは基本的な例ですが、その可能性を示しています。もう1つの大きな利点は、 USDを使用すると、特定のソフトウェアで複雑なファイルの単一のレイヤーでのみ作業できる ことです。したがって、ファイルにカメラ、ライトなどを含む完全なプロジェクトが含まれている場合でも、その一部、たとえば単一のモデルのみをSubstance Painter内で開き、プロジェクトの他の部分に影響を与えることなく、その部分のみを操作できます。
これは、複数の人が同じファイルで作業している場合にも当てはまります。これはUSDのもう1つの大きな強みです。10人が同じファイルで作業できるため、アーティスト1が行った変更はアーティスト2にすぐに表示され、アーティスト2はそれに応じて作業を調整できます。リモートで人々と共同作業できることは非常に強力です。
3Dパイプラインの未来
USDは単なるファイル形式をはるかに超えていると言っても過言ではありません。制限なしに作成する自由:そのミッションにおいて、Blenderと真に合致する包括的なテクノロジープラットフォームとエコシステムです。
USDはまだ開発中です。夢は現実です – 業界のあらゆるソフトウェアで使用でき、複数のアーティストがリアルタイムで編集できるユニバーサルソフトウェアファイル形式。
この素晴らしい開発で道を切り開いたピクサーと、その一部に貢献したNvidiaやAppleのような企業に感謝すべきです。