公開日:2025/06/12  更新日:2025/06/12

UE5の死亡処理について

UE5では敵や操作キャラのHPが0になると死亡処理を行いたいことが多い。

これまでの以下の記事で銃を持たせ、エイムし弾を撃ちダメージを与えられるようにしている。この記事では敵のHPが0になったら死亡するようにしていこうと思う。

銃の持ち方

ブレンドスペース

エイムオフセット

視点変更

弾を撃つ

ダメージ処理

先に確認してみてほしい。

Get・SetやSequenceやBranchといった基礎的なノードがわからない場合は先に以下記事を確認してほしい。

アンリアルエンジンのノードの一覧

UE5の死亡処理の目次

死亡アニメーションの準備
死亡処理の実装
目次にもどる

死亡アニメーションの準備

死亡アニメーションとして、今回は以下のゾンビの無料アセットを使う(敵がオークなので本当はあまり適さないが無料なのでこれにした。他に適したアニメーションのアセットを持っているならそれを使ってOK)。

ゾンビの無料アニメーションのアセット。

たぶんこのアセットはView in My Libraryを選択しても入らない。Downloadしよう。

UE5の死亡処理

Downloadしたファイルを解凍すると以下のようにFBXファイルが入っている。

UE5の死亡処理

このうち、FN_Manny_Zombie_Death.FBXを選択し、UE5のコンテンツドロワーの任意の場所にドラッグ&ドロップしてインポートしよう。

アニメーションシーケンスファイルとして、FN_Manny_Zombie_Death_Animがあり、倒れるアニメーションとなっている。これを死亡時のアニメーションとして使っていく。

ただし、このままオークの死亡時アニメーションとしてFN_Manny_Zombie_Death_Animを使っても再生されない。アニメーションには骨をどう動かすかのデータが入っているのだが、アニメーションデータの骨構造とスケルタルメッシュ(オーク)の骨構造が異なると上手く再生されない場合があるのだ。

その場合リターゲットという作業を行う必要がある。

FN_Manny_Zombie_Death_Animを選択して右クリックし、アニメーションをリターゲットを選択する。

UE5の死亡処理

以下のような画面が出てくるので、ターゲットスケルタルメッシュをSK_Warrior_Orcに選択し、名前でFN_Manny_Zombie_Death_Animを選択し、アニメーションをエクスポートを押す。

UE5の死亡処理

以下のような画面が出るので、任意のエクスポート場所を選びエクスポートを押す。エクスポートされたファイルの名前をFN_Orc_Death_Animにする。

UE5の死亡処理

これでオークの骨構造に合わせたアニメーションシーケンスファイルが作成できた。

FN_Orc_Death_Animを選択して右クリックし、作成する→AnimMontageを選択する。

UE5の死亡処理

アニメーションモンタージュのファイルができるのでAM_FN_Orc_Death_Animと名前をつける。

AM_FN_Orc_Death_Animを開き、アセット詳細のEnable Auto Blend outのチェックを外す。

UE5の死亡処理

ここにチェックが入っているとキャラが倒れてから立っている状態にブレンドされて戻ろうとする。それでは不自然なのでチェックを外す。

これで死亡アニメーションを使う準備ができた。

前回の記事で作成したBP_Orcについてアニメーションブループリントを作成する。

今回はサードパーソンテンプレートのアニメーションブループリントとして最初から用意されているABP_Mannyをコピーして使うことにする(場所はコンテンツドロワーのCharacters→Animationsのフォルダにある)。

UE5の死亡処理

ABP_Mannyをコピーしたファイルの名前はABP_Orcとする。自分にとってわかりやすい任意の場所に移動させよう。

UE5の死亡処理

BP_Orcを開き、コンポーネントタブでBP_Orcを選択して詳細タブを確認し、Animクラスの項目でABP_Orcを指定しコンパイルすれば完了だ。

UE5の死亡処理
目次にもどる

死亡処理の実装

前回の記事で作成したBP_Character(操作キャラ・敵キャラの親となっているブループリントクラス)を開く。

変数を1つ作成し、型はAnimモンタージュにする(検索すれば出てくる)。変数の名前はDeathとする。

UE5の死亡処理

コンパイルする。

BP_Orcを開いてコンポーネントタブのBP_Orcを選択し、詳細タブのデフォルトのDeath(BP_Characterから継承された変数)にAM_FN_Orc_Death_Animを指定する。

UE5の死亡処理

これでBP_OrcのHPが0になった時の死亡アニメーションを指定することができた。

続いてBP_Characterを開きノードを追加していく。

今まではインターフェースで弾が敵のコリジョンを検知したらダメージ処理(HPからダメージを減算しHPを再度セット)が起こるようにしていた。

UE5の死亡処理

ここから以下のようにBranchで条件分岐しHPの値が0以下の場合はtrueとなり、Play Anim Montage(一時的なアニメーションの表示によく使う)の処理が行われるようにノードを追加する。

UE5の死亡処理

Play Anim Montageの入力には変数Deathを指定しており、オークがダメージを喰らいHPが0以下になると死亡アニメーションとしてAM_FN_Orc_Death_Animが再生されることになる。

続いて死亡アニメーション後にキャラを消す処理を作っていく。

Play Anim Montageの特徴はReturn Valueからアニメーションモンタージュの長さ(秒)を返すことができる点。

つまり、アニメーションモンタージュが終了するまでの時間がわかる。加えてDelayとDestroyを組み合わせることで、死亡アニメーション完了までディレイをかけ死亡キャラを消すといった処理を行える。

とはいってもアニメーション終了直後にいきなり敵が消えるのも自分は不自然に感じたので、Play Anim MontageのReturn Valueに3を加算した秒数のDelayを配置し、その後Destroyでそのアクタを削除するようにノードを配置した。

UE5の死亡処理

これで以下のように銃を撃って弾が敵に当たってHPが0になると死亡処理が行われ、倒れるアニメーションが再生されDelay経過後(アニメーションの時間+3秒)に敵が消失する。


後はBranchのfalse時(つまり攻撃が当たりダメージ処理が行われたがHPは0以下になっていない)の処理としてPlay Anim Montageでヒット時のひるみアニメーションを入れてやるといい。

次の記事ではパンチ攻撃を行えるようにしていく。

パンチ攻撃

アンリアルエンジンの基本まとめへ戻る

page top