コンテンツへスキップ

敵キャラクターを倒した時に視覚効果(パーティクルシステム)をつける方法

Unity の「Particle System(パーティクルシステム)」を使えば、敵キャラクターを倒した時の見た目をかっこよく演出することができます。

今回利用した素材は以下のものになります。

unity-particle-system-on-defeat-enemy1
unity-particle-system-on-defeat-enemy2

プロジェクトの設定(Unity のバージョンやレンダーパイプラインの種類)と互換性がある素材を選択しましょう。素材の探し方についてはこちらの記事を参考にしてみてください。

事前準備

素材によっては、事前準備が必要な場合があります。今回利用した素材もそのひとつです。事前準備の内容は、アセットストアのページに記載されています。記載内容に合わせて各自対応してください。

unity-particle-system-on-defeat-enemy3

今回の素材で必要な事前準備は、以下の通りです。

① 素材(マテリアル)をURP用に変換する

必須ではありませんが、プロモーション用の動画や画像は、Post Processing (ポストプロセス)機能の Bloom エフェクト(②)を使用しているそうです。

※Bloom は光を強調するエフェクト

準備 ①:素材(マテリアル)をURP用に変換する場合

URP に対応していない場合、下図の左のように紫色の見た目になります。これを URP 用に変換します。

URP に対応していない

unity-particle-system-on-defeat-enemy4

URP に対応している

unity-particle-system-on-defeat-enemy8

Unity のツールバー「ウィンドウ」⇒「レンダリング」⇒「レンダーパイプラインコンバーター」を選択します。

unity-particle-system-on-defeat-enemy5

「Render Pipiline Converter」タブが表示されるので以下の手順に従って、URP に変換します。

unity-particle-system-on-defeat-enemy6

1.「Built-in to URP」を選択
2.「Material Upgrade」にチェックを入れる
3.「Initialize Converters」をクリック

unity-particle-system-on-defeat-enemy7

4.「Convert Assets」をクリックして URP に変換する

Unity での設定

パーティクルシステムの素材「Magic effects pack / Prefabs / Hits and explosions / Explosion」を、ヒエラルキーの敵キャラクター(下図の例:Dino1)の子オブジェクトに設定します。

unity-particle-system-on-defeat-enemy9

追加したパーティクルシステム「Explosion」のスケールなどを、ゲームに合うように調整します。

unity-particle-system-on-defeat-enemy10

プログラミング

DinoController(敵キャラクターのスクリプト)

12 行目の「explosion.Play();」は、パーティクルシステムを実行するコードです。プレイヤーから攻撃を受けた時に実行するようにしてください。

13 行目の「Destroy(gameObject, 1.0f);」で、パーティクルシステムを親オブジェクト(敵キャラクター)ごと消すようにしています。パーティクルシステムの再生が終わるタイミング(今回は1秒間のエフェクトだった)に合わせましょう。

using UnityEngine;

public class DinoController : MonoBehaviour
{
    [SerializeField] private ParticleSystem explosion;

    private void OnTriggerEnter2D(Collider2D collision)
    {
        var attackSensor = collision.gameObject.GetComponent<AttackSensorController>();
        if (attackSensor != null)
        {
            explosion.Play();
            Destroy(gameObject, 1.0f);
        }
    }
}

パーティクルシステムの「コールバック」を使えばもっとスマートに親オブジェクトを消すことができます。

unity-particle-system-on-defeat-enemy11

完成形

以上で、敵キャラクターを倒した時に視覚効果(パーティクルシステム)をつける方法の解説を終わります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA