UnityでFPSをつくる その10-3 [ シーン遷移 ]
前回までで、スケールアップ演出の実装が完了しました。
もう少し華やかさを加えたいので、パーティクルシステムを使って、紙吹雪を表現していきます。
まずは、MainCameraの位置をリセットします。

次に、Hierarchyウィンドウへ、Effects → Particle Systemを作成してください。

白い粒が、連続して発生していることが確認できます。※Gameビューに表示されていない場合は、Particle SystemのTransformをリセットしてください。

この粒(パーティクル)の大きさや間隔、色、形状等を変化させることによって、液体、雲、炎などの様々な演出が可能になります。
設定項目を調整して、紙吹雪を作りましょう。
※以下の動画を参考にさせていただきました。
まずはParticle Systemオブジェクトを「Confetti」にリネーム、Transformをリセットして以下の値にしてください。

Particle Systemの基本項目を以下のように変更します。

「Prewarm」にチェックを入れると、ゲーム開始時点で既にパーティクルがある程度発生している状態になります。

「Start Lifetime」はパーティクル発生から消滅までの時間を秒で設定。
「Start Speed」は1秒あたり何Unit(Unityでの長さの単位)進むか、初速を決めます。

次に、「Start Size」の「▼」をクリックして「Random Between Two Constants」を選択、値を以下のようにしてください。

「Start Size」では、パーティクル発生時の大きさを決めます。
「Random Between Two Constants」で設定した幅から、ランダムに値が決まります。

続いて、「Start Color」の「▼」をクリックして「Random Color」を選択、

「Start Color」のカラーバーをクリックすると、「Gradient Editor」が表示されるので、Editor内のカラーバーをクリックして、Colorの値を以下のようにします。

グラデーションバーの下部をクリック

追加された上向き矢印を、数値入力して位置調整

グラデーションバーの下部をクリック

追加された上向き矢印を、数値入力して位置調整

以下、同様に矢印を3つ追加して、位置と色を数値で調整します。



最後に、右下端の矢印(Location 100%)を選択、色を調整して、「Start Color」の設定は完了です。

これにより、Duration時間に応じて、パーティクル発生時の色が変わります。

次に、「Gravity Modifier」の値を以下のようにしてください。

プラスの値を設定することで下向きの、マイナスの値を設定することで上向きの重力(Gravity)がかかります。

次に、「Emission」モジュールの「Rate over Time」を以下のようにしてください。

これで、1秒あたりに発生するパーティクルの数が決まりました。
次は「Shape」モジュールの「Shape」を「Box」にします。

ここで設定した形状の内側から、パーティクルが発生するようになります。

次に、「Velocity over Lifetime」モジュールから「Linear」の「▼」をクリックして、「Random Between Two Constants」を選択、値を以下のようにしてください。

これにより、パーティクル発生時にLinearで設定した範囲内の速度がX方向に加わり、左右に散りながら落下する状態を再現できます。

次に、「Rotation over Lifetime」モジュールの「Separate Axes」にチェックを入れて、「Random Between Two Constants」を選択、XYZの値を以下のようにします。

ここでは、パーティクルが消滅するまでの間、1秒間に回転する度合いを決めています。
範囲を「360」から「-360」に指定しているので、各軸で1秒間に最大1回転することになります。


最後に「Renderer」モジュールの「Material」を「Sprites-Default」にします。


ぼやっとした見た目から、はっきりと色が付き、紙片のような見た目になりました。

パーティクルシステムを使った紙吹雪の完成です。
長くなってきたので続きは次回にしたいと思います、おつかれさまでした!