Houdini sidefx official Lesson6 Attributes & Variables

Details View

Mayaで言うところのスプレッドシート
各頂点位置やUV座標等を一覧したり、選択ノードに関わるマテリアル一覧など様々な情報を俯瞰してみることができる

ノード情報の確認

Network Viewでノードを中ボタンクリックすると、ノードに関する情報を一覧表示するポップアップウインドウが現れる。

Materialノード

マテリアルをオブジェクトにアサインする場合はまずオブジェクトにMaterialノードを接続し、Materialノード内でMaterialパラメータを使用し、どのシェーダを使用するか指定する。
グループノードを事前に用意し、特定のコンポーネントのみにMaterialをアサインする事もできる。

20140420_02_1

20140420_02_2

SHOP

Shader Operationのこと、多分。
シェーダーはSHOPツリーの中で管理される。

Measureノード

入力されたノードに関して様々な計測をするためのノード
TypeパラメータでAreaを指定すると、与えられた各面の面積を計算する。Override Nameをオンにし、Attributeパラメータで任意の名前をつけることができ、以降のコネクションにおいて、付けられた名前を使用することができるようになる。

20140420_02_3

AttribPromoteノード

指定したコンポーネントを走査し、平均値や最大値などを取り出すためのノード。
20140420_02_4

Original Nameによって計算するアトリビュート名を指定
Original Classによって走査するデータタイプを指定し、New Classによって出力先を指定。
Promotion Methodによって計算方法を指定。
Change New Nameをオンにし、New Nameで出力されるパラメータ名を指定する
Delete Originalがオンだと、計算に使われたパラメータの情報はAttrib Promoteノードを経由した時点で削除される。パフォーマンスと利便性のバランスを考えて適宜使用するのが良いのだろう。

上記の例では入力された各面の面積合計値を計算している。

Breakノード

input1に入力された形状を、input2に入力された形状で分断するノード

Connectivityノード

1ノードに複数のジオメトリ形状の塊がある場合、コンポーネント単位で所属しているジオメトリのIDが取り出せるノード。

20140420_02_5

上図の例では、それぞれのジオメトリにの塊を表すIDパラメータ名をchunkと名づけている。各塊にはIDが振られ、それぞれint値で表される。
また、この時付けられた名前は、以降のノードで使用できる変数名としても同時に定義される。
Details ViewのDetailタブを確認すると、varmapパラメータが作られていることがわかる。

chunk -> CHUNK

20140420_02_7

以降のノードでは、$CHUNKという変数が使用可能である

Partitionノード

1つのノードに含まれる複数のジオメトリの塊を個別に取り出すためのルールを決めるノード。

20140420_02_6

チュートリアルがここで終わったのでよくわからないが、個別の塊にshape_IDというグループ名前が付けられて出力されるということだろうか?

AttribCreateノード

以前も少し触ったノードだが、もう少し詳しく。
20140420_02_8

ポリゴンノードの出力から、新しいアトリビュートを生成。
ariという名前のfloat3アトリビュートを生成している。
ariアトリビュート内の各要素は、入力されたポリゴンデータに含まれる $CR,CG,CBの値をそのまま受け取り、そのまま出力する。
例えばここで各要素をシャッフルしたり、それぞれの要素に何かしらの計算を行いつつ出力を行うなど、かなり便利な使い方ができそう。

Attrib Transferノード

input1に与えられたジオメトリにinput2に与えられたジオメトリから任意のデータを付加して出力するノード

20140420_02_9

grid1にsphere1からアトリビュートを転写する。

20140420_02_10

転写するアトリビュート名をCd(頂点カラー)に指定

20140420_02_11

conditionタブで、影響を与える最大距離など、細かい設定ができる。

Trailノード

入力されたジオメトリの動きの軌跡を作成できる。

パーティクルの基本的な制御

POP Networkノード内でパーティクルを発生させる。
エミッターとなるオブジェクトを作成し、input1に接続
popnet内にsourceノードを作成し、パーティクル作成方法を指定

20140420_02_12

パーティクルに対するアトリビュート転送

popnet内にAttribTransferノードを作成。
下図の例ではpopnetのinput2に接続されたジオメトリから頂点カラー(Cd)をパーティクルに対して転送している。

20140420_02_13

popnetでのgroupノード

popnet内でのgroupノードは、特定の条件に当てはまるパーティクルの取り出しに使うことができる。

20140420_02_14

上図の例では、頂点カラーのR値が0.6より大きくなった全パーティクルをredというグループ名で取り出せるようにグルーピングしている。

このグループ名は、以降に続くノードで使用できる。

パーティクルに外力を与える

sourceノードの下流にforceノードを接続する。

パーティクルの動きを制限する

LimitノードやSoftLimitノードを接続する。
20140420_02_15

これらのノードは、パーティクルに何らかの意味を持つ範囲情報を与えることができる。
例えば、その範囲を超えたら消滅する。範囲の境界でバウンスするなどを指定できる。
言ってみれば、コリジョンノードとも言えるかもしれない。

コメントを残す