Unityに関連する記事です

 この手順も引き続き、画面の演出・エフェクト関連の実装を行っていきます。

 拠点のダメージエリアにエネミーが侵入した際にヒット演出用のエフェクトを生成する処理を実装します。
これは2回に分けて段階を踏んで実装を行います。この手順では、画面の中央の位置にヒット演出用のエフェクトを生成する処理を追加します。


<実行動画>
動画ファイルへのリンク


 以下の内容で順番に実装を進めていきます。

手順22 −エネミーによるヒット・エフェクトの実装 
45.拠点とエネミーとが接触した時用の被ダメージ・エフェクトを作成する
46.DefenseBase スクリプトを修正して、拠点とエネミーが接触した際に、画面の中央位置に被ダメージ・エフェクトを生成する処理を追加する



 新しい学習内容は、以下の通りです。

 ・復習を兼ねて、教材を見る前にエフェクト用のゲームオブジェクトを作成してプレファブにする処理に挑戦する



45.拠点とエネミーとが接触した時用の被ダメージ・エフェクトを作成する

1.設計


 前回の手順でインポートした、2Dゲーム用のエフェクトのパックを利用して、新しくエネミー用のヒット演出用のエフェクトとして利用しましょう。
プレファブになっているゲームオブジェクトを一部修正して、エネミーが拠点に侵入した時のエフェクト用のゲームオブジェクトにします。

 作成する手順は前回、バレットのヒット演出用のゲームオブジェクトを作成する方法と同じです。作成後にプレファブ化する部分も同じです。
前回の手順を思い出しながら、最初は何も見ずに編集作業に挑戦してみてください。
そしてわからなくなった部分から見直して進めてください。


2.エフェクトを作成する


 インポートしたアセットには、プレファブとして完成しているエフェクト用のゲームオブジェクトが複数含まれています。
自由なものを利用してください。今回は、下記のパスのゲームオブジェクトを利用しています。

パス
Assets/JMO Assets/Cartoon FX/CFX Prefabs/Hits/CFX_Hit_A Red+RandomText.prefab

フォルダ



インスペクター画像


 
 エフェクト用のゲームオブジェクトを選択したら、ヒエラルキーの Canvas ゲームオブジェクトの上までドラッグしてドロップして、Canvas の子オブジェクトとして作成してください。


ヒエラルキー画像



 続いて設定を行います。



4.エフェクトを設定する


 最初に、プレファブ状態を解除して、通常のゲームオブジェクトに戻します。
ヒエラルキーにあるエフェクト用のゲームオブジェクトの上で右クリックをしてメニューを開き、Prefab => Unpack Completely を選択してください。
プレファブ状態が解除されます。アイコンと文字の色が青ではなくなっていれば成功です。


ヒエラルキー画像





 続いて、ParticleSystem コンポーネントの設定として、2つ変更を行います。

ParticleSysytem コンポーネント 初期インスペクター画像



ParticleSysytem コンポーネント 初期インスペクター画像



 上から順番に設定していきます。

 メインの設定内のScaling ModeHierarchy から Local に変更します。これで、Canvas 内でも正常なサイズでパーティクルが再生されるようになります。

 Renderer 欄Order in Layer を 0 から 1 に変更します。これで描画表示の優先順位が高くなり、背景用の画像よりも手前にパーティクルが表示されるようになります。


設定後



設定後




 続いて、Transform コンポーネントの設定を行います。
Scene ビューの Particle Effect View(エフェクト用のゲームオブジェクトを選択するとSceneビューの右下に表示される) の Play を押して、何回か再生して大きさなどを確認します。
そのままでは少しサイズが大きいかと思いますので、Game ビューも一緒に確認しながら適宜なサイズに調整してください。


インスペクター画像



<検証動画>
動画ファイルへのリンク


 以上で完成です。

 なお、今回使用したゲームオブジェクトには、子オブジェクトも一緒に用意されています。
もしもこちらの子オブジェクトのエフェクトも画面に表示したいのであれば、それぞれの ParticleSystem の設定を
同じように変更する必要があります。


ヒエラルキー画像



 これらの設定を行うと文字のパーティクルや、エフェクトの軌跡が一緒に再生される状態で実装できます。
色々と操作をしながら、一番よいと思えるものを採用してください。


4.エフェクト用のゲームオブジェクトをプレファブ化し、名前を EnemyAttackEffect に変更する


 完成したエフェクト用のゲームオブジェクトをプレファブ化し、スクリプトからクローンを生成出来るようにします。

 ヒエラルキーにあるエフェクト用のゲームオブジェクトを Prefabs フォルダへドラッグアンドドロップしてプレファブにしてください。
無事にプレファブになったら、ヒエラルキーにあるエフェクト用のゲームオブジェクトは削除してください。

 Prefabs フォルダにあるエフェクト用のゲームオブジェクトを選択し、インスペクターの一番上にある Open Prefab を選択して、プレファブの編集モードにしてください。
エフェクト用のゲームオブジェクトの名前を EnemyAttackEffect に変更してください。確認のウインドウが開いた場合には Rename File を選択してください。

 また、Position の値をすべて 0 に設定してください。このとき不用意に Reset をすると Scale の値も変わってしまうため、Position の値のみを操作してください。


EnemyAttackEffect ゲームオブジェクト インスペクター画像



編集モード時のSceneビュー



 以上でエフェクト用のゲームオブジェクトは完成です。


46.DefenseBase スクリプトを修正して、拠点とエネミーが接触した際に、画面の中央位置に被ダメージ・エフェクトを生成する処理を追加する

1.設計


 エフェクト用のゲームオブジェクトは作成してプレファブにできました。
次は、エネミーが拠点に侵入したタイミングに合わせて、このプレファブのクローンを生成する処理を実装します。

 「エネミーが拠点に侵入した時」というのがタイミング(条件)として考えられる部分です。
このタイミングに適しているのは、DefenseBase スクリプトの OnTriggerEnter メソッド内がこの条件の部分にあたります。
よって、この中にエフェクトを生成する処理を記述すればよいことが分かります。

 この部分も前回 EnemyController スクリプトに実装した内容と同じです。
復習を兼ねて実装するためのロジックを考えて実装に挑戦してください。

 なお今回は、エフェクトを画面の中央位置に生成することが目的になっていますが、
エネミーが侵入してきた位置に生成するロジックが実装できるのであれば、この手順で実装をしていただいても構いません。
その場合は教材を振り返り学習用として利用してください。


2.DefenseBase スクリプトを修正する


 EnemyController スクリプトを参考にしながら、DefenseBase スクリプトに処理を追加してください。
プレファブをクローンするにはどんな情報が必要か、どの部分にどんな処理を記述すればクローンが生成できるか、
1つずつ順番に考えてロジックを組み立てていきましょう。


DefenseBase.cs

 <= クリックすると開きます


 スクリプトを修正したらセーブします。
EnemySet ゲームオブジェクトのインスペクターを確認し、EnemyController スクリプトの情報を確認します。
新しく SerializeField 属性つきで宣言した変数の表示が追加されていれば問題ありません。


DefenseBase ゲームオブジェクト インスペクター画像




3.DefenseBase ゲームオブジェクトの設定を行う


 Prefabs フォルダ内の EnemySet ゲームオブジェクトのインスペクターより、enemyAttackEffectPrefab 変数に情報をアサインして登録します。
同じ Prefabs フォルダにある EnemyAttackEffect ゲームオブジェクトをドラッグアンドドロップしてアサインしてください。


DefenseBase ゲームオブジェクト インスペクター画像



 以上で設定は完了です。


4.ゲームを実行して動作を確認する


 設定が終了したセーブを行い、ゲームを実行して問題ないか確認をしていきます。
エネミーが拠点に侵入した際に、画面の中央位置にエフェクトのクローンが生成されて、演出用のパーティクルが再生されれば制御成功です。
 

<実行動画>
動画ファイルへのリンク


 以上でこの手順は終了です。

 次は 手順23 −エネミーによるヒット・エフェクトの実装◆ です。
次の手順では画面中央に生成されたエフェクトの位置を、エネミーが拠点に侵入した位置に変更します。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます