一応、最も基本的なApplyDamageとEventAnyDamageでダメージイベントが発生するようにはなった。しかし、これだけではダメージを与えた方向や受けた方向などがわからない。で、なんとかしなきゃならないのでまたお勉強だ。
UE5の分かりやすい公式ドキュメントが見当たらなかったので、UE4のもので勉強する。
UE4 におけるダメージ機能
https://www.unrealengine.com/ja/blog/damage-in-ue4
ブループリントにおけるダメージ
ブループリントでダメージを扱う場合も同様です。ただし、ダメージの適用とダメージへの反応が、イベントの型によって用意されている点が異なります。ダメージを与える場合は、グローバルにアクセスできるノードが利用できます。ApplyDamage、ApplyPointDamage、ApplyRadialDamage などがそれです。ダメージ イベントに反応するためには、同様の took damage (ダメージを受けた) イベント群が用意されています。これらはアクタ クラスとレベル内のアクタ インスタンス両方のためのものです。
攻撃の種類によって使い分ける必要がある。
ダメージを受ける方は↓これに書いてある。
ApplyDamage → EventAnyDamage
ApplyPointDamage → EventPointDamage(ダメージ方向あり)
ApplyRadialDamage → EventRadialDamage(放射状ダメージ)
追記)
俺の場合はApplyDamageとEventAnyDamageだけで何とかなるかも。
ApplyDamageやEventAnyDamageのパラメータは次のものがある。
Instigator
Instigator とは、ダメージを引き起こす者です。普通は、PlayerController や AIController が Instigator となります。火のダメージの場合は、プレイヤーか、火をつける AI がこれになるでしょう。DamageCauser
causer とは、普通、ダメージを引き起こす物のことです。たとえば、ACampFire アクタの上を歩くと、それが causer となります。
攻撃によってDamageCauserを攻撃者そのものにしたり、手榴弾などのようなものに変えれば攻撃位置と攻撃者を特定できると思う。
コメント