概要
爆発の煙、剣の軌跡、魔法の詠唱、アイテムの輝きなど、ゲームの世界を生き生きと、そして華やかに見せるために不可欠なのがビジュアルエフェクト (VFX) です。Unityでは、これらのVFXを作成するための強力なツールとして、パーティクルシステム (Particle System) が標準で搭載されています。このシステムは、その多機能さから「Shuriken」という愛称で呼ばれています。
パーティクルシステムは、無数の小さな2D画像(パーティクル)を生成し、それらの動き、色、サイズ、寿命などを時間と共に変化させることで、非常に多彩な表現を可能にします。一つ一つの設定項目は多いですが、基本的なモジュールの役割を理解すれば、様々なエフェクトを組み合わせて作れるようになります。
この記事では、Unityのパーティクルシステムの基本的な構造と、主要なモジュールの使い方について解説します。
パーティクルシステムの作成と基本構造
パーティクルシステムを作成するには、メニューからGameObject > Effects > Particle Systemを選択します。すると、シーンに新しいGameObjectが作成され、Particle Systemコンポーネントがアタッチされます。
Particle SystemコンポーネントのInspectorは、多数のモジュールで構成されています。各モジュールは、パーティクルの特定の側面(例: 生成、動き、色)を制御するプロパティの集まりです。モジュールの左側にあるチェックボックスをオンにすることで、その機能が有効になります。
メインモジュール (Main Module)
これは常に有効な基本モジュールで、パーティクルの最も重要なプロパティを設定します。
- Duration: パーティクルシステム全体がエフェクトを再生する時間。
Loopingがオンの場合は無視されます。 - Looping: オンにすると、
Durationの時間が経過した後にエフェクトが繰り返されます。 - Start Lifetime: 各パーティクルが生成されてから消滅するまでの時間(秒)。値をランダムにする(例:
Random Between Two Constantsで1~2秒)と、より自然な見た目になります。 - Start Speed: パーティクルが生成された瞬間の初速。
- Start Size: パーティクルの初期サイズ。
- Start Color: パーティクルの初期色。
Random Between Two Colorsで複数の色を混ぜることもできます。 - Gravity Modifier: パーティクルに適用される重力の強さ。
0なら無重力、正の値なら下向き、負の値なら上向きに力が働きます。
主要なモジュールの紹介
メインモジュールに加えて、以下のモジュールを組み合わせることで、より複雑なエフェクトを作成できます。
Emission (放出)
パーティクルをどのくらいの頻度で生成するかを制御します。
- Rate over Time: 1秒あたりに生成するパーティクルの数。一定の煙や雨などに使います。
- Bursts (バースト): 特定の時間に、一度にまとまった数のパーティクルを放出します。爆発や攻撃のヒットエフェクトなどに使います。
Shape (形状)
パーティクルがどの範囲、どの形状から放出されるかを定義します。
- Shape:
Sphere(球)、Cone(円錐)、Box(箱)、Edge(線)など、様々な形状から選択できます。例えば、焚き火ならConeを逆さまに、銃口の火花なら細いConeを使う、といった具合です。
Velocity over Lifetime (生涯にわたる速度)
パーティクルの速度を、その寿命(生まれてから消えるまで)に応じて変化させます。例えば、渦を巻くような動き(Orbital)や、特定の点に引き寄せられるような動きをさせることができます。
Color over Lifetime (生涯にわたる色)
パーティクルの色を、その寿命に応じて変化させます。Gradient Editor(グラデーションエディタ)を使い、例えば「生成時は白く輝き、徐々に赤くなり、最後に黒くなって消える」といった、炎のような色の変化を表現できます。
Size over Lifetime (生涯にわたるサイズ)
パーティクルのサイズを、その寿命に応じて変化させます。Curve Editor(カーブエディタ)を使い、「最初は小さく、徐々に大きくなり、最後に急に小さくなって消える」といった、煙のような表現が可能です。
Renderer (レンダラー)
各パーティクルをどのように描画するかを設定します。
- Material: パーティクルに使用するマテリアルを指定します。通常、
Particles/Standard Unlitなどの半透明描画に対応したシェーダーを持つマテリアルを使用します。 - Render Mode:
Billboard(常にカメラの方を向く2D板ポリゴン)が最も一般的です。Stretched Billboardにすると、移動方向に引き伸ばされて、火の粉や雨のような表現に適しています。
VFX Graphとの違い
Unityには、より新しく、より高性能なVFXツールとしてVFX Graph (Visual Effect Graph) も存在し ます。VFX Graphは、GPUの能力を最大限に活用し、数百万ものパーティクルをリアルタイムでシミュレートできます。ノードベースのグラフでエフェクトを構築するため、非常に複雑でインタラクティブな表現が可能です。
- パーティクルシステム (Shuriken): CPUベース。比較的軽量で、数千個程度までのパーティクルを扱うのに適しています。設定がシンプルで、初心者でも扱いやすいです。モバイルゲームや、そこまで派手ではないエフェクトに広く使われます。
- VFX Graph: GPUベース。非常に大量のパーティクルを扱え、ハイエンドなPC/コンソールゲームの派手なエフェクトに適しています。学習コストはShurikenより高いです。
まとめ
パーティクルシステムは、モジュールの組み合わせによって無限の可能性を秘めたツールです。
- パーティクルシステムは、多数のモジュールの集合体。
- メインモジュールで、パーティクルの寿命、速度、サイズ、色といった基本を設定する。
Emissionで放出量、Shapeで放出形状を定義する。Color over LifetimeやSize over Lifetimeで、時間経過による変化を表現する。Rendererモジュールで、パーティクルの見た目(マテリアル)を設定する。
まずは既存のエフェクトを真似てみたり、各モジュールのプロパティを色々といじってみたりすることから始めましょう。試行錯誤を繰り返すうちに、それぞれのパラメータがどのように影響し合うかが分かり、思い通りのエフェクトを作り出せるようになります。