-->

Unity インパクトパーティクル

Unity インパクトパーティクル

Unity インパクトパーティクル。
物と物がぶつかった時のようなエフェクト。

業務用に作ったインパクトパーティクルを少し修正したものを共有します。
シンプルですが割と汎用性が高いエフェクトだと思います。

インパクトパーティクル概要

中心から外側に広がるように、衝撃波と火花が散らばります。


自分は自作ゲーム内で、色味と飛沫具合を調整して爆発のエフェクトに使ったりしています。


UnityPackageとしてこちら にファイルをまとめてアップロードしました。
展開するとProject内の
Assets/Effects/U0062
内に以下のようなファイル群が追加されるはずです。

パーティクル設定の解説

今回のパーティクルは主に以下の4つのParticleSystemを利用しています。
 
ShineRound
 
: 透明度の低い白い衝撃波
 
ShineRing
 
: 黄色いリング状の衝撃波
 
SparkStretch
 
: 放射状に広がる火花
 
SparkRound
 
: 中心に停滞する丸い破片

ShineRound

ごく薄い白い衝撃波で、
Mainモジュール
のLifetimeは0.3秒です。
元々のColorの透明度が190な上に、更に
Color over Lifetimeモジュール
で、進行30%の段階で透明度を50%ダウンさせています。
あくまでShineRingの補佐のようなイメージで、主張は弱いです。


背景が黒いことを想定して白色にしてますが、白い背景の場合は白は避けて他の色で調整した方良いと思います。

ShineRing

Mainモジュール
のLifetimeは最も短く0.2秒です。
再生時間は短いですが画像自体がくっきりしているのと、透明度が後半までほぼ減少しないので強い印象になっています。
Color Over Lifetimeモジュール
は70%の段階で220にしています。

SparcStretch

Mainモジュール
の方で細かくランダム性を与えています。
具体的にはLifetimeは0.3秒から0.4秒、飛沫スピードは3から8、火花の大きさは0.08から0.1になっています。


Emissionモジュール
の方では、1回再生につき一度に12個パーティクルを生成させています。


実はこの火花のエフェクトは、使っている画像自体はSparkRoundと同じ正円です。
これを
Rendererモジュール
のLength Scaleを4にすることで楕円にしています。


作成した4つのParticleSystemの中で唯一、
Limit Verocity over Lifetimeモジュール
を使っています。
Speedが1を超えたパーティクルに対し(つまりこのパーティクルに対しては100%)、徐々にSpeed=1に向かって速度が減衰します。
Dampenに0.1を設定しているので減衰は緩やかです。

SparcRound

Mainモジュール
の方で少しランダム性を与えています。
具体的にはLifetimeは0.5秒から0.6秒、飛沫スピードは2から4です。飛沫スピードが遅いので動きはしますがほぼ中心に停滞します。


Emissionモジュール
の方では、1回再生につき8個パーティクルを生成させています。


Shapeモジュール
の方で、パーティクルの生成位置にやや揺らぎを持たせています。
SparcStretchはRadiusが0.1なのでほぼ中心一点から外に広がっていましたが、SparcRoundでは0.35に設定しています。
中心から円形に0.35の範囲内で、ランダムにパーティクルが生成されます。


作成した4つのParticleSystemの中で唯一、
Size over Lifetimeモジュール
を使っています。
Lifetimeが後半に近づくほど、パーティクルが小さくなっていきます。

0
0