Tips

modoのパーティクルで波紋を表現

パーティクルとテクスチャリプリケータで水面に広がる波紋の表現について書いてみます。
結論から言うとテクスチャリプリケータはパーティクルごとランダムに消えるような表現ができませんでした。

大まかな設定は前回の「パーティクルでアイテムに穴を開ける」と同じですが、パーティクル位置から発生させたパーティクルをParticle Operatorで制御してます。

パーティクルの設定は以下の通りです。Particle Simulation_1 は発射用で、Particle Simulation_2はコリジョンと衝突したときにパーティクルを発生させる用のシミュレーションです。

スケマティックも前回とほぼ同じです。 Particle Operator の「寿命」を自身の「サイズ」にリンクすることで、パーティクルが発生してから徐々にサイズが大きくなるように設定しています。イーズイン、イーズアウトをより詳細に制御したい場合はチャンネルリレーションシップを使うと便利です。

スケマティックでは「寿命」を「ディゾルブ」にリンクしていますが、テクスチャリプリケータは「ディゾルブ」に対応していないため透明にならないようです。(リプリケータ、ボリューム、ブロブにはディゾルブが正しく反映されます)

波紋が消えるシーケンスデータを設定すれば寿命に合わせてアニメーションするんじゃないかと思って試したましたが、レイヤーの不透明度と同様に同じフレームで全てのパーティクルが消えてしまいました。もし渇するとリプリケータで波紋のメッシュを発生させて、シェーダーノードを使ってメッシュとのレイ判定をバンプに設定すればうまく行くかも知れません。

波紋のテクスチャは Gradient Fill レイヤーを使用しました。Gradient Fill は放射状のグラデーションを手軽に作れるので便利です。レイヤーエフェクトは「バンプ」に設定して、テクスチャリプリケータに Particle Simulation_2 を設定することでパーティクルの位置に波紋を発生させています。
上記の通り波紋が個々に消えるタイミングは上手く制御できなかったので、単純にレイヤーの「不透明度」に100から0に変化するキーを設定しました。


 

今回はSFっぽいエフェクトにも使えるように、パーティクルが衝突したタイミングで波紋を発生させたかったかったのですが、残念ながらテクスチャリプリケータでは表現できないようでした。単純に雨の波紋を作りたい場合は「Rainレイヤー」を使用すると簡単かもしれません。

次回も引き続きパーティクル制御で、オブジェクトが砕けるような表現について書いてみたいと思います。

コメントを残す

*