こんにちは篠島です。前回の続きで竜巻を作りますが、カーブに対してパーティクルがどの位置にあるかによってVelocityを変更してみます。
今回のサンプルファイルです。
tornado_v3
まずは0-1の範囲の記事で説明したとおり、カーブに対して適当にalongという名前のアトリビュートを作り、カーブの最初から最後まで0-1の値を割り当てています。POP VOP内でカーブのポイントを後から参照できるようにidアトリビュートも作り、単純にポイント番号を割り当てています。
POP VOPの中身です。赤くしたノードが今回新しく追加したものです。Point Cloud Filter VOPでパーティクルから一番近いポイントのIDアトリビュートを取得し、それをImport Point Attribute VOPに繋いでalongアトリビュートを取得します。Import Point Attribute VOP はFileで指定したジオメトリの特定のポイントのアトリビュートを取得するものです。
alongアトリビュートは0-1の間の値が入っているのでRamp VOPを使ってリマップします。それをそれぞれのMultiply VOPに繋げてカーブに沿って動くベクトル、カーブの中心へ向かうベクトル、カーブの中心を元に回転するベクトルをさらに細かく調整できます。
例えばRamp VOPによってカーブの中心へ向かうベクトルを下のようにすると、パーティクルの動きはカーブの中心あたりで強く吸い込まれるようになります。
カーブに沿って動くベクトルのRamp VOPを下のようにすると、カーブの中間あたりで値が0になるのでこれ以上進まなくなります。
カーブの中心を元に回転するベクトルのRampを下のようにすると、カーブの中間あたりだけでパーティクルが回るようになります。
以上のようにカーブとRampを使って更に細かいVelocityの調整が可能なので色々と試してみましょう!