Houdini18.5 Solaris(USD) トレーニング Part3 Solarisについて
はじめに
YouTubeに説明動画をUPしておりますので、併せてご覧ください。
今回のパートは、演習を含んでおります。
下のファイルが該当データとなっておりますので、
ぜひダウンロードしてご活用ください。
■この記事を閲覧される対象の方
・Solaris(USD)について体系的に学習したい方
・Houdini Solarisの導入を検討している方
・ライティング、ルック開発、レイアウトに携わるアーティスト
■記事作成時の情報について
Houdini18.5.462、2021年9月に作成
----------------------------------------------------------------------
4-1.Solarisとは?
HoudiniのUSDサポートツールは、Solaris(ソラリス)と総称されます。Solarisは世界初のアプリケーションベースでUSD環境を統合してリリースされたUSDツールです。ビューにUSDがサポートされ、新しいネットワークタイプであるLOP(LightOperators)がサポートされます。
Solarisは、ルック開発、レイアウト、ライティングのためのツールとネットワークを構築する環境であり、アセット開発から最終レンダーまで、USDフレームワークに基づくシーングラフを提供します。Solarisは、USDのHydraイメージングフレームワークに準拠し、SideFX社の新しいKarmaレンダラー*というHydraレンダーデリゲートを搭載しています(Mantraは、Solarisでは対応していません)。
*注: Karma レンダラーは、Houdini18.5ではベータ版としてリリースされています。
Solarisで出来ること
4-2.LOPネットワークとUSDワークフロー
LOP(Lighting Operator)ネットワークについて
LOPネットワークは、Houdini18.0で新しく実装されたオペレータです。
SOPネットワークに似ていますが、SOPがHoudiniのジオメトリモデルを使用する代わりに、LOPはSolarisでUSDを使用してネットワークを構築します。
よって、LOPノードは、キャラクター、プロップ、ライティング、レンダリングを記述するUSDを生成します。
USDを編集する場合、プリムのツリーとプリムのプロパティに変更を適用する必要があります。
※注:LOPネットワークは、Houdini内ではStageネットワークと表記されます。
LOPノードの利点
■USDを動的に生成
USDは、基本的に動的ではありません。Solarisは、USD上の動的レイヤーとして機能し、式、グローバル変数、スクリプト、データベースクエリまたは必要なその他の入力に基づいてことなるUSD出力を生成することができます。
■手順に従ってUSDを生成
例えば、100個のライトインスタンスが必要な場合、100個の参照を記述する必要はなく、for-eachループを使用してそれらを作成することができます。
■よりハイレベルな操作
現在、USDには制約がありません。Solarisは、LOPネットワークでは「ライブ」ですが、USDを出力するとベイク処理されるLook Atなどの制約を提供します。
SolarisでのUSDワークフロー
ワークフローは、大きく分けて3つの方法があります。
1.HoudiniのデータをLOPネットワークで読み込みUSD出力し、USDファイルを生成する手法
2.HIPファイルを読み込み、LOPネットワークで編集を加えて、USD出力する手法
LOPネットワークで編集を加えているため、修正を行う際に便利
3.HIPファイルを作成して、LOPネットワークでUSDアセットを生成、 次にLOPを使用してこれらのアセットをロードし、それらを結合してより大きなシーン/ショットにする「高レベル」HIPファイルを作成する手法
USDファイルの使用する上でのルール
Solarisを使用して、USDへの依存度やパイプラインの場所に応じて、様々な方法でUSDを操作することができます。
例えば、次のワークフローでは2つのUSDファイルがあります。SET_A.USDとSET_B.USDの2つのUSDファイルは、それぞれプリミティブへの異なるネームスペースを保有しています。この状態でサブレイヤー化を実行した場合、上書きはせずに、合成することができます。
この2つのUSDファイルをサブレイヤーとして合成した場合、異なるネームスペース(SET_A、STE_B)を持っていたため上書きされることはなく、全てのデータは新たに1つのUSDファイルに格納されます。
さらに、SET_C.USDというファイルをステージ(/)内にサブレイヤーとして追加します。Set_A2は、cube2とsphere1があり、Set_B2にはcube1とsphere1が格納されています。
SET_A、SET_Bがステージ(/)に格納された状態でSET_Cがサブレイヤーインポートされた場合、SET_Cの情報がステージに上書きされます。
■ネームスペースについてシーングラフ内のプリミティブのためのパスです。また、USDドキュメントでは、シーンツリーをネームスペースと呼ぶ場合があります。
4-2.実演
Solaris上で簡単なシーンを使って説明していきます。SET_A.USDファイル内に、Set_A1、Set_A2があります。さらに、Set_A2内にはcube1、sphere1が格納されています。
SET_B.USDファイル内に、Set_B1、Set_B2があります。さらに、Set_B2内にはcube1、sphere1が格納されています。
上記2つのUSDファイルを合成する場合、Solarisは空のルートレイヤーおよびステージ(/)を作成します。
空のステージ(/)にSET_A.USDファイルのデータを追加します。
次に、SET_B.USDファイルをサブレイヤーとして追加します。
ステージ(/)内にSET_A.USDおよびSET_B.USDファイルが格納されたことが確認できます。
さらに、SET_C.USDというファイルをステージ(/)内にサブレイヤーとして追加します。Set_A2は、cube2とsphere1があり、Set_B2にはcube1とsphere1が格納されています。
SET_A、SET_Bがステージ(/)に格納された状態でSET_Cがサブレイヤーインポートされた場合、SET_Cの情報がステージに上書きされます。
下画像は、SET_C.USDをサブレイヤーとして追加した結果です。
これでお分かりになるように、USDでコンポジションアークを行う場合、シーングラフ上のネームスペースがとても重要になってきます。
USD設計上の鍵となりますので押さえておいてください。
Houdini上で実際にサブレイヤーを用いて合成している様子を、YouTubeにて公開している動画内でも紹介していますので、ぜひご覧ください。
↓下のリンクから再生すると、実践している部分から再生されます↓
---------------------------------------------------------------------
今回のパートは以上となります。
次回Part4では「USDを用いたHoudiniの操作」を解説します。
是非ご覧ください。
この記事が気に入ったらサポートをしてみませんか?