どうも篠島です。前回はPOP VOPによってパーティクルをスピンさせました。今回もパーティクルの制御について説明します。
今回のサンプルファイルです。
spin2.zip
前回は回転用のVelocityとForceを作りました。今回は作ったベクトルをVelocityだけに繋いでForceのサンプルは作っていません。個人的にはForceで操作するよりVelocityで直接パーティクルを操作したほうが簡単かなと思います。
CG数学 ベクトルで説明したとおり、ベクトルは足し算することにより新しいベクトルが出来上がります。これを利用して前回作った回転用のベクトルと、新たに内側に吸い寄せられるベクトルと、外側に放射状に広がるベクトルを足して新しいベクトルを作ります。このように、VelocityやForceを作る場合は目的ごとに別々のベクトルを作っておくと、それぞれのベクトルの強さを調整することで回転だけを弱くしたりできるので便利です。
下の画像の様なベクトルを用意します。内側、外側へ向かうベクトルはただ単純に位置ベクトルを標準化して単位ベクトルにし、それに-1を掛けたりしているだけです。内側、外側ベクトルを別々に作るのではなく、スカラー値を掛けてどっちのベクトルでも作れるようにしています。
これをPOP VOPで作ったのが下になります。ネットワークボックスを使って、ノード群をまとめて分かりやすくしています。回転用と放射状ベクトルに分けて、それぞれにMultiplyノードを付けて強さを調整できるようにしています。まだベクトルが2つ分しか無いのでVOPネットワークもそこまでごちゃごちゃしていませんが、複数のベクトルを制御し始めるとネットワークもかなりごちゃごちゃしてきます。
上と同じものをVEXコードで書いたものが下になります。たったの5行で同じことができてしまいます。
そして放射状のベクトルをアニメーションすることで下のような動きになります。