【Unity】パーティクル徹底解説!基本的なモジュールの使用方法から応用例まで
今回はUnityのパーティクルシステムの使用方法をご紹介します。
本記事でご紹介する内容は以下の通りです。
- パーティクルの作成方法
- パーティクルの基本的な使い方
- パーティクルの応用例
- スタンダードアセットのパーティクル使用方法
以上の内容をご紹介します。
パーティクルの作成
まずはじめにパーティクルの作成方法をご紹介します。
以下赤枠のGameObject→Effects→ParticleSystemを選択してください。
問題なく作成されれば以下のような状態になります。
以上でパーティクルの作成は完了です。
パーティクルの基本的な使い方
パーティクルシステムコンポーネントには多くのプロパティが存在します。
これらはモジュールと呼ばれるセクションごとに別れており、左のチェックボックスにチェックを入れることでそのセクションのプロパティを有効にすることができます。
ここでは代表的なモジュールである「ParticleSystemモジュール」と「Emissionモジュール」の2つの使い方についてご紹介します。
ParticleSystemモジュール
まずはじめに基本設定であるParticleSystemモジュールの使用方法をご紹介します。
代表的なプロパティの使い方は以下の表をご覧ください。(よく使用するプロパティをご紹介します)
プロパティ | 処理 |
Duration | システムが動作する長さ |
Looping | 有効にすると、システムは Duration の時間の終了時に再び始まり、サイクルを繰り返し続ける |
Prewarm | 有効にすると、システムが既にサイクルを完全に完了していても初期化される( Looping 有効時のみ動作します) |
Start Delay | 有効化されてシステムがパーティクルを放出するまでの待機時間(秒単位) |
Start Lifetime | パーティクルの初期の生存時間 |
Start Speed | 特定の方向へのパーティクルそれぞれの初速 |
Start Size | パーティクルそれぞれの初期の大きさ |
Start Rotation | パーティクルそれぞれの初期の角度 |
Start Color | パーティクルそれぞれの初期の色 |
Gravity Modifier | 物理マネージャーで設定されている重力の大きさ。値が0の場合は無重力 |
Simulation Space | パーティクルを親オブジェクトのローカル座標で動かすか、ワールド座標で動かすか |
Simulation Speed | パーティクルのシミュレーション速度 |
Play on Awake | オブジェクトが生成されたときにシステムを自動で動かすかどうか |
Max Particle | そのシステムの中で一度に存在できるパーティクルの最大値。最大値に達した段階で削除される |
以下でよく使用するプロパティの値を変更したときの動きの違いを紹介します。
Duration
以下のDuration値について、左側は「2.00」、右側は「4.00」です。(Loopingを外して実行しています)
以上のようにDuration値の分だけパーティクルが発生し続けます。
Loopingを外さずに実行すると、終了した段階でもう一度次のパーティクルが発生するため、永遠にパーティクルが出現し続けます。
Start Delay
以下のStart Delay値について、左側は「0」、右側は「2」です。
以上のようにStart Delay値の分だけパーティクルの発生が遅れます。
Start Lifetime
以下のStart Lifetime値について、左側は「5」、右側は「0.5」です。
以上のようにStart Lifetime値だけ時間が経過するとパーティクルが消滅します。
Start Speed
以下のStart Speed値について、左側は「3」、右側は「10」です。
以上のようにStart Speed値を大きくすると初速が速くなります。
Start Size・Start Color
以下のStart Size値について、左側は「1」、右側は「3」です。
また、右側のStart ColorをRGB値がそれぞれ「0」の黒色に設定してあります。
以上のようにStart Size値を大きくするとパーティクルの一つ一つが大きくなります。
また、色を変えることでパーティクルの色を変更することができます。
Gravity Modifier
以下のGravity Modifier値について、左側は「0」、右側は「1」です。
以上のようにGravity Modifier値を大きくすることで重力を発生させることができます。
Emissionモジュール
次にEmissionモジュールについてご紹介します。
プロパティの使い方は以下の表をご覧ください。
プロパティ | 処理 |
Rate Over Time | 1秒ごとのパーティクルの出現数 |
Rate Over Distance | 距離に応じたパーティクルの出現数 |
Bursts | 指定した時間に通常とは異なった量のパーティクルを放射させる( Rate が Time に設定されている時のみ利用可能) |
Rate over Time
以下のRate over Time値について、左側は「10」、右側は「100」です。
以上のようにRate over Time値を大きくすると1秒あたりのパーティクル出現数が増加します。
(対してRate over Distanceは距離に応じてパーティクルの出現数が変化します)
Bursts
Burstsは以下のように値を設定します。
- Time:この時間後に発生
- Count:パーティクルの発生数
- Cycle:サイクルの回数
- Interval:インターバルの時間
この数値を以下の右側に設定してあります。
以上のようにBurstsを設定することで時間ごとに発生するパーティクルを設定することができます。
基本モジュールを使用した応用例
今までご紹介してきたパーティクルシステムの機能を応用することで、以下のような実際のものを作成することが可能になります。
噴水
ここまでの基本機能を使用して噴水を作成してみました。
雑な作りではありますが、ここまでの機能を使用すればとても簡単に作成することができますのでぜひチャレンジしてみてください。
Unityで池を作成する方法は以下の記事をご参考ください。
花火
ここまでの基本機能にさらに応用を加えると花火を作成することができます。
この花火はARに対応させたもので、パーティクルの応用例の典型です。
Unityのパーティクルを使用して花火を作成する方法は以下の記事をご参考ください。
スタンダードアセットのパーティクル
スタンダードアセットに含まれるパーティクルの使用方法をご紹介します。
スタンダードアセットの準備
まずスタンダードアセットを使用するためにインポートしましょう。
以下のようにアセットストアで「Standard Assets」と検索してUnity Technologies社が提供するスタンダードアセットをインポートしましょう。
するとプロジェクトビューにStandardAssetsが追加されます。
以下赤枠のStandardAssets→ParticleSystem→Prefabsの中に様々なプレハブが存在するので実際にいくつか見てみましょう。
Afterburner
一つ目はAfterburnerです。
一方向に伸びた炎を表現できるパーティクルです。
飛行機などのジェットエンジンなどにつけるとよりリアルなエンジンを作成できます。
実際に飛行機に取り付けて(位置を調節するだけ)リアル感を出してみました。
このパーティクルを飛行機につけるだけでとても速そうな飛行機になりましたね。
Explosion
二つ目はExplosionです。
爆発を表現できるパーティクルです。
飛行機などが撃墜したときなどに同時に発生させるとリアルなシーンを再現できます。
今回はヒット判定と同時に爆発させるという処理は実装しませんが、後日ヒット判定に関する記事を書きますのでその際に使用して見たいと思います。
Smoke
三つ目はSmokeです。
煙を表現できるパーティクルです。
煙突から出る煙を簡単に再現することができます。
煙が黒いのでもう少しグレーにした方がより煙突の煙らしくなるかもしれません。先ほど基本モジュールの使い方で色の設定について説明したように色を変更すれば同じように色を変更することができます。
まとめ
いかがでしたでしょうか。
パーティクルを使用することで様々な応用ができることがご理解いただけたでしょうか。
パーティクルの基本部分を理解した上でスタンダードアセットなどの既存のパーティクルを自分好みのエフェクトに変えることができます。
自分のアイデアをゼロから形にするのではなく、既存のアセットを使用することで圧倒的に時間効率をあげることができます。
積極的に既存のアセットを使用して、自分なりのオリジナリティを表現していきましょう。
この記事はいかがでしたか?
もし「参考になった」「面白かった」という場合は、応援シェアお願いします!