質問されたのでメモ
Gas WindをDensityやSOP上のVolumeでコントロールする場合のやり方
他のGas ~~にも使える。
Gas Windの改造
Gas WindをAllow Editing of Contentsする
中にGas Field VOPが入っている
Gas Field VOPのData Bindingを変更しておく。
Autobind by Nameにチェックを入れ、念の為Number of Bindingsを0にしておく。
初期状態だとAutobindがオフなのでこのNumber of Bindingsに使用したいフィールド名を入れないとVOP内のBindで読めないはず
他のGas 〜〜系を改造したい場合はこの場所は必ず確認しておくこと。
追加箇所
Gas Field VOP内の画像の箇所、ここにWind ScaleがあるのでここのあとにMultiply処理を挟んでDensity等で強さが変わるように変更する。
追加した処理
上記画像の処理を追加する。
Compareで>0以上として分岐しているのは、Densityが少ないほど風に流れてほしい処理をする場合、Densityがない部分にもWindがかかってしまい、全部風で流れてしまうため。
DensityでMultiplyした意味がなくなってしまう。
こういう0の場合を考えた処理を忘れてうまく行かない、となるパターンも多いので忘れないこと。
SOPから範囲を読み込む場合
SOPで適応範囲を作る
今回はこんな感じで。
変更箇所(VOP外)
Gas Field VOPのこの部分を変更し、読み込む。
何故かGas Windはこのレイアウトが崩れてしまっていて分かりづらい。
ゼロからGas Field VOPを作ればわかりやすい場所にある。
変更箇所(VOP内)
この部分の処理を追加・変更する
Rampは以下の設定
結果
影響範囲のbboxを表示すると画像のように、範囲に入ってからGas Windの効果が出ているのがわかる。
おまけ
Gas Windにある、Turn Speed, Join Speedの考え方はとても大事だと思う。
Turnがvelの向きが変更される割合、Joinが速度が変更される割合。
POPでも同じで、velやvを変更する処理でこの考え方を取り入れるとより自然なコントロールになると思う。