今回はパーティクルを生成する際、サイズや回転速度や移動速度をある程度ランダムにしたり、ある程度の法則性に従い制御する方法についてメモします。
ランダムではないパーティクルの値は変化しない
御存知の通り、パーティクルシステムの生成(Emit)やサイズ・回転・速度はParticleのコンポーネントから制御します。設定できる項目は、色々です。
さて、例えばStart Speedで5と設定すれば、パーティクルは5の速度で移動します。常に。これは例えば一括で生成した場合、同じように扇状に広がることを意味しています。時間差で生成すればもう少しバラけるのですが、場合によっては宜しくないかもしれません。
パーティクルの値をある程度ランダムにする
パーティクルの値をある程度ランダムにしたい場合、Random Between Two Contentsを使用します。このパラメータを使用すると、生成するパーティクルの範囲を指定する事が出来ます。
例えば下のGifでは、Start Speedを1~5に、Start Sizeを0.2~0.5に設定しています。そうすると生成タイミングが同一のパーティクルであっても、バラバラな感じで持ち上がるようになります。
一定間隔ごとに生成するパーティクルのサイズを変化させる
もう一つ面白い機能が、時間軸にそって生成の法則性を決める機能です。
例えば下のGifアニメでは、大きさの異なるパーティクルを交互に出現させています。
この手法のキーとなるのが、Duration(持続)とCurveと名前のつくパラメータです。
Durationは1サイクルの長さを決めるパラメータです。Curveを使用する場合、Durationが横軸となります。縦軸は大きさです。
つまり、下の例では1秒毎にサイズの大きなパーティクルを生成するようにカーブを設定しています。そうすると、上のGifアニメのように、1秒毎に大きさの異なるパーティクルが生成される訳です。
ちなみに生成間隔の制御はRateではなくBurstsで制御。
制御されたランダム
Curveだと大きさは時間軸に依存するだけになります。ので、その範囲でランダム値を与えたい場合はRandom Between Two Curveを使用します。
上手く使うと、トップのGifアニメのような、一定間隔で吹き出す噴水的な奴も作れたりします。