コンテンツにスキップ

Houdini の Group

Houdini の機能でまず最初に面食らったのがこの Group。
Maya とかだと単純にノードをまとめるとか、Null として空ノードとして
使用印象しかないのだが、
Houdini の場合もっと多機能でありとあらゆる物のベースになっているなと
触ってて思いました。

マテリアルのアサイン

単純な例として。
Group ノードにさすと、刺したノードをグループに入れることができる。

Material ノード側で Group に対して Material をアサインすることができる。

やっていることはこれと同じ。
上の例だと、単純にノードをグループ化しているだけなので
あまり面白みはないですね。

Expression でグループを作る

Houdini はありとあらゆる所に Expression やらスクリプトを挟むことが出来る。
それは Group も例外ではない。
GroupExpression を使用すると、Expression にマッチするプリミティブやポイントやバーテックス
のグループを生成してくれる。

Y が 0 以上のものをグループ化して、そのグループに入っているポイントの Y をすべて 0 にした例。

範囲指定でグループを作る

GroupByRange ノードを使用すると、指定の ID から指定の ID までの範囲を指定の数とばしで
グループを作ることが出来る。

この設定だと、

このように 1 つ飛ばしのプリミティブが選択されるようになる。

新規に追加されたポリゴンのグループ

PolyExtrude などで、ノードによって新しく追加されたポリゴンを
1 つのグループに追加することができる。

Output Geometry and Groups の項目でグループを作成したい部分を選択する。
Extrude の場合、Extrude してできた側面・表面などの単位で
指定が出来る。

extrudeFront を BaseGroup としてグループを作成した結果。

2 つのグループを組み合わせる

上の extrudeFront の結果を、1 つおきに選択したグループを作成したい場合。

GroupRange で1つおきに選択したグループを作成する。
extrudeFront とこの GroupRange の結果の「かぶっている部分のみ」を選択した
グループを作成したい場合「GroupCombine」を使用する。

Intersect(And) を使用すると、両方のグループに属するプリミティブのみ
グループ化することができる。

結果。

groupCombine は、 Group で指定した名前のグループに、 → で指定したグループと、その下の条件で指定した
項目をグループに入れる。
extrudeFront と extrudeFront のように同じ名前にしていると
元の extrudeFront の結果が上書きされる。

新しい名前を追加した場合は、

新しいグループとして、新しいグループが追加される。