この記事はテクニカル好きなアーティスト向けです。
Pixar社のパイプラインの考え方を学ぶことを目的としています。
USD とは、Universal Scene Description (ユニバーサル シーン ディスクリプション)の略で、
Pixar 社が GitHub 上で公開しているオープンソースプロジェクトのライブラリになります。
開発スタイルについて
これまではウォーターフォール型とよばれる開発スタイルが一般的でしたが、
デメリットとして、出戻りに大きなコストがかかってしまいます。
差し替えに大きな時間を取られた経験ないですか?
そこでPixar社ではコンカレントパイプラインと呼ばれる
各工程の作業や修正を並行して自由に行える開発環境を構築したようです。
それこそが20年間改良され続けたパイプラインであるUSDになります。
ウォーターフォール型とは
ウォーターフォール型開発とは、滝の水が上から下へ落ちるのと同じように、
デザイン→ モデリング →質感→アニメーション→コンポジット、
と開発工程をいくつかに分けそれぞれの工程が終わると次の工程に進み、
前の工程には戻らないという開発スタイルのことです。
コンカレント型とは
各工程の作業や修正を並行して自由に行えることを目的とし
クオリティアップを容易にすることが可能になります。
USDとは
DCCツール間でシーンをやりとりするファイルフォーマットのことであり、
シーングラフを扱うことのできるライブラリになります。
シーングラフの例
サブレイヤー
レイヤーをまるごと合成
C言語で言えばリンク
継承
C++などの Class に類似
バリアントセット
様々なバリエーションの設定
リファレンス
#includeのようなもの
サブレイヤーとは別に、名前空間の特定の場所を階層的に取り込める
リファレンス時に特定の要素だけ上書きできる = 非破壊編集
なぜUSDなの?
USDで何ができるのかお話します。
ファイルを"開く/保存"時間の高速化
通常ファイルを保存する場合には、シーン上の情報全てが保存されていると思います。
アニメーションの場合は背景ファイルを読み込む必要がありますし、
キャラクターを複数読み込む必要があると思います。
その場合、本来アニメーションに関係ない背景の形状やキャラクターの
UVやマテリアル情報など全て保存しているので、時間がかかると思います。
USDでは背景ファイルを読み込む必要がなくキャラクターのみ編集する場合などは
巨大なシーンを分割可能なロード単位に分けることができ、
任意でload/unloadが可能になります。
また、アニメーションで必要なキー情報のみ保存ができます。
ルックデベロップとアニメーションなど並行作業
形状、質感、アニメーション、カメラ、ライトなどを分けてファイル管理するため、
質感やライティング等のルック開発を行う際にアニメーションやエフェクトのOn/Offが行える。
アニメーション後に質感だけ調整する際も、質感のファイルのみ更新するだけで
全てのショットで差し替えが行える。
バリエーション違いの設定
あらかじめショットのセクションはsetup.usdファイルなどを読み込み、
リファレンス先を変更することなく、
アセットセクションからバリエーションを増やしていくことで、
モデルや質感の変更が追加されていく仕組みが可能になります。
カットごとファイルをオーバーライド
ショットごとに小物や背景の位置を調整すると思いますが、
背景のデータがギガを超えるようなファイルをカットごとに用意したのでは、
管理ができないと思います。
USDでは移動した情報のみをオーバーライドできるので、
ファイル容量が数キロバイトになることがあります。
ソフトウェアをまたいで作業できる
USDがシーングラフの性質を持つので、
MAYAや3dsMaxで構築したシーン情報を
USDファイル1つ読み込むだけでUnityやHoudiniなどで再現が可能になります。
導入方法
Windows環境でのセットアップ方法を記述してあります。
最後に
導入には時間がかかると思いますが、
パイプラインをより良いものにできれば、
クオリティを上げることだけに集中できる環境づくりが可能になります。