【PIXAR’S USD】Pixar社のパイプラインについて学ぼう!

CG

この記事はテクニカル好きなアーティスト向けです。
Pixar社のパイプラインの考え方を学ぶことを目的としています。

USD とは、Universal Scene Description (ユニバーサル シーン ディスクリプション)の略で、
Pixar 社が GitHub 上で公開しているオープンソースプロジェクトのライブラリになります。

公式リンク

開発スタイルについて

これまではウォーターフォール型とよばれる開発スタイルが一般的でしたが、
デメリットとして、出戻りに大きなコストがかかってしまいます。

 
スマ兄
アニメーション作業後にモデル差し替えが発生して、
差し替えに大きな時間を取られた経験ないですか?

そこでPixar社ではコンカレントパイプラインと呼ばれる
各工程の作業や修正を並行して自由に行える開発環境を構築したようです。
それこそが20年間改良され続けたパイプラインであるUSDになります。

ウォーターフォール型とは

ウォーターフォール型開発とは、滝の水が上から下へ落ちるのと同じように、
デザイン→ モデリング →質感→アニメーション→コンポジット、
と開発工程をいくつかに分けそれぞれの工程が終わると次の工程に進み、
前の工程には戻らないという開発スタイルのことです。

コンカレント型とは

各工程の作業や修正を並行して自由に行えることを目的とし
クオリティアップを容易にすることが可能になります。

USDとは

DCCツール間でシーンをやりとりするファイルフォーマットのことであり、
シーングラフを扱うことのできるライブラリになります。

  • シーングラフAPI
  • プロシージャルシーングラフ処理系
  • パイプラインそのものになる。「共同作業するための言語」
  • 他フォーマットをそのまま取り込める
    • Alembic
    • Obj

モデルの形状からキーフレームの管理、
リファレンス先の記述からレイヤ構造まで全てをテキストで管理できる。

シーングラフの例

サブレイヤー

レイヤーをまるごと合成
C言語で言えばリンク

継承

C++などの Class に類似

バリアントセット

様々なバリエーションの設定

リファレンス

#includeのようなもの
サブレイヤーとは別に、名前空間の特定の場所を階層的に取り込める
リファレンス時に特定の要素だけ上書きできる = 非破壊編集

なぜUSDなの?

USDで何ができるのかお話します。

ファイルを"開く/保存"時間の高速化

通常ファイルを保存する場合には、シーン上の情報全てが保存されていると思います。
アニメーションの場合は背景ファイルを読み込む必要がありますし、
キャラクターを複数読み込む必要があると思います。

その場合、本来アニメーションに関係ない背景の形状やキャラクターの
UVやマテリアル情報など全て保存しているので、時間がかかると思います。

 
スマ兄
アニメーションファイルを保存するとき時間かかりませんか?

USDでは背景ファイルを読み込む必要がなくキャラクターのみ編集する場合などは
巨大なシーンを分割可能なロード単位に分けることができ、
任意でload/unloadが可能になります。

また、アニメーションで必要なキー情報のみ保存ができます。

Alembicファイルのように、フレームごとの頂点位置を保存でき、
FBXのようにフレームごとの移動や回転値を記述できる。

ルックデベロップとアニメーションなど並行作業

形状、質感、アニメーション、カメラ、ライトなどを分けてファイル管理するため、
質感やライティング等のルック開発を行う際にアニメーションやエフェクトのOn/Offが行える。

アニメーション後に質感だけ調整する際も、質感のファイルのみ更新するだけで
全てのショットで差し替えが行える。

バリエーション違いの設定

あらかじめショットのセクションはsetup.usdファイルなどを読み込み、
リファレンス先を変更することなく、
アセットセクションからバリエーションを増やしていくことで、
モデルや質感の変更が追加されていく仕組みが可能になります。

カットごとファイルをオーバーライド

ショットごとに小物や背景の位置を調整すると思いますが、
背景のデータがギガを超えるようなファイルをカットごとに用意したのでは、
管理ができないと思います。

USDでは移動した情報のみをオーバーライドできるので、
ファイル容量が数キロバイトになることがあります。

ソフトウェアをまたいで作業できる

USDがシーングラフの性質を持つので、
MAYAや3dsMaxで構築したシーン情報を
USDファイル1つ読み込むだけでUnityやHoudiniなどで再現が可能になります。

これらの内容を同時に複数の人間が非破壊で編集できる。

導入方法

Windows環境でのセットアップ方法を記述してあります。

https://smartanimation.xyz/setupusd/

エクスポートに対応していないソフトウェアからは、
独自にツールを開発する必要があります。

最後に

導入には時間がかかると思いますが、
パイプラインをより良いものにできれば、
クオリティを上げることだけに集中できる環境づくりが可能になります。