【Unity】生成した瞬間は勢いがあるが、すぐにゆっくりになるパーティクル
生成した瞬間は勢いがあるが、すぐに速度が落ちてゆっくりになるパーティクルについてです。
作り方をど忘れしたので、ココにメモしておきます。
パーティクルの速度は生成時に決まる
パーティクルの移動速度は、パーティクル毎にEmit時にStartSpeedで指定されていた値が使用されます。
例えば下の設定の場合、パーティクルが生成時に15~30の速度が設定され、その速度は消えるまで固定です。
正確には、そこからVelocity Over LifetimeやLimitVelocityOverLifetimeで減加速が入ります。
あとNoise等で動きに変化が加えられたり、ColliderやGravity Modifilerで重力や物理っぽい挙動が加わったりしますが、速度で言えば大体Start Speedです。
速度をLimit Velocity Over Lifetimeで制限する
粒子…というか、質量が低い物は少ない力で吹っ飛ぶ割に空気抵抗等で即座に減速するという挙動が脳内でマッチします。
ので、速度が固定で動いてもらっては困ります。
すべきことは単純で、Limit Velocity Over Lifetimeを使用するだけです。
Speedが減速する速度の設定なので、StartSpeedがこの値以上設定されている場合は、この値になるまで減速されます。
Dampenは減速速度です。1の場合は一瞬で減速しますが、0の場合は一切減速しません。0.5あたりの場合は、ユックリ減速します。
カーブでパーティクルの速度を制限
Speedを0にしてDampenを0.5辺りにすることでも起動時から減速開始ししばらくすると停止は再現出来ますが、もう少し綺麗に動かしたい場合はカーブを使用します。
カーブで、Lifetime内での速度をカーブ指定出来ます。例えば下のカーブでは、
Lifetimeが1秒くらいと仮定した場合、
- 0.15秒くらいまで30で移動
- 0.2秒から減速開始
- 0.6秒に速度が0になる
- 1秒まで速度0
- 1秒で(Lifetime設定により)パーティクル消滅
という挙動になります。
なお一度減速すると加速はしないっぽいです。