UE5でFPSゲーム制作 Part13-リロード

リロード

リロードなどのアニメーションを伴う動作はMontage Playを使用するとアニメーションの途中や終わったとき、やめたときなどのタイミングでイベントを通知してくれるので便利です。

 

WeaponBaseにリロード関連の関数を追加します。Fire関数はマガジンの弾が0ならReload関数を呼びます。Reload関数はリロード中でない、かつ、マガジンが最大でなく、手持ちの弾が残っていればReload Action関数を呼びます。

WeaponBase.h

WeaponBase.cpp

 

BPI_WeaponにSend Reload関数を追加します。

BP_WeaponBaseでSend ReloadからReload関数を呼びます。ReloadができるならReload Action関数からリロードアニメーションを再生します。

On Completed:モンタージュの再生が完全に終了すると呼び出されます。

On Blend Out:アニメーションモンタージュ内のBlend Out Trigger Timeの時間を使用して、モンタージュブレンドアウトを開始した時に呼び出されます。

On Interrupted:別のアニメーションモンタージュによって中断された時に呼び出されます。

On Notify Begin & End:アニメーションモンタージュ内で設定したPlay Montage NotifyまたはPlay Montage Notify Window通知のタイミングで呼び出されます。

 

あとはキャラクター側で今までのように入力アクションからCurrent WeaponへBPI_WeaponのSend Reloadメッセージを送ることでリロードが出来ます。