ここではUnityのパーティクルシステム(Shuriken)の使い方について説明します。
※この記事で使用しているUnityのバージョン:Unity2019.1
パーティクルを出すオブジェクトの作り方
まず、はじめにパーティクルを出すためのゲームオブジェクトを作りましょう。
ヒエラルキーで右クリックして、「エフェクト」→「パーティクルシステム」を選択してください。そうするとシーンに「Particle System」というゲームオブジェクトが作られます(※このゲームオブジェクトを選択すると、パーティクルが再生されて動く様子を確認できます)。
これでパーティクルを出すためのゲームオブジェクトができました。
パーティクルシステムの設定項目について
それでは次にパーティクルシステムの設定項目を見ていきましょう。…といっても、パーティクルシステムは非常に設定項目が多いので、すべてを詳しく紹介すると記事がとんでもない長文になってしまいます。そこで以下の項目に絞って説明していきますね。
- パーティクルシステム全体の設定
- 放出(Emission)
- 形状(Shape)
- 生存期間の速度(Velocity Over Lifetime)
- 生存期間の色(Color Over Lifetime)
- 生存期間のサイズ(Size Over Lifetime)
- 生存期間の回転(Rotation Over Lifetime)
- 外力(External Forces)
- 衝突(Collision)
- レンダラー(Renderer)
なお、実際のパーティクルの作例と制作手順を見たい方は「パーティクルの具体的な作り方」ページをご覧ください。
パーティクルシステム全体の設定
まずはパーティクルシステム全体の設定についてです。継続時間やパーティクルの初期値など、重要な項目が並んでいます。
ここだけでも設定がたくさんありますので、よく使う設定項目についてだけ説明します。
設定項目 | 説明 |
---|---|
継続時間 | パーティクルを出す時間の長さ(秒) |
ループ | パーティクルの生成を繰り返すかどうか |
開始の遅延 | パーティクルシステムが実行されてから実際に生成が始まるまでの待ち時間(秒) |
開始時の生存時間 | パーティクルが放出されてから消滅するまでの時間(秒)の初期値 |
開始時のスピード | パーティクルの初速 |
開始時のサイズ | パーティクルのサイズの初期値 |
開始時の角度 | パーティクルの角度の初期値 |
開始時の色 | パーティクルの最初の色 |
重力の大きさ | 重力の値。0なら無重力 |
最大パーティクル数 | パーティクルの最大数。これを超えると、古いパーティクルが削除される |
放出(Emission)
パーティクルを放出する数を設定します。
設定項目 | 説明 |
---|---|
時間ごとの率 | 経過時間に応じて、この数だけパーティクルが放出される |
距離ごとの率 | 移動距離に応じて、この数だけパーティクルが放出される |
バースト | 指定した時間に通常とは異なる量のパーティクルを放出する |
試しに「時間ごとの率」を「10」→「50」にしてみると下のようになりました。
形状(Shape)
パーティクルが放出される際の放出の形状を決める項目です。パーティクルはここで決めた形状にしたがって広がります。なお「形状」という項目名ですが、パーティクルそのものの形を変更できるわけではないのでご注意ください。
設定項目 | 説明 |
---|---|
形状 | パーティクルを放出する範囲の形 |
生存期間の速度(Velocity Over Lifetime)
パーティクルが生存している間の速度を変更します。
生存期間の色(Color Over Lifetime)
パーティクルが生存している間の色を変更します。
生存期間のサイズ(Size Over Lifetime)
パーティクルが生存している間のサイズを変更します。
設定項目 | 説明 |
---|---|
軸の分離 | ONにすると、各軸(X,Y,Z)ごとにサイズの変化を指定できる |
サイズ | サイズがどのように変化するかをカーブで指定 |
生存期間の回転(Rotation Over Lifetime)
パーティクルが生存している間の回転量を指定できます。
外力(External Forces)
パーティクルにWind Zoneの影響を与えます。
Wind Zoneは通常はTerrainの草木を揺らすために使いますが、外力オプションを設定することでパーティクルにも適用することができます。シーンにWind Zoneを作成して外力を設定すると、下の動画のようにパーティクルが風になびくようになります。
衝突(Collision)
この項目を設定すると、パーティクルがコライダーを持つゲームオブジェクトと衝突するようになります。
設定項目 | 説明 |
---|---|
タイプ | 「平面」か「ワールド」を選択 |
タイプを「ワールド」にすると、パーティクルはコライダーを持つすべてのゲームオブジェクトと衝突するようになります。一方で「平面」にすると、限られた平面上でのみ衝突するようになります(そのぶん処理が軽いです)。
試しにタイプを「ワールド」にしてコライダーを持つゲームオブジェクトを配置してみると、パーティクルがコライダーに衝突するようになりました。
レンダラー(Renderer)
パーティクルのマテリアルやメッシュ形状などを設定します。
色々な設定項目がありますが、基本的には次の2つを押さえておけば問題ないでしょう。
設定項目 | 説明 |
---|---|
レンダーモード | どのようにパーティクルを描画するか |
マテリアル | パーティクルに使うマテリアル |
このうち「レンダーモード」には大きく分けると次の2種類の選択肢があります。
- ビルボード
- メッシュ
「ビルボード」は常にカメラのほうを向く板状のメッシュ(つまりハリボテ)で、「メッシュ」は通常の3Dメッシュです。特に理由がなければビルボードのほうで大丈夫だと思います。