読者です 読者をやめる 読者になる 読者になる

Unity不定期便

Unityエンジンを使って、いろいろ勉強したことをメモ代わりにまとめてます。

Unity4のパーティクルシステム(Particle)を1日で自在に操るコツ!【後編】

f:id:masatolan:20140103210105j:plain

前回の続きです!

今回は、前回ご紹介した必須「3要素」を駆使して、パーティクルを作成してみます。

これだけでも、かなり幅広い演出が作れるのが分かると思います。後半に、他のパラメータのいじり方も少し紹介しておきます。

 

花火のような破裂する演出を作る! 

f:id:masatolan:20140105150239j:plain

花火が打ち上がった時に「バーン!」と、大きく破裂する感じのパーティクルを作ってみます。

  

まず…初期状態だと、Shapeが「Cone」になっているかと思うので、球状に粒子を飛ばすために「Sphere」へ変更します。

f:id:masatolan:20140105150318j:plain

 

パラメータはこんな感じ。

f:id:masatolan:20140105150330j:plain

Radiusはお好みですが、小さい数値の方が破裂感がでます。

あと、「Emit from Shell」にチェックを入れておくと、Sphereの表面から一定に粒子が発生するので「まとまり感」が出てそれっぽくなります。

 

EmissionはRateを使わずに、Burstsを使います。

f:id:masatolan:20140105150336j:plain

前回ご紹介したように、Burstsは一気に粒子を放出するものなので、破裂感を出すには最適です。Particlesは200個の粒子を一気に放出させてますが、お好みで調整してみてください。

 

これだけで、かなり破裂する感じがシーンビューに表示されているはず。

f:id:masatolan:20140105150342j:plain

 

あとは、基本設定で粒子の性質を変えてみましょう。 

f:id:masatolan:20140105150352j:plain

今回、設定したのは以下のとおり。

 「Start Lifetime」で、3秒後に粒子が消えるように設定。

「Start Speed」で、デフォルトよりも少し遅めに設定。

「Start Size」で、粒子を0.5にして少し小さめに設定。

 「Start Color」で、ちょっと黄色っぽくして見た目を変化させた。

「Gravity Multiplier」で、少しだけ重力を付けて破裂後に落ちる感じを演出。

 

水道から水が流れるような演出を作る!

f:id:masatolan:20140105153513j:plain

1粒ずつの粒子を細かくして、大量に表示させると水っぽく見えます。

 

まず、ShapeをBoxにして、一定方向から粒子が放出されるようにします。

f:id:masatolan:20140105153916j:plain

 デフォルトのConeでもそれらしく見えますが、Boxの方が水道水っぽく見えます。

 

Emissionは、大量に粒子を表示させるため、1秒間あたり1000個の表示にしてます。

f:id:masatolan:20140105153923j:plain

 

ただし、このままだと、以下のように部分的にしか粒子が放出されないはず。

f:id:masatolan:20140105154026j:plain

 

これは、基本設定のMax Particlesの最大値設定が小さいために起こる現象です。この点を踏まえた基本設定は、以下のとおり。

f:id:masatolan:20140105153937j:plain

「Start Size」が0.2で、粒子を細かくして液体っぽく見せてます。

「Gravity Multiplier」も0.2くらいにして、重力をつけてます。

「Max Particles」は10000にして、最大表示数を大きくしてます。

 

煙を作ってみる! 

f:id:masatolan:20140105161005j:plain

もくもくと、舞い上がる煙をサクッと作ってみます。

 

今回、Shapeはデフォルトのまま使います。(変えてみてもOKですが…)

EmissionのRateは、少し多めの30に設定。

f:id:masatolan:20140105161026j:plain

 

基本設定は、以下のとおり。

f:id:masatolan:20140105161340j:plain

「Start Speed」を4にして、ほんのりゆっくりにしてます。

「Start Size」を5にして、少し粒子を大きくすることで煙を演出。

「Gravity Multiplier」を-0.05にして、ゆっくり上昇させてます。

あと、「Start Color」で透明度をつけると、さらにそれっぽくなります。 

 

雨を降らしてみる!

f:id:masatolan:20140105163612j:plain

ゲームでよく使うであろう…雨の演出を作ってみます。

 

まず、ゲームオブジェクトを90度回転させて、パーティクルが下方向へ落ちるようにします。

f:id:masatolan:20140105163626j:plain

重力を付けて、パーティクルを落としても良いのですが、基本的に雨は下方向にしかいかないのであらかじめ回転させました。

 

Shapeは、Boxを使ってます。

f:id:masatolan:20140105163633j:plain

他の形状でも可能ですが、一番これが簡単かと思います。

 

Emissionは、「雨」なので大量に降り注がせる必要があるため、1000個/秒に設定。

f:id:masatolan:20140105163645j:plain

 

で、こんな感じになると思います。

f:id:masatolan:20140105163651j:plain

 

基本設定は以下のとおり。

f:id:masatolan:20140105163658j:plain

「Start Speed」を10にして、少し速く落ちるようにしてます。

「Start Size」は0.1にして、粒子を細かくしてます。

「Max Particles」を忘れないように10000くらいに設定しておきます。

 

ちなみに、前編に出てきたRendererのModeを「Stretched Billboard」にすると、激しい雨を演出できます。

f:id:masatolan:20140105163703j:plain

これは、粒子を「ビヨ~ン」と伸ばす感じになるので、大雨を演出するには最適です。

  

 

円形に外側へ粒子を放出させる!

f:id:masatolan:20140105173728j:plain

よく魔法系の演出や、爆弾が爆発するような場面で、こういう外側へ広がっていく感じのパーティクルがあるかと思いますのでご紹介しておきます。

 

まず、Transformで90度回転させてます。

f:id:masatolan:20140105173851j:plain

下向きでも上向きでも良いのですが、横向きにならないようにだけしておきます。一応、外側へ広がっていく感じにしたいので…。

 

ShapeはConeですが、Angleを90にしてます。

f:id:masatolan:20140105173857j:plain

こうすると、ほとんどConeがペシャンコの状態になりますが、これで円形に広がっていく感じが出せます。

 

Emissionは、一気に放出したいのでBurstsを使ってます。

f:id:masatolan:20140105173907j:plain

 

今回、基本設定はまったくいじってません。

これだけで、とりあえずお手軽な演出が表現できるようになります。

 

まだまだある!便利なパラメータたち

前回から、まだ紹介していないパラメータがいくつかあるので、使用頻度の高いモノをピックアップしてご紹介しておきます。

 

<Lifetime系>

f:id:masatolan:20140105170850p:plain

SizeとColor以外にもいくつかありますが、使用頻度はこちらが高いかと思うのでサンプルとして挙げておきます。

Lifetimeは、簡単に言うと「徐々に◯◯をしていく…」という感じのパラメータです。

Sizeであれば、徐々に粒子を大きくしたり小さくしたり、Colorであれば、徐々に色を変えていくようなイメージです。(もちろん、急激な変化も可能です)

 

Color系のパラメータ設定には、以下のような別ウィンドウが開きます。

f:id:masatolan:20140105165748j:plain

左から右へ、時間が経過するというイメージです。

右端に、透明度を設定すれば、徐々に粒子が透明になっていきます。

 

また、カーブウィンドウも用意されていて、そのまんまカーブを描いた通りにパラメータが変化していきます。

f:id:masatolan:20140105165754j:plain

 

<Collision>

f:id:masatolan:20140105165801j:plain

粒子に当たり判定をつけるパラメータです。

「Planes」に、オブジェクトを指定すれば、そのオブジェクトにパーティクルが衝突した時に、変化を付けることができます。

 

<Sub Emitters>

f:id:masatolan:20140105165810j:plain

パーティクルに階層構造を持たせることが出来るパラメータです。

例えば、パーティクルが消えた時に、別のパーティクルを呼び出して表示させたりが可能になります。

タイミングとしては、パーティクルが「発生した時」「消滅した時」「衝突した時」に、別のパーティクルを呼び出す事が出来ます。

 

 

上記のようなパラメータは、パーティクルシステムに慣れてくると、必然的に使い始めることになるでしょう。

ちょっとしたかゆいところに手が届くパラメータばかりなので、このあたりを利用したパーティクルの作り方も、機会があれば記事にしてみたいと思います。

  

★前編の記事はこちら!

Unity4のパーティクルシステム(Particle)を1日で自在に操るコツ!【前編】 - Unity不定期便

 

Unity「パーティクルシステム」の解説が載っている書籍 
Unity4入門   最新開発環境による簡単3Dゲーム製作

Unity4入門 最新開発環境による簡単3Dゲーム製作

 

  

 

広告を非表示にする