執筆バージョン: Unreal Engine 5.5
|
こんにちは!今日は、プレイヤーが自爆しつつ敵を倒すブループリント(BP)を作成していきます。
「自爆」と一言で表されますが、作品によってその演出はさまざま!例えば、「大切な何かを守るために自らを犠牲にする」場面や、「悪役が自身の信念に従い自滅する」シーンなど、どれも印象的な見せ場となります。視覚的にも非常にインパクトがありますよね!!!
…それはさておき、まずは完成イメージをご覧ください!
いかがでしょうか?
それでは自爆機能の作成を行って行きましょう!!
※今回はサードパーソンのテンプレートを使用します。

作成前にエネミーキャラクター用のBPを作成します。「BP_ThirdPersonCharacter」を複製してリネームを行ってください。

- 今回は「BP_ThirdPersonEnemy」と命名します。
目次
- プレイヤーに自爆機能を実装
- エネミーキャラの実装
- おまけ
プレイヤーに自爆機能を実装
1.「BP_ThirdPersonCharacter」を開きます

2.イベントグラフ内を左クリックして「カスタムイベント」を作成します

今回は名称を「Explosion」に設定します。

3.「Explosion」に「Apply Damage」を繋げて自身が受けるダメージを設定します。

- 「Damaged Actor」に「Self」を接続(自身にダメージが入るように)
- 「Base Damage」を設定(即死できるぐらい大きな値を入れます)
4.「Apply Radial Damage」を繋げて爆発の当たり判定を設定します。

- 「Base Damage」を設定(敵キャラクターが受けるダメージの設定)
- 「Origin」に「Get Actor Location」を接続(爆発の中心点がプレイヤーの位置になるように)
- 「Damage Radius」を設定(爆発範囲の半径を設定)
5.「Spawn Emitter at Location」を繋げて爆破エフェクトの表示設定を行います。

- 「Emitter Template」に使用するエフェクトを設定(今回はP_Explosionを使用します)
- 「Location」に「Get Actor Location」を接続(エフェクトがプレイヤーの位置に表示されるように)
- 「Scale」でエフェクトのサイズを調整
6.「Play Sound at Location」を繋げて爆破時に鳴らす効果音を設定します。

- 「Sound」に使用するSEを設定(今回はExplosion02を使用します)
- 「Location」に「Get Actor Location」を接続(SEがプレイヤーの位置で再生されるように)
7.「Set All Bodies Simulate Physics」と「Set Collision Enabled」を繋げて爆破後にラグドール化する処理を入れます。

- 「Set All Bodies Simulate Physics」の「New Simulate」 を「True」に設定(自身を爆発後にラグドール化(ぐにゃぐにゃ)にする処理)
- 「Set Collision Enabled」の「New Type」を「Physics Only(No Query Collision)」に設定(ラグドール化した際に地面を無視して落下しないようにする処理)
8.指定キーを入力すると自爆が発動する処理を作成します。

- イベントグラフ内を左クリックして検索窓に「Keyboard Events」を入力して任意のキーを選択します。(今回はGキーを使用します。)

- 2.で作成した「Explosion」関数を呼び出して繋げます。(検索窓に「Explosion」を入力すると呼び出せます。)
プレイヤーの処理が完成!実行して自爆ができるか確認してみましょう!

エネミーキャラの実装
1.エネミーの色を変えよう
プレイヤーキャラとエネミーの区別がつくように色を一部だけ変えていきます。
「MI_Manny_01」を複製してリネームを行ってください。

「MI_Enemy」を開いて色を変更します。

- 詳細パネル内「01 – BaseColor:Tint」を選択しカラーピッカーを表示
- カラーピッカーで任意の色に調整
「BP_ThirdPersonEnemy」を開き詳細パネル内「マテリアル:エレメント0」に「MI_Enemy」をドラッグ&ドロップします。

これでエネミーの色が変わりました!ビューポートを選択してエネミーを確認しましょう!

2.エネミーのライフを作成
マイブループリントパネル内の変数を追加してリネームを行います。
今回は「Enemy Life」と命名します。

コンパイルを行い「Enemy Life」のデフォルト値を設定します。
今回はデフォルト値を「200」に設定します。

- 先ほど自爆のダメージ値を500に設定したので500以上の値に設定すると爆破ダメージを耐えることができます。
3.イベントグラフ内を左クリックして「Event AnyDamage」を作成します
「Event AnyDamage」はダメージを受けた際に発生するイベントです。

4.ダメージを受けた際にエネミーのライフが減るようにBPを組みます。

- 「EventAnyDamage」に「Enemy Life」を繋げる
-
「Enemy Life」が「Damage」分だけ減るように、「Subtract(減算ノード)」を使って処理を組む
5.エネミーのライフが0以下の時にエネミーが消滅する処理を組みます。

- ブランチノードを作成して、エネミーのライフが0以下の時にTrueとなるBPを組む
- True時に「Destroy Actor」が発動するようにノードを繋げる
エネミーの処理が完成!実行して自爆で倒せるか確認してみよう!

おまけ
カウントダウン処理を組んでみた!

使用SE:https://soundeffect-lab.info/
本ブログは以上となります!
ぜひゲーム内に実装して、思いっ切り爆破してみてください!!