Houdini 18のSparse Solverが出てから活躍の場が減ってしまいましたが、
Pyro Clusterは各Cluster Pointで解像度を変えることができるので結構好きです。
ただし、コンテナの回転とかやらないといけないくらいリソースカツカツの場合はSparse Solverでいいかな。と思う。
Houini触りたての頃はCluster意味わかんないと思ってました。Shelfのやつ使い辛すぎるのでは?
今でも設定がややこしすぎてたまに忘れることがあるので最低限の設定をメモ
ネットワーク
仕組みの大部分は両方とも共通しているので使い分けも容易
Scene Fileはこちら(Houdini 18.0.391)
サンプルシーンでは、Switch_typeを0-1で切り替えることでモードが切り替わります。
animation based
Cluster Pointの作成
アニメーションしているものをPackして1ポイントにして操作しやすくし、
int型のemitアトリビュートを作成、そのアトリビュートにフレーム番号を入れる。
addでポイントだけにし、Trailで軌跡を取り出す。
ラインに変換する
Timeshiftでアニメーションの最終フレームで固定し、Clusterを作成
Attribute Promoteで各Clusterごとにemitの最小値をPromoteする
Extract Centreoidで各Clusterごとの中心を取り出す
最初の位置にCluster Pointがない場合はTimeshiftで止めてMergeする
emitアトリビュートでポイント番号をソートする
ソートしたポイント番号をClusterにする
Pyro Sourceの作成
そのままPyro Sourceを作成する
その他必要なもの
Cluster Pointをemitとフレーム番号が同じ場合以外削除する
これにより、emitのアトリビュートの位置で自動でコンテナが作成される。
if(@emit!=@Frame) { removepoint(0,@ptnum); }
カメラからの距離などで値を決めるとより効率化が図れる
BBOXも作る(ほぼいらない)
DOP
Smoke Objectを画像のように設定
Gas Fluid Resize DynamicはMaxを指定
Volume Sourceの画像の箇所を設定
frame based
Cluster Pointの作成
エミットしたいポイントにそれぞれ1ポイントずつ配置し、emitアトリビュートにエミットしたいフレーム番号をいれる
emitアトリビュートでソートし、ソートしたポイント番号をClusterにする
Pyro Sourceの作成
Cluster Pointをemitとフレーム番号が同じポイントにエミッターの元をCopyする
Clusterごとにエミッターを作成し、作成されるField名をname_clusterにする
density_0みたいな感じ。
その他必要なもの
Cluster Pointをemitとフレーム番号が同じ場合以外削除する
これにより、emitのアトリビュートの位置で自動でコンテナが作成される。
if(@emit!=@Frame) { removepoint(0,@ptnum); }
カメラからの距離などで値を決めるとより効率化が図れる
BBOXも作る(ほぼいらない)
DOP
Smoke Objectを画像のように設定
Gas Fluid Resize DynamicはMaxを指定
Volume Sourceの画像の箇所を設定
Auto DetectまたはONにする。