攻撃が当たった相手が敵ならHPを減らす。木箱なら壊す。対象が増えるたびに「敵か? 箱か? タワーか?」とCastを並べていると、攻撃側にも相手の種類を追加し続けることになります。
Blueprint Interface を使うと、相手へ「この量のダメージを受けてください」と同じ呼び方で頼めます。どう反応するかは、受け取った側が決めます。新しい対象を追加しても、攻撃側の呼び出しを増やさずに済む仕組みです。
この記事では、敵と箱のHPを実際に減らしてから、Castとの違いや参照関係の調べ方へ進みます。通信3方式の使い分けで紹介したInterfaceを、自分で作って使うための実践です。
この記事でわかること
- Interfaceに決めることと、受け手に作る処理の違い
- 同じMessageノードで、敵と箱のHPを減らす方法
- Targetの指定と、未対応の相手に送ったときの動き
- Castの使い分けと、Reference Viewerで確認できること
Interfaceは、共通の依頼書
敵と箱では、見た目も役割も違います。それでも「ダメージを受ける」という入口をそろえれば、攻撃側はどちらにも同じように頼めます。
Interfaceには、その入口の 名前と、受け渡す値 を決めます。今回は ReceiveWeaponHit という名前で、ダメージ量を渡すことにします。
| 担当 | 今回決めること |
|---|---|
| BPI_Damageable | ReceiveWeaponHitという機能に、DamageAmountという小数値を渡す |
| 敵・箱 | ReceiveWeaponHitを受けたら、自分のHPを減らす |
| 攻撃側 | 対象を指定し、ReceiveWeaponHitで25を渡す |
実装する とは、入口の先に実際の処理を書くことです。Interfaceは依頼書なので、HPを保管する変数や、HPを減らす処理は持ちません。その中 身は敵や箱のBlueprintへ作ります。

呼び出すときには、Targetという宛先が必要 です。同じMessageノードを使えても、1回の呼び出しで処理するのは指定した相手です。周囲の敵や箱へ一斉に届くわけではありません。
実践:敵と箱へ25ダメージを渡す
Fキーで、指定したActorへ25ダメージを渡す小さな実験を作ります。敵を指定するとHP100→75、箱を指定すると30→5。相手を変えても、送る側のグラフは同じ という点を確かめます。

UE5のThird PersonテンプレートをBlueprintで作り、VariantがあればNoneを選びます。新しい練習用フォルダへ作れば、既存記事の同名Blueprintと混ざりません。変数の作成とGet・Setは変数の基礎が前提です。
今回はHPの変化をPrint Stringで確認します。攻撃アニメーションや死亡演出は付けず、HPが0になってもActorは残します。