Universal Scene Description (USD) について
Universal Scene Description (USD) は、ピクサー・アニメーション・スタジオが開発したオープンソースの3Dシーン記述形式および関連ツール群です。USDは、複雑な3Dシーンデータを効率的に記述、保存、交換するための共通基盤を提供し、映画制作、ゲーム開発、AR/VRなど、幅広い分野で利用されています。
USDの基本構造
USDは、シーンを構成する様々な要素(ジオメトリ、ライト、マテリアル、アニメーションなど)を階層的に表現するシーングラフ形式を採用しています。これにより、複雑なシーンでも効率的な管理と操作が可能になります。
主な特徴:
モダンなシーングラフ形式: アセットのバリアント、外部参照、オーバーライドなど、高度な機能に対応。
多様な形式: テキスト形式 (usda)、バイナリ形式 (usdc)、アーカイブ形式 (usdz) が存在。
スキーマによる拡張性: USDファイルに含める情報の種類はスキーマで定義され、必要に応じて拡張可能。
主なスキーマ:
ジオメトリ (UsdGeom)
ライト (UsdLux)
シェーディング / マテリアル (UsdShade)
スケルトン / ブレンドシェイプ (UsdSkel)
UI (UsdUI)
USDライブラリとHydra
USDライブラリは、USD形式を扱うためのAPI群を提供します。特に重要なコンポーネントとして、リアルタイムおよびオフラインレンダリングに対応するHydraがあります。
Hydraは、レンダーデリゲートと呼ばれるプラグインアーキテクチャを採用しており、様々なレンダラーバックエンドを切り替えて利用することができます。
主なレンダーバックエンド:
公式:
HdStream (Stream): OpenGLバックエンド
HdEmbree: Intel Embreeライブラリをベースにしたレイトレーシングレンダープラグイン
HdPrman: RenderMan用バックエンド
ハードウェア会社製:
Radeon ProRender for USD: Radeon ProRender用プラグイン
HdOSPRay: OSPRay用プラグイン
RTX Renderer: NVIDIA Omniverse用レンダラー
USD採用アプリケーション搭載:
Karma: HoudiniのCPUレンダラー
Houdini GL:
HoudiniのOpenGLバックエンド
サードパーティー:
HydraNSI: NSIインターフェース対応レンダラー用プラグイン
Arnold USD: Arnoldレンダラー用プラグイン
OctaneRender Hydra / Octane X Hydra: OctaneRender用プラグイン
Redshift Solaris Hydra plugin: Redshift用プラグイン
hdRstr: リアルタイムレンダラー
オープンソース:
Cycles Hydra Render Delegate:
Blender Cycles用プラグイン
MoonRay: DreamWorks製レンダラー
HdAurora: Autodesk Aurora用プラグイン
USDの歴史と開発
USDは、ピクサー社内のジオメトリキャッシュシステム「TidScene」と3Dアニメーションツール「Presto」の統合のために開発されました。レンダーエンジンのHydraは、Prestoの旧来のレンダーエンジンの後継として開発され、GPUベースで
RenderManのプリミティブをサポートしています。
2016年に、ピクサーはUSDをオープンソースとして公開し、広く利用されるようになりました。
USDの用途
USDは、以下のような様々な用途で活用されています。
上位レベル3D APIとしての使用: シーングラフAPIとして、OpenSceneGraphなどの代替として利用。
ファイル交換形式としての使用: FBXなどの従来の形式では受け渡せない、レンダラー固有のパラメータを詰め込むことが可能。
シーンキャッシュとしての使用: Alembic形式の代替として、高速な読み込みを実現。
レンダリング中間形式としての使用: RIB形式の代替として、
RenderManなどのレンダラーで利用。
製作パイプラインでの使用: シーンのオーサリング、アセットの管理、レンダリングなど、制作パイプライン全体での活用。
USDZ形式とAR
USDをZIP圧縮したUSDZ形式は、AR(拡張現実)コンテンツの配信に広く利用されています。
USDZ形式への変換ツール:
usdzip (USDに付属)
usdz Tools (Apple)
Reality Converter (Apple)
Adobe Aero
StemCell (TurboSquid)
Quixel Bridge
USDZ Converter (ViewAR)
Vectary
USDZ形式の表示:
ARKit 2以降 (Apple)
USDに対応するソフトウェア・プラグイン
多くの3DCGソフトウェアやプラグインがUSDに対応しています。
USD及びHydraビューポート搭載ソフトウェア:
USDView
Katana 3.0以降
Houdini 18以降
Maya 2022以降
Nuke 13.0以降
Blender 4.0以降
USD形式のインポート及びエクスポートのみ可能なソフトウェア:
3ds Max 2021.1以降
Cinema 4D R23以降
Modo 14.1以降
Unity 2019.1以降
Unreal Engine 4.16以降
Gaffer
Clarisse 4.0以降
KeyShot 10.0以降
CityEngine 2020.0以降
ZBrush 2021.6以降
USD形式のインポートのみ可能なソフトウェア:
Mari 4.6v4以降
USDの採用事例
映画:
ピーターラビット (2018年)
ゲーム:
*
グランツーリスモ7
まとめ
Universal Scene Description (USD) は、3Dシーンデータの効率的な管理と交換を可能にする、強力なフレームワークです。多様な形式、拡張性、レンダーバックエンドのサポートにより、様々な分野で活用が広がっています。USDの知識は、現代の3Dコンテンツ制作において不可欠なものとなりつつあります。