はじめに
こんにちは、ソーシャルゲーム事業部のUnityエンジニアの佐藤です。
今年はハースストーンとオーバーウォッチに費やした1年でした。
ブリザードさんのゲームは面白いですね〜。
諸事情によりパーティクルの話を先にさせていただきたいと思います!
この記事はカヤックUnityアドベントカレンダー2016の14日目の記事となります。
今回はUnityのパーティクル(Particle System)についての記事です。
「パーティクルを初めて触るなら、この辺のパラメーターを調整するといい感じになるよ〜」 というポイントをお伝えしたいと思います。
Particle Systemとは
UnityではParticle Systemという機能があります。
簡単に説明すると、「パラメーターを設定して、炎や粒子といったエフェクトを作る」機能です。
今回は、Particle Systemのパラメーターを幾つか紹介していきたいと思います。
作って触ってみよう!
実際に触りながら作ってみましょう。
Hierarcyビューからパーティクルのインスタンスを作れます。
Duration
パーティクルを発生させる時間(秒)です。
この時間を経過すると、パーティクルの生成がストップします。
Looping
Durationで指定した時間を過ぎた場合にループするかを指定します。
Prewarm
パーティクルの再生を開始した時に、事前にパーティクルを配置しておくか を設定するパラメーターです。
Prewarm なし
再生を開始すると、徐々にパーティクルが広がります。
Prewarm あり
再生を開始すると、パーティクルが事前に配置されています。
Start Life Time
パーティクルの寿命(秒)です。
Start Life Time : 0.1秒
Start Life Time : 1秒
Start Life Timeが短いほうが消えるのが早いですね!
逆に長い方は遠くまで粒子が届いています。
Start Speed
パーティクルのスピードです。
単位はm/sec。
Simulation Space
パーティクルを発生させた際に、発生源を原点として動くかを設定できます。
Simulation Space : Local
Partice Systemを動かすと、既に放出されているパーティクルも追随します。
Simuration Space : World
Partice Systemを動かしても、放出されているパーティクルには影響ありません。
放出された時の開始位置が原点となります。
Play On Awake
有効にすると、Awakeが呼ばれた時(シーンに配置された時)に再生を開始します。
無効にすると、スクリプトなどで再生を要求します。
Max Partices
このPartice Systemの最大パーティクル数です。
同時に表示できるパーティクルの数を指します。
Emission
この項目ではパーティクルの発生間隔を調整します。
Rate
- Timeの場合 : 1秒間あたりのパーティクル発生数
- Distanceの場合 : 1m移動する毎に発生するパーティクル発生数 を設定します。
Rate : Distance
移動する毎にパーティクルが発生するようになっています。
Burst
Timeを指定した場合のみ、Burstオプションを設定することができます。
指定した秒数毎にパーティクルを放出します。
1秒ごとに30個パーティクルを発生するバーストを3回繰り返す、Durationが5秒のパーティクル
パーティクルの発生に緩急を指定したい場合などにぴったしです。
Shape
パーティクルの放出方向を指定できます。
Cone型
指定方向にパーティクルが広がります。
炎とかに使えそうですね。
Sphere型(球)
球場にパーティクルが広がります。
爆発とか光源とかに良さそうですね。
Box型
指定した方向へパーティクルが進みます。
煙みたいに見える!!
Render
パーティクルの形やマテリアルを設定することができます。
Particle Systemで作る?アニメーションで作る?コードで書く?
演出やエフェクトを作る際に、Partice Systemを使うか、アニメーションで作るか、コードを書くかということを考える時があるかもしれません。
たくさんモノを放出して、ランダム性を許容する 時はParticle Systemを使うのが良いかなと思います。
ただし、ドローコールをしっかり管理しないと動作が重くなったりするので、気をつけましょう。
おわりに
明日はアファトのAnimationの話です。
Unity5.5でアニメーションのエディターが強化されたので、Animationで動きを作るケースが増えるかも?
これからAnimationをやってみようかと思う人は、ぜひ御覧ください!!