Unityのエフェクトを使い、敵キャラの出現をわかりやすくする

今回はUnityでエフェクトを使って演出をしてみます。

敵キャラ登場時に何の演出もないといつどこに出現したのかがわかりませんし、いきなり攻撃された!なんて事にもなりかねません。
(いつのまにか登場させたいという場合は演出はいりませんが)

敵の出現方法は

出現場所から一定時間毎に人数制限内で敵を出現させる
Unityで出現場所から一定時間毎に敵を出現させます。また出現する敵の数を制限し、その場所からは決められた人数しか出現しないようにします

を参照してください。

演出と言ってもどんなことをすればいいのか?
と思いますが、星のようなものが出現場所に現れる、出現した時に効果音を鳴らすとわかりやすいと思います。

効果音はまた別の記事でやる予定なのでそれまでお待ちを(^。^)

では星のような見てわかる演出を使ってみます。

スポンサーリンク

エフェクトをAssetStoreで探す

エフェクトをAsset Storeから探してみます。

UnityメニューのWindow→Asset StoreまたはCtrl+9でAsset Storeウインドウを開きます。

パーティクルシステム→その他→Ft Free Sample

をインポートしてみました。

エフェクトの使い方

エフェクトが確認できるシーンがあるので、それをダブルクリックして確認し、使いたい物を選びます。

FT CartoonEffect Volume02がよさげなので、これをエフェクトとして使います。

エフェクトはそのままシーン上に配置するのではなくInstantiateを使ってスクリプト上からシーンに登場させます。

そのスクリプトの名前をAppearEffectとし、そこにスクリプトを書いていきます。

スクリプトからエフェクトを発生させる

まずはエフェクトをインスペクタ上で設定できるようにpublicでeffect変数を宣言します。
エフェクトオブジェクトを入れておく変数objも宣言しこちらを操作するようにします。

次に敵キャラが登場する時のエフェクトは出現した時に1回だけ効果を発揮させたいので、Start関数内で処理する事にします。

出現時に数秒間エフェクトが表示され、消えるというスクリプトを組めばいいわけです。

上記のようになりました。

obj = GameObject.Instantiate(エフェクトのオブジェクト, 敵キャラと同じ位置, エフェクトの角度)

でエフェクトのプレハブのインスタンス化をし、objに代入します。
エフェクトが現れる位置はワールド座標(シーン上の位置)の敵キャラが現れる位置に合わせます。

今回のエフェクトは敵キャラと親子関係にはしていないので、シーン直下に配置されることになります。
(エフェクトのゲームオブジェクトを敵キャラの子要素にしていない)

Destroyでオブジェクトを削除出来ます。第1引数では削除するオブジェクト、第2引数では削除までの秒数を指定します。
第2引数を指定しない場合は即座に消えます。

削除するまでの秒数を変更してどのぐらいエフェクトを続けるのか調整してみると面白いです。

敵出現時のエフェクトの確認

上のような感じになりました。
かなり毒々しい登場です。(`´)

終わりに

これで敵キャラ出現時のエフェクトが完成しました。エフェクトを使えば出現時だけでなく、攻撃が当たった時や何かにぶつかった時などにも演出をする事が出来ます。

結構短い記事になりましたが、スクリプトをそんなに記述しなくてもこれだけ出来てしまうのは本当に驚きですねぇ!という事で

次回は敵キャラ出現時に効果音を鳴らしてみます。