このチュートリアルでは、球体から発生したパーティクルをティーポットの形状をゴールとし、最終的にティーポット型のパーティクル集合を作成するという内容。
まずは球体とティーポットを作る
はじめにsphereを作る。
その後、sphere_object1内で Platonic Solids ノードを作成し、Solid TypeをUtah Teapotに
popnetノード
popはParticle OPerationのこと、多分。
popnetノードを使用し、パーティクル処理を作成する。
popnetとは、Particle OPeration Networkのことだと思う。(多分)
このノードの中にパーティクル処理のためのネットワークを作成するようだ。
※チュートリアルが作成された時点では、popnetノードが旧式のものしかなかったようで、Houdini 13ではpopnet – old というタイプで定義されているノードを使用する。
popnet – oldノードが作られた時点では、中身は空っぽでなんの動作も行わない。
オブジェクトからのパーティクル放出
エミッタオブジェクトをpopnetのinput1に、収束するターゲットオブジェクトをinput2につないでおく。
popnet-oldに入り、sourceノードを作成。
ソースはinput1に入力されたジオメトリオブジェクトになるので、 Geometry SourceをUse Firse Context Geometry にする。
この時点で、球体の各頂点からパーティクルが発生するようになっているが、速度等を持たないので動かない。
初速を持たせるために、Attributesタブで Initial Velocity を Add to inherited velocity にする。こうすることで、親から継承された速度ベクトルに加え、自らが定義した速度を持ってパーティクルが放出されるようになる。
Velocityは速度ベクトル。Varianceは速度ベクトルに加えられるランダム速度ベクトル。x=3であれば、ランダム範囲は -3~3
パーティクルを引きつけるattractorノードを作成
attractorノードを作成する。
sourceノードでパーティクルを放出するジオメトリを選んだ時の要領で、Geometry Source を Use Second Context Geometry に
これで、input2に接続されたティーポットオブジェクトがパーティクルの引きつけターゲットになるが、このままではかなりラフなティーポットの頂点が引き付けターゲットになるので、引きつけが成功してもティーポットには見えない。
また、現時点ではティーポットの点からは引き付けの力が発生していないので、パーティクルの動作には変化がない。
ティーポットの表面に収束先パーティクルを作成する
scatterノードをつなぎ、ティーポットの表面にパーティクルを生成する
scatterで作られたパーティクルに力を与える
pointノードを作成する
pointノードのforceタブで各種力を設定可能。
Radiusを Add Radius に
Force Scale を Add Force Scale に
Radial Force を Add Radial Force に
popnet-old内のattractorノードに戻り、Attractor Use を Single point per Particle に
こうすることで、パーティクルとアトラクターの頂点が1対1で対応し、正しい軌跡でティーポットに引き付けられるようになる。
※この設定を行わない場合、1粒のパーティクルに影響を与える頂点がティーポット上にある全ての点になり、それぞれの力の合力が一つのパーティクルに作用するため、パーティクルは発生後に非常に高速で飛んでいってしまうのだと思う。
dragノード
現時点で、放出されたパーティクルはティーポットになんとなく引き付けられているように見えるが、収束すべき点に向かって移動する際の減速が弱く、なかなか収束しない。
よって、dragノードを使用して強制的にパーティクルを減速させる。
dragノードを作成し、 attractorの下流に接続する
※この時、dragノードの可視性をオンにしないと効果が見えないので注意
タイムレンジを変更する
デフォルトのタイムレンジ 0〜240フレームの間では収束が確認できないのでタイムレンジを変更する。
Global Animation Options ウインドウを開き、Endフレームを500〜1000程度にし、Applyで決定する。
この時、現在あるキーを新しいタイムレンジにフィットさせるか聞かれるので、必要に応じたオプションでメニューを閉じる。
細かいパラメータ調整で気持よく終息するように調整する
収束の具合はpointノードの各種forceパラメータの調整で。
パーティクル放出のエクスプレッションを設定する
sourceノードのパラメータを設定
Impulse Activation = $F < 50
Impalse Birth Rate = $NPT
Const Activation = 0
Const Birth Rate = 0
※Impulseアクティベーションは放出を行う条件
※$NPTは、放出ソースに指定されているオブジェクトの頂点数