パーティクルとテクスチャリプリケータでアイテムに穴を開ける表現について書いてみます。
大まかな設定は前回の「パーティクルでアイテムを濡らす」と同じですが、今回はパーティクルがコリジョンと衝突したら消滅して、新たにパーティクルを発生するように設定しています。
パーティクルの設定は以下の通りです。Particle Simulation_1 は発射用で、Particle Simulation_2はコリジョンと衝突したときにパーティクルを発生させる用のシミュレーションです。
スケマティックも前回とほぼ同じです。 Particle Operator の「衝突イベント」を自身の「消滅」にリンクすることで、コリジョンに衝突したタイミングでパーティクルを消滅させている点が違います。
レンダリングの設定は Constant レイヤーのレイヤーエフェクトを「ディゾルブ」に設定し、テクスチャリプリケータにParticle Simulation_2 を設定してアイテムに穴が開いたように見せています。単純ですね。
パーティクルがアイテムと衝突するだけなら「パーティクルで文字を書く」と同じで、新たにパーティクルを発生させなくてもいいんじゃないか?と思うかもしれません。
最初はそう設定していたのですが、テクスチャリプリケータの「ランダムサイズ」「ランダム回転」を使用すると、アニメーションレンダリング時に、一部のパーティクルでフレームによってパーティクルのサイズや回転が変わってしまうという問題が発生しました。原因は謎ですがコリジョンの影響でフリップしているように見えたので、新しくパーティクルを発生させることで問題を回避出来ました。
他にも穴を開けるような表現をする場合は、リプリケータとレンダーブーリアンを使うこともできます。下の画像では色を設定していますが、マテリアルの設定でディゾルブを100に設定すると透明にくり抜くことができます。
レンダーブーリアンはメッシュの形状を使用して複雑なくり抜きができますが、メッシュが重なっている箇所で望ましくないレンダリング結果になることがあります。欲しい表現に適した方法を選択するといいと思います。
次回も引き続きパーティクル制御で、雨の波紋のような表現について書いてみたいと思います。