攻撃がヒットしても「当たった感」がない。ジャンプしても着地しても、画面がどこか地味——足りないのは、多くの場合 エフェクト(VFX) です。爆発の煙、剣の軌跡、魔法の輝き。ゲームの「気持ちよさ」の相当部分を、この小さな粒たちが担っています。
Unityには標準で パーティクルシステム(Particle System)——愛称「Shuriken」——が搭載されています。無数の小さな2D画像(パーティクル)を生成し、動き・色・サイズを時間とともに変化させて多彩な表現を作るツールです。
この記事でわかること
- パーティクルシステムの構造——「パーティクルの一生」で覚えるモジュール
- メインモジュール・Emission・Shapeの役割
- 〜 over Lifetime系で時間変化を作る方法
- 実践レシピ——ヒットエフェクトを最短で作る
- VFX Graphとの使い分け
作成方法と考え方——パーティクルの一生
メニューの「GameObject > Effects > Particle System」で作成できます。Inspectorに大量のモジュール(設定グループ)が並んでいて最初は圧倒されますが、覚え方はシンプルです。 「パーティクル1粒の一生を、段階ごとに設定している」 と考えてください。

- 誕生: どこから(Shape)・どれだけ(Emission)生まれるか
- 動き: どの方向へ・どんな速さで飛ぶか(Main / Velocity over Lifetime)
- 変化: 生きている間に色やサイズがどう変わるか(Color / Size over Lifetime)
- 消滅: 寿命(Start Lifetime)が尽きて消える
メインモジュール
一番上の常時有効なモジュールで、1粒の基本プロフィールを決めます。
| プロパティ | 意味 | tips |
|---|---|---|
| Duration / Looping | エフェクト全体の再生時間/繰り返し | 炎や煙はLooping、爆発は1回きり |
| Start Lifetime | 1粒の寿命(秒) | Random Between Two Constantsでばらつかせると自然 |
| Start Speed | 生まれた瞬間の初速 | |
| Start Size / Color | 初期サイズ・色 | 色も2色間ランダムにできる |
| Gravity Modifier | 重力の影響 | 火の粉は0、破片は1、上昇する煙はマイナス |
tips 多くのプロパティは右端の▼から
Constant(固定値)以外にRandom Between Two Constants(範囲ランダム)やCurve(カーブ)を選べます。「全部の粒が同じ」だと人工的に見えるので、寿命・サイズ・速度は少しランダムにするのが定石です。
主要なモジュール
Emission(放出)——どれだけ生むか
- Rate over Time: 毎秒の生成数。炎・煙・雨のような継続系に。
- Bursts: 指定した瞬間にまとめて放出。爆発・ヒットエフェクトのような一瞬の弾け系に。
Shape(形状)——どこから生むか
Cone(円錐: 焚き火・噴射)、Sphere(球: 爆発・オーラ)、Box(箱: 雨・雪の降るエリア)、Edge(線)などから選びます。エフェクトの「輪郭」はほぼShapeで決まるため、迷ったらまずここをいじってみてください。

〜 over Lifetime系——生きている間の変化
「一生の間にどう変わるか」を設定するモジュール群です。エフェクトの表情はほぼここで作られます。
- Color over Lifetime: グラデーションで色変化を作ります。炎なら「白→オレンジ→赤→透明」。終端のアルファを0にして「ふわっと消える」 のが最重要テクニックです(デフォルトのパッと消えるのは不自然に見えます)。
- Size over Lifetime: カーブでサイズ変化を作ります。煙なら「小さく生まれて膨らみながら消える」。
- Velocity over Lifetime: 途中で速度を変えます。
Orbitalで渦巻きも作れます。

Renderer(描画)
- Material: 半透明描画に対応したマテリアル(
Particles/Standard Unlitなど。URPではUniversal Render Pipeline/Particles/Unlit)を指定します。 - Render Mode: 基本は
Billboard(常にカメラを向く板)。Stretched Billboardにすると進行方向へ伸び、火の粉・雨・スピード線に化けます。

実践レシピ: ヒットエフェクトを作る
剣戟アクションの斬撃ヒット、シューティングの着弾、パズルゲームのブロック消し——ジャンルを問わず一番使うのがこれです。「攻撃が当たった瞬間、火花がパッと散る」を最短手 順で作ります。

- Main: Loopingオフ・Duration 0.5・Start Lifetime 0.2〜0.4(ランダム)・Start Speed 3〜6・Start Size 0.05〜0.15・Gravity Modifier 0.5
- Emission: Rate over Timeを0にし、Burstsに Count 15 を1件追加(Time 0)
- Shape: Sphere・Radius 0.1(一点から全方向に弾ける)
- Color over Lifetime: 白→黄色→アルファ0
- Renderer:
Stretched Billboardにして火花らしく伸ばす
これをPrefab化し、ヒット位置に生成すれば完成です。Main末尾のStop ActionをDestroyにすると再生後に自動で消えます。数値はあくまで出発点なので、再生ボタンを押したままSceneビューで調整してください。
ポイントは2つです。 「弾け系はBursts+Sphere」 という組み合わせ(このレシピの骨格で、Countと色を変えるだけで回復エフェクトにもコイン取得にも化けます)と、 「終端アルファ0とランダム幅で自然にする」 こと。ゲームに組み込むときの生成・破棄は オブジェクトプール の実践節(Stop Action=Callbackで自動返却)とつなげると完成形になります。
VFX Graphとの違い
Unityにはもう1つ、GPUベースの VFX Graph があります。
| パーティクルシステム(Shuriken) | VFX Graph | |
|---|---|---|
| 処理 | CPU | GPU |
| 規模 | 数千個まで | 数十万〜数百万個 |
| 衝突検出 | ○(Collisionモジュール) | 限定的 |
| 学習コスト | 低い | 高め(ノードベース) |
| 対応 | 全パイプライン | URP/HDRP |
判断基準は1行です。 「数千個で足りるならShuriken、桁が足りなくなったらVFX Graph」。ゲームの通常のエフェクト(ヒット・煙・魔法・環境演出)はShurikenで十分です。
おまけ:先に知っておくと良いこと
- エフェクトはプールで使い回す: ヒットエフェクトを毎回
Instantiate/DestroyするとGCスパイクの原因になります。Stop ActionをCallbackにして オブジェクトプール へ返すのが実戦の定石です。 - 半透明の重なりに注意: パーティクルは半透明描画のため、大量に重なるとオーバードローでGPU負荷が跳ね上がります。モバイルでは粒を大きく少なくするのが基本です(詳細は モバイル最適化)。
- Collisionモジュ ール: パーティクルを地形や壁に当てて跳ねさせられます。薬莢や破片の表現に便利ですが、CPU負荷がかかるため数は控えめに。
- Sub Emitters: 「パーティクルが消えた場所から次のパーティクルを生む」機能です。花火(打ち上げ→爆発)のような多段エフェクトが作れます。
まとめ
- モジュールは 「パーティクルの一生」(誕生→動き→変化→消滅) で整理して覚える。
- 継続系はRate over Time、弾け系はBursts。輪郭はShapeで決まる。
- Color over Lifetimeの終端アルファ0(ふわっと消える)が見栄えの最重要ポイント。
- ランダム幅(寿命・サイズ・速度)を持たせると自然になる。
- 数千個で足りるならShuriken。足りなくなったら VFX Graph へ。
まずは今日のレシピのヒットエフェクトを1つ作ってゲームに入れてみてください。攻撃が当たった瞬間の「気持ちよさ」、あなたのゲームでは足りていますか?