前回は、Unity の Particle System でパーティクルの衝突について設定する Collision モジュールについてサンプルとの差分を中心に比較して、飛び出した薬きょうが壁にぶつかると跳ね返ってくる動作を行う設定について紹介しました。
そのための障害物の設置の例も説明しました。
※サンプルは、見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaRifle の Shells ゲームオブジェクトの設定を参考にしています。
前回の記事:TopDownEngine薬莢PatricleSystem調査6/7 | Compota-Soft-Press

今回は、Unity の Particle System コンポーネントのうち、TopDown Engine のサンプル KoalaRifle の Shells で変更されていた Renderer モジュールの既定値とサンプルの値との差分を調べ、パーティクルと他の画像との前後関係の設定について紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。
前回までの結果
前回 Collision モジュールを設定したことで、飛び出した薬きょう画像のパーティクルが、指定されたレイヤーの障害物にぶつかるとすり抜けるのではなく、跳ね返るようになりました。
Renderer モジュール
このモジュールの公式サイトの説明を引用します。
Renderer モジュールの設定で、パーティクルの画像や メッシュ がどのように他のパーティクルによって変形、シェード、上書きされるかを決定します。
Renderer モジュール – Unity マニュアル

以前に銃の画像を差し替えるために Renderer モジュールの Renderer Mode, Normal Direction, Material プロパティについては説明し、変更しました。
それについては、「消しゴム銃8 ID=7281」と「消しゴム銃9 ID=7337」をご覧ください。
他の差分は以下です。
Sorting Layer ID | Default → Foreground | レンダラーのソーティングレイヤーの名前 |
Order in Layer | 0 → 5 | ソーティングレイヤー内のレンダラーの順序 |
キャラクター画像やマップ画像などさまざまな画像の表示順の設定を変更しています。
テストのために正方形のスプライト画像を表示するゲームオブジェクトを同プレハブ内に追加します。
TestWeapon プレハブをダブルクリックして開いた後の Hierarchy ウィンドウの余白で右クリックして表示されるメニューから 2D Object > Sprites > Square を選択すると追加されます。

このゲームオブジェクトは白い正方形を表示するために最初から SpriteRenderer コンポーネントを持っているので、 SortingLayer を Default から Ground に変更します。
※ Ground は TopDown Engine サンプルのタイルマップでは地面に割り当てられている Sorting Layer ID です。

この状況で、再び同プレハブの PSDefault ゲームオブジェクトを選択して Scene ウィンドウの Particle ウィンドウの Play ボタンを押して薬きょう画像のパーティクルを放出すると、先ほど追加した正方形スプライト画像の奥に表示されました。
※ PSDefault は Particle System を新規で付加した後、 Shells の値に少しずつ変化させてきた検証用のゲームオブジェクトです。サンプル Koala Rifle プレハブに最初から入っている Shells ゲームオブジェクトの Renderer モジュールの SortingLayer を Default と Foreground に切り替えてテストしても同様です。

次に Shells ゲームオブジェクトと同じく Renderer モジュールの SortingLayer を Foreground 、Order in Layer を 5 に変更・保存してから同様に Scene ウィンドウの Particle ウィンドウの Play ボタンを押すと、今度は薬きょう画像のパーティクルが正方形のスプライト画像の手前に表示されました。

確認が済んだら、先ほど作成した正方形のゲームオブジェクトは削除して、プレハブを保存しましょう。
まとめ
今回は Unity の Particle System の Renderer モジュールの Sorting Layer, Order in Layer の値を変更することで、他のスプライト画像と重なりあうときの順番が変更されることを、追加したテスト用のスプライト画像で確認しました。
※サンプルは、見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaRifle の Shells ゲームオブジェクトの設定を参考にしています。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- TopDown Engine | システム | Unity Asset Store
- Renderer モジュール – Unity マニュアル
記事一覧 → Compota-Soft-Press
コメント