すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

Gas Windを他のフィールドでコントロールする

質問されたのでメモ

Gas WindをDensityやSOP上のVolumeでコントロールする場合のやり方

他のGas ~~にも使える。

f:id:godofsuama:20210808223645p:plain

Gas Windの改造

Gas WindをAllow Editing of Contentsする

f:id:godofsuama:20210808214221p:plain

中にGas Field VOPが入っている

f:id:godofsuama:20210808214306p:plain

Gas Field VOPのData Bindingを変更しておく。

Autobind by Nameにチェックを入れ、念の為Number of Bindingsを0にしておく。

f:id:godofsuama:20210808222319p:plain

初期状態だとAutobindがオフなのでこのNumber of Bindingsに使用したいフィールド名を入れないとVOP内のBindで読めないはず

他のGas 〜〜系を改造したい場合はこの場所は必ず確認しておくこと。

追加箇所

Gas Field VOP内の画像の箇所、ここにWind ScaleがあるのでここのあとにMultiply処理を挟んでDensity等で強さが変わるように変更する。

f:id:godofsuama:20210808222636p:plain

追加した処理

f:id:godofsuama:20210808223059p:plain

上記画像の処理を追加する。

Compareで>0以上として分岐しているのは、Densityが少ないほど風に流れてほしい処理をする場合、Densityがない部分にもWindがかかってしまい、全部風で流れてしまうため。

DensityでMultiplyした意味がなくなってしまう。

こういう0の場合を考えた処理を忘れてうまく行かない、となるパターンも多いので忘れないこと。

SOPから範囲を読み込む場合

f:id:godofsuama:20210808230155p:plain

SOPで適応範囲を作る

f:id:godofsuama:20210808225539p:plain

f:id:godofsuama:20210808225555p:plain

今回はこんな感じで。

変更箇所(VOP外)

Gas Field VOPのこの部分を変更し、読み込む。

f:id:godofsuama:20210808225733p:plain

何故かGas Windはこのレイアウトが崩れてしまっていて分かりづらい。

ゼロからGas Field VOPを作ればわかりやすい場所にある。

f:id:godofsuama:20210808225846p:plain

変更箇所(VOP内)

f:id:godofsuama:20210808230037p:plain

f:id:godofsuama:20210808230104p:plain

この部分の処理を追加・変更する

Rampは以下の設定

f:id:godofsuama:20210808230223p:plain

結果

f:id:godofsuama:20210808230331p:plain

影響範囲のbboxを表示すると画像のように、範囲に入ってからGas Windの効果が出ているのがわかる。

おまけ

Gas Windにある、Turn Speed, Join Speedの考え方はとても大事だと思う。

Turnがvelの向きが変更される割合、Joinが速度が変更される割合。

POPでも同じで、velやvを変更する処理でこの考え方を取り入れるとより自然なコントロールになると思う。