パーティクルシステム
Particle System を Unity で使用する

パーティクルシステムとは何か?

パーティクル は、パーティクルシステムによって、大きな数でまとまって表示されたり動かされたりする小さくて、簡単な画像やメッシュです。各パーティクルは流体や非晶質実体の小さな部分を表し、すべてのパーティクルを一緒にして、全体の実体の印象が作成されます。雲を例にとると、各パーティクルは、それ自体で小さな雲に似た小さな煙のテクスチャです。これらの小さい雲をひとまとまりにして多量にシーンエリアに配置すると、全体的なエフェクトとして、大きなボリュームのある雲となります。

システムのダイナミクス

それぞれのパーティクルには所定の lifetime(寿命) が一般的には数秒ほど設定されていて、その間にさまざまな変化をしていきます。パーティクルは生成されたときまたはパーティクルシステムによって emitted(放出) されたとき lifetime のカウントを開始します。システムは球、半球、コーン、ボックスやその他任意のメッシュの領域内にあるランダムな位置にパーティクルを放出します。パーティクルは時間切れまで表示され、時間切れの時点でシステムから削除されます。システムの emission rate(放出頻度) は秒間にどれだけのパーティクルが放出されるかということを大まかなに表しています。とはいえ、実際の放出回数は少しだけランダムな差があります。emission rate を選ぶことと、平均的なパーティクルの lifetime は「安定」状態(つまり、放出とパーティクルの消滅が同時に起こるということです)にある時のパーティクルの数と、その状態に至るまでに要する時間を決定します。

パーティクルのダイナミクス

emission と lifetime の設定はシステム全体のビヘイビアに影響を与えますが、パーティクルの1つ1つも時間と共に変化します。パーティクルにはそれぞれ velocity ベクトルがあり、それは毎フレームのアップデートごとにパーティクルが動く方向と距離を決定します。velocity はシステム自体によって適用された forcesgravity か、Terrain の wind zone で風に吹かれたときに変更されます。それぞれのパーティクルの色、大きさ、回転もまたそのライフタイムを経て、または、現在の動きのスピードに比較して変化します。色はアルファ(透明度)コンポーネントを含んでいるため、パーティクルはそれぞれが単純に突然現れたり消えたりするのではなく、次第に表示されたり消えたりするように作成されます。

組み合わせて使用するパーティクルのダイナミクスは、多くの種類の非常にリアルな流体エフェクトをシミュレートすることができます。例えば、滝は薄い放出用の形状を使用して水のパーティクルを重力の元、単純に落下させ、そのまま加速させていけばシミュレートできます。火から生じる煙は上昇、拡散し、最終的には散っていくものですので、システムは上向きの force を煙のパーティクルに加え、サイズと透明度を lifetime にしたがって増やしていくべきでしょう。

パーティクルシステム
Particle System を Unity で使用する