~基本的すぎてあまり紹介されない、ちょっと便利なTips紹介~
『Houdiniかんたんレシピ』は、Houdiniを使っていく上で、基本的なことですが、基本すぎてチュートリアル等で紹介されないような、ちょっとしたTipsやニッチな機能を紹介していくシリーズです。
今回はBundle Listについてです。
Bundle Listを使うことでノードをまとめてグループ化することができます。また、オブジェクトを指定するパラメータで、複数のオブジェクトをまとめて指定することができます。
バンドルグループは、「@Bundle名」で参照することができます。
例えば、以下のようなシーンがあるとします。
ライトがRGBで3つ、ジオメトリがABCの3つ、グリッドが1つあるシーンです。
BundleListは5つ設定されています。
デフォルトでレンダリングすると以下のような結果になります。
geo_AのLight Maskに@bundle_Light_RBを設定することで、geo_AはLight_R、Light_Bの影響しか受けなくなります。
Light_BlueのShadow Maskに@bundle_geo_BCを設定することで、Light_Blueからの影はgeo_B、geo_Cにのみ落ちるようになります。
grid_objectのReflection Maskに@bundle_geo_ACを設定することで、grid_objectにはgeo_A、geo_Cしか反射しなくなります。
mantraROPのforced Phantomに@bundle_geo_ABを設定することで、geo_A、geo_BをPhantom Objectにすることができます。
※Phantom Objectとは、反射や影等のセカンダリレイ以降をレンダリングするオブジェクトのことです。
object MergeSOPのObjectでBundle Listを使うことで、複数のGeometryをまとめて参照することもできます。
以下の例では、@bundle_geo_ABCを参照して、geo_A、geo_B、geo_Cの3つのGeometryを読み込んでいます。
Bundle Listとは別に、ノードグループというものもあります。
これはノード階層におけるノードをまとめてGroupにすることができます。
/obj/geo2/@groupのように書けば、別階層のGroupを参照することができます。
Bundleはグローバルグループ、ノードグループはローカルグループと言えるでしょう。