02 Particle Setup
Particleのセットアップを解説します。
Smokeのシミュレーションが完了したら、そのままそのフロー【A】にPOPのフローを追加していきます。この2つを切り分ける場合もありますが、シチュエーションに応じて変更します。今回のシミュレーションはそこまで複雑で重いものではないので、今回は同時並行的に調整をかけていきます。まず、POP Object DOP【B】を作成し、新たに独立したObjectのフローを作成します。次に、POP Solver DOP【C】を作り、POP Source DOP【D】で、発生させたいジオメトリを選択します。今回はSmokeで使用したDensityのエリアから発生するように設定しています。
その後、POP Advect by Volumes DOP【E】を使ってParticleの動きを制御します。Velocity SourceはDOP Dataから参照します【F】。この場合、DOP Objectにはsmoke【G】を選択します【H】。Advection TypeにはUpdate Velocity【I】を選択し、ParticleのVelocityとBlendします。強さなどを調整して、動きを制御します【1】。
続いて、POP Kill DOP【J】を使って、遅いParticleを消していきます。こちらも必要に応じて使用します。RuleはVelocityの長さが指定よりも短くなった場合消えると言う設定になっています【K】。最後に、Particleだけを表示して、想定の動きになっているか確認して完了です【2】。
03 Line Setup
Lineのセットアップを解説します。
最後に、Particleの動きを可視化するために、Polygonのラインに変換したいと思います。まず、DOP I/O SOP【A】を使って、Particleだけを抽出しキャッシュを取ります【1】。次に、Trail SOPを使って、毎フレームその場に残るようにPreserve Original、Trail Lengthを$Fと設定します【2】。
このPoint全てをAdd SOP【C】を使って接続しますが、その際に、[By Group→Add]をBy Attributeに設定し、Attribute Nameはidにします。これにより、idごとにPolygonのラインに変換することができます【3】。後は、レンダリングに向けた設定を行います。VOP【D】を使って、色情報を追加します。今回はidやageにより時間経過で色味を変え、さらにランダムに色相が変わるような設定にしました。色味の変更などは一括で行うことで、制御を簡略化しています【E】。
また、ラインの太さもランダムに変わるように、Attribute Wrangle【F】で簡単なVEXpressionを書いて完了です【4】。
04 Operators
主要ノードを解説します。
●POP Advect By Volumes DOP
今回の主役は、POP Advect By Volumes DOPです。このノードは、Fluidシミュレーションで作成したデータをParticleに移流させることを目的としたオペレータです。基本的には、velのFieldを利用し、Particleのforce,v,Pを変更することを目的としています。
内部はPOP VOPで構成されており、全てがVOPによって構築されています。開発時から時間が経過しているためか、古いやり方がそのまま残っていますが、概ね完成された概念ですので、参考になります。必要に応じて新たに自分で構築しても良いと思います。そのくらい良く使用しますし、カスタマイズしがいのあるオペレータです。
Advection Typeによって、Particleの挙動を変更できます。Fluidに完全に合わせたい場合は、Update Velocityで設定を変更します。vel FieldをForceとして使用する場合は、Update Forceに設定します。Update PositionはParticleのPを直接動かしますので、Particleのvelocityとvel fieldを切り離して制御できます。
-
「Houdini COOKBOOK +ACADEMY」
Houdiniを基礎から楽しく学ぶオンライン講座
公開日程:毎週金曜日公開(予定)
価格:1,200円(税込)
※第一回「Houdiniの基本概念とインターフェイス」は無料公開中
受講対象:Houdiniをこれから学びたい方、Houdiniの勉強で挫折した方など
cgworld.jp/special/houdinicookbookacademy