皆さんは、Unityのパーティクルシステムをご存知でしょうか?

パーティクルシステムは、炎や煙といった動きのあるものを表現するために備わっているUnityの基本機能です。

使いこなすことができれば、より表現の幅を広げることができる便利なツールですよ。

本記事では、パーティクルシステムの基本的な使用方法について紹介します。

かなり詳細に解説しておりますので、「パーティクルシステムを使ってみたい!」という方は、ぜひこの記事を参考にしてみてくださいね。

|Unityとは

出典:https://unity.com/ja

Unityは、アメリカのUnity Technologiesが提供するゲームエンジンで、2D・3Dを問わずゲームが開発できるといった特徴があり、世界最大級のシェアを誇ります。

Unityの魅力は、PCやウェブブラウザ、モバイルデバイス、VR/ARなどマルチプラットフォームに対応していること、また、基本的な制作にプログラミング技術を必要とせず初心者でも扱いやすいことです。

Unityの活用事例として、『ポケモンGO』のような人気スマホゲームのほか、PS4/5、Xbox Series X|S/Xbox One、Nintendo SwitchおよびPCと、幅広いプラットフォームで配信されスマッシュヒットとなった『Cult of the Lamb』などが挙げられます。

|パーティクルシステムとは

パーティクルシステムとは、大量の小さな画像やメッシュ(3D)をシミュレートおよびレンダリングすることで視覚効果を生み出すことのできる、Unityの基本機能です。

メッシュやスプライト(2D)は、家や車といった固体のオブジェクトを作成するのに適しています。

一方で、パーティクルシステムを用いれば、一つの3Dオブジェクトでは表現が困難である液体や炎、煙、雲といった動的なオブジェクトを表現することができ、非常に便利です。

|パーティクルの基本的な使い方

Unityおよびパーティクルシステムについて簡単に紹介したところで、ここからは本題である使い方を説明します。

具体的には以下について紹介します。

  • パーティクルシステムの追加方法
  • パーティクルシステムの詳細設定

パーティクルシステムを追加する

画面上部のメニューバーから「GameObject」をクリックあるいはHierarchy Window内で右クリックし、「Effects」→「Particle System」を選択します。

そうすると、Scene Viewに白いオーブのようなアニメーションが表示され、Hierarchy WindowにParticle Systemが追加されました。

これがパーティクルと言われるもので、以上でパーティクルの追加は完了です。

プレビューパネルについて

Hierarchy WindowからParticle Systemを選択すると、Scene Viewの右下に「Particles」というタイトルの小さいウィンドウが表示されます。これが「プレビューパネル」です。

プレビューパネルでは、表示されているパーティクルのアニメーションに関する情報確認および再生・停止といった操作が可能です。

エフェクトの表示時間が短い場合は、Playback Speedに数値を入力し再生速度を遅くするといったような使い方ができます。

パーティクルのTransform

パーティクルは3Dオブジェクトと同様に、移動や回転、拡大や縮小を行うことができます。

デフォルトの状態では、RotationのX値が-90になっておりパーティクルが上向きに放出されていますが、この値を90に変更すると下向きに、0にすると横向きに放出されるようになります。

これらの効果を応用すると、空から降ってくるものや横向きに流れる様子を表現することが可能です。

パーティクルをInspectorで設定

ここからは、Inspector Windowでパーティクルの情報をより細かく設定する方法について説明していきます。

Inspector Windowの各項目にカーソルを合わせると簡易的な説明文が表示されますが、表記が英語でわかりにくいと思うので、ぜひ以下を参考にしてくださいね。

Duration

パーティクルが生成される時間を秒単位で指定することができます。

次で説明するLoopingがオフになっていると、設定したDuraion時間が経過した後に自動的にパーティクルの生成が終了します。

Duraionで設定した時間は、あくまでパーティクルの生成が終了するまでの時間であり、アニメーションが再生されている時間ではないので、注意が必要です。

Looping

Duraionで指定した時間を経過後、パーティクルの生成を終了するのか、継続して生成するのかを指定できます。

チェックをつけるとLoopingがオンになり、パーティクルが永久的に放出されます。このとき、Duraionに設定した時間を1サイクルとしてループしています。

チェックを外すとLoopingはオフとなり、Duraionで入力した時間が経過した後に自動で生成が停止します。

Prewarm

Prewarmをオンにすると、パーティクルがあらかじめ発生している状態からアニメーションが開始します。

PrewarmはLoopingがオンのときのみ選択できます。

出続けている煙や降っている雪など、出始めを見られたくないものを表現する際に便利な機能です。

Start Delay

パーティクルが生成されるまでの遅延時間を、秒単位で指定することができます。

これはPrewarmをオンにしていると設定できないので注意してください。

右の▼を押すと、「Constant(定数)」「Random Between Two Constants(2つの値の間でランダム)」を選択できます。前者を選択すると設定した値で遅延が起こり、後者を選択すると設定した2つの値の間でランダムに遅延が起こります。

Start Lifetime

一つ一つのパーティクルが初期発生してから消滅するまでの時間を秒単位で設定できます。

右の▼より「Constant」「Curve(曲線で設定)」「Random Between Two Constants」「Random Between Two Curves(2種の曲線内でランダム)」を選択できます。

CurveあるいはRandom Between Two Curvesを選択した場合については、以下でより詳しくご紹介します。

また、Infinityと入力するとパーティクルを永久に生存させることができます。

Start Speed

パーティクルが任意の方向に放出されるときの初速を設定することができます。

この数値の単位は、Unity上の1単位長を基準として単位長/秒であり、値が大きいほど速く、小さいほどゆっくり放出されます。

この項目も、右の▼より「Constant」「Curve」「Random Between Two Constants」「Random Between Two Curves」を選択できます。

Start Size

パーティクルのサイズを指定できます。

3D Start Sizeにチェックを入れると、(X, Y, Z)の値をそれぞれ設定することができます。

この項目も、右の▼より「Constant」「Curve」「Random Between Two Constants」「Random Between Two Curves」を選択できます。

Start Rotation

パーティクルが生成されるときの角度を指定できます。

3D Start Rotationにチェックを入れると、(X, Y, Z)の値をそれぞれ設定することができます。

この項目も、右の▼から「Constant」「Curve」「Random Between Two Constants」「Random Between Two Curves」を選択できます。

Start Color

パーティクル生成時の色を設定することができます。

初期設定は白になっていますが、長方形部分をクリックして表示されるカラーピッカーから任意の色に変更することができます。

右の▼より、「Color(単色)」「Gradient(グラデーション)」「Random Between Two Colors(2色からランダム)」「Random Between Two Gradients(2つのグラデーションからランダム)」「Random Color(グラデーションからランダム)」が選択可能です。

Gravity Modifier

パーティクルが受ける重力を設定できます。

デフォルトの0は無重力状態で、プラスのときは下向き、マイナスのときは上向きに重力が働き、絶対値が大きいほどかかる重力は大きくなります。

 右の▼から「Constant」「Curve」「Random Between Two Constants」「Random Between Two Curves」を選択できます。

Max Particles

表示するパーティクルの最大数を指定します。

ここで入力した数値と同数のパーティクルがScene View内に表示されているとき、それ以上パーティクルは放出されなくなります。

パーティクルが消滅して数が減ると、新たにパーティクルが生成されます。

Curveの設定

CurveあるいはRandom Between Two Curvesを選択すると、Inspector Window下のParticle System Curvesに赤い直線が表示されます。

左端と右端がそれぞれ始点と終点を表しており、両端や端点をクリックした際に表示される白い点をドラッグ&ドロップすることで曲線の形や長さを変更できます。

また、曲線上で右クリックするとポイントを増やしてより詳細に曲線を調整できます。

下部にはデフォルトの曲線も用意されているので、上記のように自分で設定するのが難しいという方も簡単に設定することが可能です。

|まとめ

今回は、Unityのパーティクルシステムについて、基本的な使用方法をご紹介しました。

具体的な設定手順までイメージしていただけたでしょうか?

パーティクルの基本機能を応用することで、光や炎のような単調な動きのオブジェクトだけでなく、噴水や花火といったものを表現することも可能になりますよ。

パーティクルシステムを使うと表現の幅が格段に広がるので、後はぜひご自分の手で色々と触ってみてください。

慣れてきたという方は、応用方法について紹介しているサイトもあるので、そちらを参考にしてみるのもいいかもしれませんね。

パーティクルシステムをうまく使いこなして、Unityのスキルアップを目指しましょう!