見出し画像

Houdini18.5 Solaris(USD) トレーニング Part3    Solarisについて

はじめに

YouTubeに説明動画をUPしておりますので、併せてご覧ください。

今回のパートは、演習を含んでおります。
下のファイルが該当データとなっておりますので、
ぜひダウンロードしてご活用ください。


デュアルモニター

■この記事を閲覧される対象の方
・Solaris(USD)について体系的に学習したい方
・Houdini Solarisの導入を検討している方
・ライティング、ルック開発、レイアウトに携わるアーティスト

■記事作成時の情報について
Houdini18.5.462、2021年9月に作成

----------------------------------------------------------------------

はじめに2

4-1.Solarisとは?

スライド3

HoudiniのUSDサポートツールは、Solaris(ソラリス)と総称されます。Solarisは世界初のアプリケーションベースでUSD環境を統合してリリースされたUSDツールです。ビューにUSDがサポートされ、新しいネットワークタイプであるLOP(LightOperators)がサポートされます。

Solarisは、ルック開発、レイアウト、ライティングのためのツールとネットワークを構築する環境であり、アセット開発から最終レンダーまで、USDフレームワークに基づくシーングラフを提供します。Solarisは、USDのHydraイメージングフレームワークに準拠し、SideFX社の新しいKarmaレンダラー*というHydraレンダーデリゲートを搭載しています(Mantraは、Solarisでは対応していません)

*注: Karma レンダラーは、Houdini18.5ではベータ版としてリリースされています。

Solarisで出来ること

スライド5

4-2.LOPネットワークとUSDワークフロー

LOP(Lighting Operator)ネットワークについて

スライド7

LOPネットワークは、Houdini18.0で新しく実装されたオペレータです。
SOPネットワークに似ていますが、SOPがHoudiniのジオメトリモデルを使用する代わりに、LOPはSolarisでUSDを使用してネットワークを構築します。
よって、LOPノードは、キャラクター、プロップ、ライティング、レンダリングを記述するUSDを生成します。
USDを編集する場合、プリムのツリーとプリムのプロパティに変更を適用する必要があります。
※注:LOPネットワークは、Houdini内ではStageネットワークと表記されます。

画像6

画像7

スライド10

LOPノードの利点

■USDを動的に生成
USDは、基本的に動的ではありません。Solarisは、USD上の動的レイヤーとして機能し、式、グローバル変数、スクリプト、データベースクエリまたは必要なその他の入力に基づいてことなるUSD出力を生成することができます。

■手順に従ってUSDを生成
例えば、100個のライトインスタンスが必要な場合、100個の参照を記述する必要はなく、for-eachループを使用してそれらを作成することができます。

■よりハイレベルな操作
現在、USDには制約がありません。Solarisは、LOPネットワークでは「ライブ」ですが、USDを出力するとベイク処理されるLook Atなどの制約を提供します。

画像9

SolarisでのUSDワークフロー

スライド11

ワークフローは、大きく分けて3つの方法があります。

1.HoudiniのデータをLOPネットワークで読み込みUSD出力し、USDファイルを生成する手法

画像11

2.HIPファイルを読み込み、LOPネットワークで編集を加えて、USD出力する手法
LOPネットワークで編集を加えているため、修正を行う際に便利

画像12

3.HIPファイルを作成して、LOPネットワークでUSDアセットを生成、 次にLOPを使用してこれらのアセットをロードし、それらを結合してより大きなシーン/ショットにする「高レベル」HIPファイルを作成する手法

画像13

USDファイルの使用する上でのルール

スライド16

Solarisを使用して、USDへの依存度やパイプラインの場所に応じて、様々な方法でUSDを操作することができます。
例えば、次のワークフローでは2つのUSDファイルがあります。SET_A.USDとSET_B.USDの2つのUSDファイルは、それぞれプリミティブへの異なるネームスペースを保有しています。この状態でサブレイヤー化を実行した場合、上書きはせずに、合成することができます。

スライド17

この2つのUSDファイルをサブレイヤーとして合成した場合、異なるネームスペース(SET_A、STE_B)を持っていたため上書きされることはなく、全てのデータは新たに1つのUSDファイルに格納されます。

スライド18

スライド19

さらに、SET_C.USDというファイルをステージ(/)内にサブレイヤーとして追加します。Set_A2は、cube2とsphere1があり、Set_B2にはcube1とsphere1が格納されています。

スライド20

SET_A、SET_Bがステージ(/)に格納された状態でSET_Cがサブレイヤーインポートされた場合、SET_Cの情報がステージに上書きされます。

スライド22

スライド23

■ネームスペースについてシーングラフ内のプリミティブのためのパスです。また、USDドキュメントでは、シーンツリーをネームスペースと呼ぶ場合があります。

4-2.実演

Solaris上で簡単なシーンを使って説明していきます。SET_A.USDファイル内に、Set_A1、Set_A2があります。さらに、Set_A2内にはcube1、sphere1が格納されています。

画像17

SET_B.USDファイル内に、Set_B1、Set_B2があります。さらに、Set_B2内にはcube1、sphere1が格納されています。

画像18

上記2つのUSDファイルを合成する場合、Solarisは空のルートレイヤーおよびステージ(/)を作成します。

画像19

空のステージ(/)にSET_A.USDファイルのデータを追加します。

画像20

次に、SET_B.USDファイルをサブレイヤーとして追加します。

画像22

ステージ(/)内にSET_A.USDおよびSET_B.USDファイルが格納されたことが確認できます。

画像22

さらに、SET_C.USDというファイルをステージ(/)内にサブレイヤーとして追加します。Set_A2は、cube2とsphere1があり、Set_B2にはcube1とsphere1が格納されています。

画像23

SET_A、SET_Bがステージ(/)に格納された状態でSET_Cがサブレイヤーインポートされた場合、SET_Cの情報がステージに上書きされます。
下画像は、SET_C.USDをサブレイヤーとして追加した結果です。

画像24

これでお分かりになるように、USDでコンポジションアークを行う場合、シーングラフ上のネームスペースがとても重要になってきます。
USD設計上の鍵となりますので押さえておいてください。

Houdini上で実際にサブレイヤーを用いて合成している様子を、YouTubeにて公開している動画内でも紹介していますので、ぜひご覧ください。
↓下のリンクから再生すると、実践している部分から再生されます↓

---------------------------------------------------------------------

今回のパートは以上となります。
次回Part4では「USDを用いたHoudiniの操作」を解説します。
是非ご覧ください。

画像29



この記事が気に入ったらサポートをしてみませんか?