【Unity】Shuriken Particle Part1 概要とメインモジュール
Unity の「Shuriken」パーティクルについてまとめてみました。
確認バージョンは 2017.3.0f3
- パーティクルとは?
- とにかく使ってみる
- メインモジュール
- Duration
- Looping
- Rewarm
- Start Delay
- Start Lifetime
- Start Speed
- 3D Start Size
- Start Size
- 3D Start Rotation
- Start Rotation
- Randomize Rotation
- Start Color
- Gravity Modifier
- Simulation Space
- Simulation Speed
- Delta Time
- Scaling Mode
- Play On Awake
- Emitter Velocity
- Max Particles
- Auto Random Speed
- Stop Action
パーティクルとは?
大量の粒子(Particle)に様々な動きを設定することによって雨や雪等の自然現象、魔法のエフェクトや爆発演出などを表現します。また、粒子の発生源とパラメータを設定する対象を「エミッター(Emitter:放出器)」と呼びます。
とにかく使ってみる
実際にパーティクルを出してみましょう!Unityを起動して上部メニューの GameObject > Effects > Particle System を選択すると Hierarchyビュー に「Particle System」のオブジェクトが生成されます。
メインモジュール
ここからはエミッターに設定する各モジュールを説明します。 Inspectorビューから設定します。数が多いので覚えるのが大変そうですが全て設定する必要はなく、目的に応じたモジュールだけ設定すれば良いです。 まずは基本設定となるメインモジュールの説明をします。
Duration
パーティクルを発生させる時間(秒)を設定します。
Looping
Durationで設定した時間経過後にパーティクルの発生を停止するか継続するかを設定します。
Rewarm
チェックを入れると1ループが完了したような状態から開始します。 有効にするにはLoopingにチェックを入れる必要があります。
Start Delay
パーティクルの発生開始の待ち時間(秒)を設定します。
Start Lifetime
パーティクルの生存時間(秒)を設定します。
Start Speed
パーティクルの初速を設定します。
3D Start Size
XYZ軸ごとにスケール値を設定したい場合にチェックを入れます。
Start Size
発生時のサイズを設定します。3D Start Size にチェックを入れた場合はXYZ軸ごとにサイズを設定出来ます。
3D Start Rotation
XYZ軸ごとに回転を設定したい場合にチェックを入れます。
Start Rotation
発生時の回転角度を設定します。3D Start Rotation にチェックを入れた場合はXYZ軸ごとに回転角を設定出来ます。
Randomize Rotation
Start Rotationで設定した角度と反対方向にパーティクルを回転させます。例えばStart Rotation を45°とした場合、-45°から開始になります。影響を受けるパーティクルの範囲は0.0〜1.0で設定出来ます。
Start Color
発生時のパーティクルの色を設定します。
Gravity Modifier
重力による影響を設定します。プラスだと下方向、マイナスだと上方向に重力が働きます。0だと無重力になります。
Simulation Space
パーティクルの実行空間を設定します。
パラメータ
|
説明 |
---|---|
Local | パーティクルは親オブジェクトと一緒に動きます。 |
World | パーティクルはワールド空間を基準に動きます。親オブジェクトの動きに影響されません。 |
Custom | 実行空間となるオブジェクトを指定することができます。あまり使わないと思います。。 |
下図はキューブを親オブジェクトとして左右に動かしたものになります。
Simulation Speed
パーティクルの実行速度を設定します。変更がなければ基本は1です。2倍速にしたい場合は2、半分の速度にしたい場合は0.5を設定します。
Delta Time
Time.timeScale による影響を受けるかどうかの設定をします。基本的には変更する必要はなく、ポーズメニュー中もパーティクルを動かしたい場合はUnscaledを設定します。
Scaling Mode
パーティクルのスケールの影響を設定します。
パラメータ
|
説明 |
---|---|
Hierarchy | 親オブジェクトのスケール値の影響を受けてパーティクルサイズと発生範囲が変わります。 |
Local | 親オブジェクトのスケール値の影響は受けずこのパーティクルが設定されているオブジェクトのスケール値のみ影響します。 |
Shape | パーティクル自体のスケールは変わらず、後述するShapeのスケールのみを変更させるパーティクルの発生範囲が変化します。 |
Play On Awake
チェックを入れるとパーティクルのオブジェクトが生成されると即パーティクルを放出します。スクリプト側で放出させるタイミングを制御したい場合はチェックを外します。
Emitter Velocity
後述の Inherit Velocity と Emission で使用するベクトル計算方法を選択します。RigidbodyかTransformの動きを元に速度を計算します。
Max Particles
画面内に一度に発生できるパーティクル数を設定します。この値を超えた場合、古いパーティクルから表示されなくなります。この値は大きな値を設定すると負荷が掛かるのでデザイナーさんはエンジニアと相談してここの上限値をしっかり決めておいた方が良いです(初期値も1000と大きいので・・)
Auto Random Speed
このチェックを入れると、再生するたびにパーティクルの動きが違う結果になります。チェックを外すと何度再生してもパーティクルの動きが同じ結果になります。
Stop Action
エミッターから放出されたパーティクルが全て消えた際にどういった処理をするかを設定します。また、この処理を有効にするには Looping のチェックを外す必要があります。
パラメータ
|
説明 |
---|---|
None | 何もしないです。 |
Disable | パーティクルが設定されているGameObjectを非アクティブにします。画面に表示されませんがシーン内に存在しています。 |
Destroy | パーティクルが設定されているGameObjectを削除します。Hierarchyビューにも残らないです。 |
Callback | OnParticleSystemStoppedを呼び出します。 |