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

  • 76
    いいね
  • 0
    コメント

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

概要

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

パーティクルとは

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を使っており中身がやや異なるので感性を高めて真似ていく。

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