Universal Scene Description

**Universal Scene Description** (**USD**、ユニバーサル・シーン・デスクリプション、万能シーン記述) は、3Dシーングラフ形式及びその形式を扱うプログラム群である。  が保守しており、当初はピクサーが開発した。オープンソースを強調したOpenUSDとも呼ばれる。

## USD形式
USD形式はモダンなシーングラフ形式であり、アセットの異形 (バリアント) やアセットの外部参照、アセットのオーバーライドなどに対応している。USD形式にはテキスト形式 (usda) 、バイナリ形式 (usdc)、アーカイブ形式 (usdz)が存在する。

USDファイルの中に含めることのできる情報はスキーマによって定義されており、拡張可能となっている。

### 主なスキーマ
* ジオメトリ (UsdGeom)
* ライト (UsdLux)
* シェーディング / マテリアル (UsdShade)
* スケルトン / ブレンドシェイプ (UsdSkel) - 簡易的であり群集シミュレーション及びゲーム向けとなっている
* UI (UsdUI)

## USDライブラリ
USDライブラリ群はUSD形式を取り扱うためのライブラリであるが、シーングラフのリアルタイム及びオフラインレンダリングに対応するHydraも含まれている。USDライブラリでHydraを使用するアプリケーションは、Hydraレンダーデリゲートに対応する多数のレンダーバックエンドを使用することができる。

### レンダーバックエンド
以下はHydraレンダーデリゲートに対応するレンダーバックエンドである。

* 公式
** HdStream (Stream) - USDに含まれているOpenGLバックエンド。Hydraから分離された。
** HdEmbree - USDに含まれているレイトレーシングレンダープラグインであり、IntelのEmbreeライブラリを元にしている。
** HdPrman (RenderMan Hydra Delegate) - RenderManを使用するためのバックエンド。USD 19.07以降に含まれている。
* ハードウェア会社製
** Radeon ProRender for USD - オープンソースの物理ベースレンダラーであるRadeon ProRenderを使用するためのプラグイン。
** HdOSPRay - オープンソースのCPUレンダラーであるOSPRayを使用するためのプラグイン。
** RTX Renderer - NVIDIA Omniverseに含まれているレンダラー。
* USD採用アプリケーション搭載
** Karma - Houdini 18以降のSolarisに含まれているCPUレンダラー。Mantraの代替。
** Houdini GL - Houdini 18以降のSolarisに含まれているOpenGLバックエンド。
* サードパーティー
** HydraNSI (hdNSI) - NSIインターフェースに対応するレンダラーを使用するためのプラグイン。オープンソースhttps://gitlab.com/3Delight/HydraNSI。NSIインターフェース対応のものには、物理ベースレンダラーの3DelightNSIが存在し、HoudiniのSolarisに向けた3Delight for Solarisも用意されている (3Delight for Houdiniに付属)。3DelightNSIは無料版も存在する。
** Arnold USD - Arnoldレンダラーを使用するためのコンポーネント集。オープンソースhttps://github.com/Autodesk/arnold-usd。
** OctaneRender Hydra / Octane X Hydra - HoudiniのSolaris向けのベータ版が公開されている。
** Redshift Solaris Hydra plugin - HoudiniのSolaris向けのプレビュー版が公開されている。
** hdRstr - リアルタイムの直接照明および単反射回数の間接照明レンダラー。NVIDIA RTXDIに基づいており、ReSTIRアルゴリズムを使用している。
* オープンソース
** Cycles Hydra Render Delegate - Blender内蔵レンダラーのCyclesを使用するためのプラグインであり、Blender 3.2以降のコードベースに統合されている。hdCycles（Tangent Animation製）の後継。オープンソース。
**  - DreamWorksの元内製レンダラーであり、2023年にオープンソース化された。
** HdAurora - Autodesk主導のオープンソースリアルタイムパストレーシングレンダラー「Aurora」を使うためのプラグイン。

## 歴史
USDはPixar独自のジオメトリキャッシュシステムである「TidScene」と、独自の3Dアニメーションツールである「Presto」(旧Marionette (Menv)) のコア部分を統合するために開発された。また、USDのレンダーエンジンであるHydraはPrestoに搭載されていた旧来のレンダーエンジンの後継として開発され、GPUベースでRenderManのプリミティブに対応した。

2016年、PixarはUSDをオープンソースとしてリリースした。

## 用途
### 上位レベル3D APIとしての使用
USDライブラリはレンダリング機能を持つシーングラフAPIであるため、OpenSceneGraphなどのシーングラフAPIの代わりとして使用することができる。3DライティングソフトのKatanaはビューポートにおいて従来のOpenSceneGraphベースのものに代わりUSDライブラリのHydraベースのものを採用した。

### ファイル交換形式としての使用
USD形式は拡張可能であるため、レンダラー固有のマテリアルパラメータのような従来のファイル交換形式 (FBX形式等) では受け渡せない情報を詰め込むことが可能となる。例えば3DレンダラーのArnoldに対応するものとしてArnold USDが存在する。

また、AL_USDMayaでは複雑なリグなどの情報をUSDに詰め込むことも行われている。

### シーンキャッシュとしての使用
USD形式はシーンキャッシュ形式であるAlembic形式の代わりとして注目されている。USD形式へと対応した3DCGソフトウェアClarisseの開発元Isotropixのテストによれば、USD形式の読み込みはAlembic形式の読み込みに比べて50倍高速になるケースもあるとされる。

### レンダリング中間形式としての使用
USD形式はレンダリング中間形式であるRIB形式 (RenderMan Interface Bytestream)の代わりとしても注目されている。今後3DレンダラーのRenderManは中間インターフェースにおいてRIB形式の代わりにUSDベースの新インターフェースであるRILEYを用いる予定となっている。

### 製作パイプラインでの使用

### オーサリング形式としての使用
USDをZIP圧縮したものとしてUSDZ形式が存在し、この形式がARなどに使われている。

USDZ形式へのパッキング/変換ツールには以下がある：
* USDに付属するusdzip
* usdz Tools (Apple)  - コマンド名はusdzconvert。Xcodeに付属するusdz_converter (非推奨) の後継。
* Reality Converter (Apple)
* Adobe Aero - ARアプリ。usdz形式での出力にも対応している。
* StemCell (TurboSquid) - 様々なDCC形式に対応するオンラインファイルコンバータであり、usdz形式での出力にも対応している。
* Quixel Bridge (Epic Games)
* USDZ Converter (ViewAR) - オンラインコンバーター
* Vectary - オンラインの3Dデザインツール

USDZ形式の表示には以下が対応している：
* ARKit 2以降 (Apple) - iOS向けの拡張現実(AR) SDKであり、AR Quick Look機能がusdz形式に対応している。

## 対応ソフトウェア・プラグイン

以下はUSDに対応するソフトウェア及びプラグインである。

### USD及びHydraビューポート搭載ソフトウェア
* USDView - USDに含まれている単体USD形式ビューワ。
* Katana 3.0以降 (Foundry) - ライティングソフトウェア。3.0以降でUSDを使用するようになり、Hydraベースのビューポートが追加された。また、オープンソースのKatana USD Plug-insも搭載しているが標準で無効となっている。
* Houdini 18以降 (SideFX) - USDベースのライティング/ルックデブツールであるSolarisが搭載されている。
* Maya 2022以降 (Autodesk) - 2020.2以降、MtoA (Arnold for Maya) プラグイン経由でのUSDエクスポートに対応しており、2022以降、Maya USD拡張の搭載によるUSD形式のインポート/エクスポートやHydraビューポートに対応している。
* Nuke 13.0以降 (Foundry) - デジタル合成ソフトウェア。12.2以降ReadGeoノードでインポートに対応し、13.0以降Hydraビューポートに対応した。
* USD Shell Extension (Activision) - Windows ExplorerでUSDファイルをプレビュー表示できるようにするためのシェル拡張。
* Blender 4.0以降 - 2.82でUSDエクスポートに、3.0でUSDインポートに、4.0でHydraビューポートに対応。

### USD形式のインポート及びエクスポートのみ可能なソフトウェア
* 3ds Max 2021.1以降 - MAXtoA (Arnold for 3dsMax) プラグイン経由でUSDエクスポートに対応している。また、インポートとエクスポートに対応するUSD for 3ds Maxプラグインも用意されている。
* Cinema 4D R23以降 - インポートとエクスポートの両方に対応。またUSDZ形式のエクスポートにも対応。
* Modo 14.1以降 - 14.1でインポートに、14.2でエクスポートに対応。
* Unity 2019.1以降 - パッケージマネージャーからインストール可能。インポートだけでなくエクスポートにも対応している。
* Unreal Engine 4.16以降 (Epic Games) - USDインポータ/エクスポータが内蔵されている。4.24以降はライブ編集に対応するUSD Stageも搭載された。
* Gaffer - オープンソースのライティングソフトウェア。シーンリーダー及びシーンライターがUSDに対応している。
* Clarisse 4.0以降 (Isotropix) - ライティングソフトウェア。4.0でUSDインポートに、5.0でUSDエクスポートに標準対応した。開発終了。
* KeyShot 10.0以降 - 10.0でエクスポートに、10.1でインポートに対応。
* CityEngine 2020.0以降 - 2020.0でエクスポートに、2020.1でインポートに対応。
* ZBrush 2021.6以降 - インポートとエクスポートの両方に対応

### USD形式のインポートのみ可能なソフトウェア
* Mari 4.6v4以降 - Mari USD CAPI pluginは元々Pixarの開発したプラグインであったが、その後Foundryが開発を管理するようになった。インポートに対応している。エクスポートは開発中。

## 採用例
以下の映画の製作に使われている：
* ピーターラビット (2018年)

また以下のゲームの製作にも使われている：
* グランツーリスモ7 (2022年3月) 
* ゼノブレイド3 (2022年7月) 

その他：
* iOS - iOS 12 (2018年9月) でサポート。iPhone等のApple製品の点群撮影やARコンテンツのフォーマットに使用。
* Industry Foundation Classes - IFC 5から採用。

## 注釈


## 出典


## 外部リンク
* ピクサー USD 入門 新たなコンテンツパイプラインを構築する ポリフォニー・デジタル