2011/04/27

copyノードの使い方2

copyノードでコピーしたオブジェクトにスケールなどをかけると全て倍乗された値がかかってくる。

このようにせず、一つ一つのオブジェクトを変形させたいときは、コピーノードをもう一つ作成する。
この際、インプット先は左に。右にするとうまくいかない(なぜかは不明?)。
また、Transform Cumulativeのチェックは外しておく。
Transform Cumulative・・コピーが上位ノードに関連して変換される
http://www.sidefx.com/docs/houdini11.0/nodes/sop/copy
この状態でスケールなどをかけても、それぞれのコピーされたオブジェクトごとに独立してスケールがかかる。


以上。

copyノードの使い方1

グリッドのポイントにあわせて、各オブジェクトがランダムにアニメーションするようにしたい。



1.copyノードの設定
stampタブの設定をおこなう
value1に"randPeim"という名前で"rand($PT*3)*2
value2に"randScale"という名前で"rand($PT)*1.3

→グリッドのポイントの位置に任意の定数をかけて、ランダムに値を取っている

"pt"・・point
“det”・・detail
“vtx”・・vertex variables

2.swichノードの設定
selectinputにエクスプレッションを入れる
stamp("../copy1", "randPrim", 1)

*stamp stamp(scope,token,value)
stamping変数を返す

下流のコピーノードに通常から取得スタンプ変数を設定します。
この関数は、浮動小数点数の値を取得します。文字列の値については、stampsを使います。


scope:ノードのパスからの値を取得します。
token:変数の名前を取得します。
value:トークンが存在しない場合に使用するデフォルト値を設定します。
http://www.sidefx.com/docs/houdini11.0/expressions/stamp


ここでは、copyノードの、randPrimの値を返すように設定しています。
で、このstamp関数が良くわからないので、randPrimeの値がどう変化するのかが、不明ですが、copy stamping というのがあるのでそこを見てみると。
"The Copy to Points tool creates copies of a piece of source geometry on each point of a piece of template geometry. By default these copies are identical, but you can use stamping parameters to vary the generation of each copy.Stamping parameters let you communicate information upstream to the operators connected to its inputs. This lets you use values defined in the Copy SOP to control parameters on the source geometry as it is copied, even though the parameters are on operators upstream from the Copy SOP."「ポイントツールコピーし、テンプレートジオメトリの一部の各のソースジオメトリの一部のコピーを作成します。デフォルトでは、これらのコピー同じですが、各コピー世代変化させるパラメータ刻印することができます。
プレスパラメータを使用すると、その入力接続してオペレータ上流の情報を伝えることができます。これは、パラメータのコピーSOPから上流の演算子されていても、それコピーされると、ソースジオメトリパラメータを制御するためにコピーSOPで定義された値を使用することができます。」

となっており、ようするにとってきた値を、変数にしてコピーするみたいですね。
なので、ランダムに変化させた値を、下のinput operatorsに入れてそれぞれが、同時に出現するようにしているのでしょうか。
ちなみに、ただのランダム関数を入れると(rand($F/5))、それぞれのオブジェクト一つがフレームごとに出てきてしまいます。

stamp,swichノード、いくつか使い方を知りたいですね。

3.transformノードの設定
uniform scalingにstamp関数を入れる
stamp("../copy1", "randScale", 1)


ここも、スケーリングをランダムに、それぞれのオブジェクトにおこなうために、stamp関数が使われている。

こんなところでしょうか。
3つのオブジェクトのスケール、動きをそれぞれランダムに設定する、というところでswitchノードを設定し、stamp関数を使うところがミソでしょうか。
その前提の値は、コピーノードで設定して、その値をとってくるようにすることで、後からの変更にも対応できるんですね。

以上。

【基礎】パラメーターのTips

パラメーターにエクスプレッションを入れて、アニメーションさせるとき、今のフレームでどの値なのかを知る方法。

ここでは、offsetに"$F/15"という関数を入れている。
この状態で、フレームを進めてた状態で、パラーメータ名(ここではoffset)をクリックすると、現時点の値が出てくる。

【基礎】ノードアイコンのTips





・ディスプレイFLAG(目のマーク)
ディスプFlagをつけた状態がシーンビュー(作業画面)で表示される。

注意すべきは、選択状態(アイコンが黄色の状態)とは異なるということ。

ノードを選択した状態で、いろいろといじって、結果を見ようとしてもシーンビューで反映されないことが多々あります。これは、ディスプレイflagがついていないことが原因です。
ディスプレイフラグがネットワークのどのノードについているかは常に確認することが必要です。
僕もここは良く間違えます。

・レンダリング
ディスプレイフラグを上のノードにつけたままで、
下の階層でctr+クリックするとレンダリングflag(紫のフィルム)が表示され、アイコンに紫の円がつきます。
シミュレーションなど表示が重い場合は、ディスプレイflagを立てずに、こうやってオペレーション結果だけをレンダリングすることも可能。

・ロックフラグ
これまでの計算がフリーズされます。
いちいちファイルを開いたときに計算しなおされない。
ノードをきってもデータが蓄積される。
アンロックするときに、ポップアップがでる。
アンロックするときは、ちゃんとノードをつないでおかないと、再計算されず、再現できない。

2011/04/11

Particle EmitterのLocation Node-VelocityとVariance

Location Node
http://www.sidefx.com/docs/houdini11.0/nodes/pop/location

Velocity・・速度の設定と追加

Variance・・上記設定速度の分散値。このノードは、速度のパラメーターの数値に0からの+ /-の数値を各軸に沿って加えます。

この例だと、Velocityに沿ってParticleはX軸方向へ進み、分散方向Y軸上下に沿って広がっている。
今は0になっているXYZに数値を入れれば立体的な広がりとなる。


ちなみにwikiより「速度と速さについて」
"日常語としての速度(スピード、speed)は、大抵の場合一定時間あたりに進む距離のことを指す。これは [移動距離] ÷ [経過時間] で求めることができ、時速、分速などの単位が用いられる。

物理学の文脈では、日常的な意味での速度を速さ (speed) とよんで速度 (velocity) と区別する。速度は運動を表す物理量であり、ある物体が移動するときの、単位時間あたりの変位を表す。すなわち、物理学の文脈では速さと向きとを併せたものを速度というのであり、速さは「速度の大きさ」を示すスカラー量とみなされる。速度は“大きさ” と“向き”をもつのでベクトル量であり、それを明示するために速度ベクトルと呼ぶことがある。
例として、自動車が“一定速度”で東の方向に走り、1 時間で 60 km 移動した場合、車の速度は「東向きに時速 60 km」となり、車の速さは「時速 60 km」となる。また例えば、マラソン選手が 40 km を 2 時間で走った場合、そのマラソン選手の速さは 20 km/h、または時速 20 km と表される。"

Particle node-gravity and drop

Particle
gravity nodeのフォースの設定
 Force>Scaleで調整


Noise>Amplitude(振幅)
http://www.sidefx.com/docs/houdini11.0/nodes/pop/force
Noise・・The parameters on this tab add randomness to the force. This makes particles more or less affected at random, creating a less uniform effect
このタブのパラメータは、力にランダム性を追加します。これは、以下の均一な効果を作成し、粒子は、以下の影響をランダムに詳細になります。 )



Drag Node
Drag(抗力)・・・Applies drag to the velocity of particles.(抗力をパーティクルの速度に与える)
http://www.sidefx.com/docs/houdini11.0/nodes/pop/drag
そもそも「抗力」がよくわからなかったのでwikiよりhttp://ja.wikipedia.org/wiki/%E6%8A%97%E5%8A%9B
"抗力(こうりょく、drag)は、流体 (液体気体) 中を移動する、あるいは流れ中におかれた物体にはたらくのうち、流れの速度方向に平行で逆向きの成分のことである。流れの速度方向に垂直な成分は揚力鉛直上方、リフトフォースとも)やダウンフォース(鉛直下方)と呼ばれる。"


抵抗みたいなもの?か。イメージ的に。パーティクルが飛んでいくときの空気抵抗のような効果を出せる。
こちらもscaleパラメーターで調整する。1が最大。

Particleにブラーをかけてレンダリング

パーティクルにブラーをかけてレンダリングしたい。
複数のノードのパラメーターを変更する必要がある。

1.Particleノードでrenderノードを追加
render node http://www.sidefx.com/docs/houdini11.0/nodes/pop/render
パーティクルをどのようにレンダリングするか(描画するか)をコントロールする。
Particle type・・・球体、円形、ライン、チューブ状など選べる。
※ブラーをかけられるのはこのうち、sphere,disks表示のみ。
Particle size・・・パーティクルの大きさをコントロールする

Particle emitterのレンダー設定を行う
Renderタブ>Samplingタブ>Geometry Velocity Blur にチェック

Geometryタブ>Render As Points(Mantra)にチェック
renderノードでParticle TypeをLineなどを選択していた場合には、ブラーが適用されないため、ここにチェックを入れる。"デフォルトでは、パーティクルシステムプリミティブ内のポイントは、プリミティブとしてレンダリングされます。またポイントは、パーティクルシステムのプリミティブの一部でない場合、それ表示されません。このパラメータが有効になっている場合、このオブジェクトジオメトリから粒子系一部であるかどうかに関係なく、すべてのポイント、カメラに直面してポイントプリミティブとしてレンダリングされます。"

Mantraノードの設定

OutputノードにてMantraノードを追加する
Mantra>Properties>Sampling>Allow Motion Blurにチェックhttp://www.sidefx.com/docs/houdini11.0/nodes/out/ifd

マントラの設定
レンダー設定をIPRからマントラに変更。
IPRレンダリングではブラーがかからない。

モーションブラーのレンダリングについて詳しく