Edited at

Unityのパーティクルでエフェクトを演出

More than 1 year has passed since last update.


同じ内容を解説した勉強会の動画


概要

画面の演出を作る際に欠かすことのできないパーティクルの仕組みを記法操作とアセットを通じて学ぶ。


パーティクルとは

Particle(粒子)をEmitter(放射体)からばらまく事でさまざまなエフェクトを作る。粒子には任意のテクスチャやさまざまな効果を設定して強力な表現力を持つ。

UnityにはShurikenというパーティクルシステムが搭載されていて、改良が進んでいる。現行世代では1つのパーティクルコンポーネントでさまざまなコンポーネントを制御できる。


使い方


デフォルトのパーティクル

ひとまずはシーンにパーティクルを配置してみよう。

GameObject > Create Other > Particle Systemとする。ヒエラルキーのCreateからでも同様に作成が可能。もしくは既存のGameObjectにAdd Componentし、Effect > Particle Systemとしても良い。

シーンに配置されたパーティクルは早速デフォルトの粒子をばら撒き始める。シーン上では選択中のオブジェクトがプレビューとして実際の動作のイメージを確認できる。


パーティクルのカスタマイズ

インスペクタからはパーティクルのさまざまな設定を変更できる。結果はすぐにプレビューできるので見ながら調整する。主要な設定項目と効果は下記の通り。

コンポーネント
項目
内容

Particle System
Duration
粒子を放出する長さ。指定した秒数が経過すると停止。

Looping
処理をループさせる

Start Lifetime
放出された粒子が消えるまでの時間

Start Speed
粒子の初速

Start Size
粒子のサイズ

Start Color
粒子の色。グラデーションなども可能。

Gravity Multiplier
重力加速度。

Inherit Velocity
エミッタの動きの連動して加算される速度

Simulation Space
粒子の動きをワールド基準にするかローカル基準にするか

Play On Awake
自動的に放出を開始する

Max Particle
粒子の最大数

Emission
Rate
単位時間あたりの放出量

Time or Distance
粒子の放出を放出源の移動量に反応させるかどうか

Shape
Shape
粒子の放出の形状、円錐、球、半球など

Color over Lifetime
Color
粒子が放出された後に色を変化させる。透明度変更も可能。

Size over Lifetime
Size
粒子が放出された後にサイズを変化させる。

Renderer
Render Mode
粒子の描画方法を選択する。

Meterial
粒子に表示するマテリアル、テクスチャ


パーティクルエディタ

インスペクタだけでは設定できない詳細な設定は専用のエディタを開く。専用エディタではテクスチャの変更やグラーデーションやスピードのカーブ編集などの重要な設定が可能。


グラデーション、カーブの設定

パーティクルエディタで三角が表示されている部分はダブルクリックで詳細編集が出来ます。

定数を設定、カーブで設定、2つの定数間のランダム、2つのカーブ間のランダムなどの選択が可能。

グラーデーションはグラフィックソフトの要領で設定する。

2つのカーブの間からランダムに数値をピックする設定。強力な表現が可能。


スクリプトから制御

そのままだと出しっぱなしのパーティクルになってしまうのでPlay On Awakeを外し、スクリプトから開始させることで任意のタイミングでエフェクトを再生できる。

using UnityEngine;

using System.Collections;

public class Click : MonoBehaviour {

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
if (Input.GetButton("Jump")) {
particleSystem.Play();
}
}
}


アセットを使ってみる

正直、どうしていいかわからないのでまずはアセットを使ってみることにしよう。

つぎの2つのアセットはUnity社が作成していてオーソドックスな構成。


Simple Particle Pack



  • 爆発

  • 火花


Water FX Pack




  • 蒸気

  • 吹き出す蒸気



殺風景なシーンもあっという間にリッチに。

Simple Particleの場合はSimpleParticlePack > Resourcesの下にプレハブがある。Water FXの場合はWater FX Pack > Prefabsの下にプレハブがある。どちらもシーンに配置して利用可能。さらに個別のパーティクルの設定内容を見ることもでき、変更も可能!


炎を作ってみる

新しいシーンを作り、Simple TorchとデフォルトのParticleを並べて配置、設定内容を調整して炎のパーティクルを自作してみる。

設定する項目はおおむね下記のとおり。


  • Durationを1

  • Start Lifetimeを1

  • Start Speedを10

  • Start Sizeを Random Between Two Constantにして0.5と1.5

  • EmissionのRateを40

  • ShapeはConeのまま

  • Shapeのangleを0 radiusを0.5 Ramdom directionにチェック

ここまでの途中経過。


  • Color over lifetime を設定。



色を設定することで劇的に改善


  • Size over lifetime をCurveに設定。パーティクルエディタが必須。3から1へのカーブ

かなり近づいてきた。


  • Rendererを設定。これもパーティクルエディタが必須。

  • Render modeを Stretched Billboard

  • Speed Scaleを0.25

  • Length Scaleを0

できた!


滝を作ってみる

Waterfallとデフォルトのパーティクルを配置。waterfallは色々とついているが、FX_Waterfall_BigFoam以外は無効にする。

WaterfallはレガシーなParticleを使っており中身がやや異なるので感性を高めて真似ていく。

色々といじってみた結果。