Ue4によるダメージ処理の実装方法

現在、UE4の4.22.3でオンラインFPSと呼ばれるジャンルでゲームを作成している者です。
私が初心者であり、今回の質問は初めてであるために、文面が失礼であったり、既に答えが存在しているかもしているかもしれませんが、不足している部分があれば、非常に恐縮ながら指摘して頂けると幸いです。
今回、私が実装しようと考えているのは、ブループリントでライントレース上に存在するアクターにダメージを与える処理なのですが、YouTubeやネット上に存在するサイトや動画を見る限り、Apply Damageや関数などを使っており、実際私が作りたい処理やゲームのジャンルではどれが一番最適なのかがよくわからず、開発が止まってしまっています。
今私が考えられるダメージ処理の方法は、以下の通りです。
Apply Damage(インターフェイス)
カスタムイベント
関数
です。
また、それ以外にありましたら追加で教えて頂けると嬉しいです。
どうか、ダメージなどの処理に詳しい方、UE4に詳しい方、教えて頂けませんでしょうか?

UE4が備えるダメージ機能については以下のページが参考になります。

UE4 におけるダメージ機能

猫でもわかるUnreal Engine4


実際私が作りたい処理やゲームのジャンルではどれが一番最適なのかがよくわからず

必ず1つのダメージ機能だけを使う必要は無いと思います。

FPSと書かれているので恐らく銃や手榴弾等で攻撃することを想定していると思いますが、銃で攻撃する場合は Point Damage系 が最適です。

Point Damage系は「どの方向から攻撃されたか」「どの部位に当たったか」を取得できるのでFPSではおなじみの「ヘッドショットはダメージ2倍!」といったことも出来ます。

汎用的なDamageやRadial Damageでは「どの方向から攻撃されたか」「どの部位に当たったか」という情報が提供されないので、ヘッドショット云々の処理を実装するには手間がかかります。


手榴弾で攻撃する場合、最適なダメージ機能は ** Radial Damage ** です。

Radial Damageは「範囲」を扱えるので、ダメージの発生地点から一定範囲内にいるアクターにダメージを与えることが出来、ダメージの減衰(発生地点から近いほどダメージが大きく、離れるほどダメージが小さくなる)を表現する事ができます。


UE4のダメージ機能は3つですが、これでほとんどのダメージは実装出来ると思います。

「どれが最適なダメージの与え方か」というのは「何を使ってダメージを与えたいのか」「相手にどのようなダメージ情報を与えたいのか」によって異なります。

ですので、まずはUE4でのダメージの与え方を知り、「何を使ってダメージを与えるのか」という仕様を決めて、それを元にダメージ機能を選択する必要があると思います。

1 Like

ありがとうございます!細かい説明にリンクまで載せて頂きとても助かります!この回答を参考に試してみます。