Houdini sidefx official Lesson1-1 プロキシモデルとランダム配置

ノードタイプには、Geometryと各種形状ノードがある。
Mayaで言うところのTransformがGeometryにあたり、内部に各種形状ノードネットワーク、つまりMeshなどのShapeノードと、それを操作するHistoryノードが格納されている状態。

オブジェクト内には複数の形状を保持できる。
通常通りオブジェクトを作り、Geometryレベルに入ってBOXノードなどを追加することで、複数の形状を保持できる。
表示のオンオフは、ノード右側の表示ボタン(水色)で行える

自動的なパラメータの受け渡し

パラメータ上で右クリックしCopy Parameter。
同期を行いたいパラメータの上で右クリックしPaste Copied Relative References。
ペースト先に「ch(“パラメータのパス”)」が自動的に記入され、コピー元の値が受け取られるようになる。※記入されるのはエクスプレッション

基本的にはペースト先はコピー元の値を受け取るようになるが、パラメータの中ボタンドラッグで値を変更すると、受け取った値にオフセット値として新たに値が足しあわされる。

パラメータ名の確認

ノードプロパティのラベルの上でカーソルを静止させるとポップアップヘルプが表示され、その中に各パラメータ名が表示されている。

パラメータの表示モード

パラメータのラベルをクリックすると、実際の値と仮の値(エクスプレッション文字列など)を切り替えることができるようだ。

mergeノード

ジオメトリレベル内で複数の形状を作成し、mergeノードにコネクトすることで複数の形状をまとめて表示できるようになる。

20140413_02_0

20140413_02_1

ノードの状態を手早く確認する

各ノードを中ボタンでクリックすると、各種パラメータの状態がポップアップ表示される。

ノードパラメータへのパス

自身のパラメータへのパスはパラメータ名を単純に使用
ch( “tx” ) など

別ノードへのパス以下のように書く
ch( “../sphere1/tx” ) など

上記の例は、box1からsphere1のパラメータへアクセスする場合の書き方。
自分と同階層にあるノードへアクセスするため、一旦上位階層へ上がってから目的のノードを指定する。

パラメータのアニメーション(キーフレーム)

パラメータラベルをAltキーを押しながらクリックすると、各値のボックスの値にキーが打たれ、緑色に変わる。時間を動かし、パラメータを変化させ、同じようにAltを押しながらラベルをクリックで新しいキーを打つ。

プロシージャルアニメーション

sin関数を使用する例
パラメータの入力ボックスに sin( $F ) などと入力。
$Fは、現在フレーム番号を表す。

ノードの直接生成に関して

Network ViewでTabキーからノードを作成する際、現在見ているレベルによって作れるノードの種類が変わる。

transformノード

Mayaのtransformノードとは違い、Houdiniでのtransformノードはオブジェクトのローカル空間内での変換用に用いられるようだ。

下流ノードをお手軽に作成

上流ノードの出力コネクタを右クリックし、下流に作成したいノードをポップアップメニューから選択、または、フィルタを使用していつも通りにノードを作成する。

attribcreateノード

下流ノードのパラメータへのエイリアスが作れるノード?
チュートリアルでは、scatterノードの上流にattribCreateノードを置き、アトリビュート名をpscaleとすることで、散布されたオブジェクトのスケールを変更した。動作に関して要調査

paintノード

スキンウエイトやダイナミクスのアトリビュートを直接モデルにペイントできるノードのようだ。attribCreateの下流につないで使用した。
attribCreateから出力される値に対し行う処理で使われる値をペイントする。例えば、入力値に対する倍率や加算する値など。

Override Colorパラメータを有効にし、上書きするパラメータ名をデフォルトの「Cd」から上流にあるattribCreateで指定した「pscale」パラメータを操作するように書き換えた。

Merge Modeでペイントした値が元の値に対してどのように処理されるかを決定する。

20140413_02_2

20140413_02_3

このチュートリアルでは、シンプルなボックスをまず最初に配置し、switchノードへ、ボックスとLSystemによって作られた樹木を接続。
ボックスはプロキシオブジェクトとして扱い、switchノードで出力するモデルデータを切り替えるようにし、精細な樹木と交互に切り替え表示できるようになった。

copyノードのstamp

コピーしたオブジェクトそれぞれ個別に与える事ができるパラメータを作成できる。このパラメータでは、rand関数などを使用してそれぞれのオブジェクトにランダムな値を与えることもできる。

stampパラメータの作成

まずは、copyノードのstampタブを見る

20140413_02_4

stampタブの下部に各変数を生成するためのエリアがあるので、任意の名前と値をセットする。この値は、いつも通りエクスプレッションを記入することができる。

20140413_02_5

$PT という変数は、コピー先の各頂点番号を指す。

20140413_02_6

ここでは、rand関数に各頂点番号を与え、返ってくる0〜1の値に対して360をかけることで、ランダムな角度を計算できるようにしている。

stampパラメータの使用

使用するパラメータに、以下のように記述する

stamp( “copyノードのパス” , “使用するstampパラメータ名” , 0 )
この時、Stamp Inputチェックボックスは忘れずにオンにしておく。

結果

最後に、ランダムなY回転を行って配置したLSystemオブジェクトをちょうどいい数になるようscatterのNumber Of Pointsパラメータを調整して終了。

20140413_02_7

20140413_02_8

マテリアルが設定されていないので真っ白w

コメントを残す