⛹️

【UE5】EUWを使って外部からダメージを与えるデバッグ機能を作る

2024/12/25に公開

概要

この記事はUnreal Engine (UE) Advent Calendar 2024のシリーズ3の25日目の代理投稿記事となります。

今回は題名にある通り、EUWを使ったデバッグ機能についての記事となります。

想定してるイメージは以下となります。

https://x.com/daria_nicht/status/1873789008205275376

やり方

以下の手順でBPやWidgetを作成していきます。

  • HPバーのウィジェットを作成
  • ダメージ識別用のインターフェースを作成
  • HPバーのウィジェットをコンポーネントとして持ったアクターの作成
  • ダメージ値設定用のSpinBoxとボタンを用意したEUWを作成

HPバーのウィジェットを作成

確認のため、CanvasPanelにProgressBarだけ設定したウィジェットを作成します。

BPの方は関数にダメージを食らったらPercentを変更するだけにします。

ダメージ識別用のインターフェースを作成

ダメージ識別用のインターフェースを作成し、ダメージのパーセントを受け取れるようにApply関数を作成します。

HPバーのウィジェットをコンポーネントとして持ったアクターの作成

Actorを作成し、簡易的なCubeと先ほど作成したWidgetを設定できるようにコンポーネントを追加します。

クラス設定で先程作成したダメージ識別用のインターフェースを実装します。

処理はダメージ値を受け取ったらHPバーを更新できるようにします。

ダメージ値設定用のSpinBoxとボタンを用意したEUWを作成

Widgetの構成は下記となります。

SpinBoxは数字だけ設定できると聞いたので採用してます。

ボタンが押されたときの処理は以下となります。

GetAllActorsOfClassで全てのクラスを取得し、対象のインターフェースが実装されていたらダメージを与えるようにしています。

EUWを実行し、値を変更してボタンを押して冒頭のイメージ通りにダメージを与えられたら成功です。

終わりに

25日目の締めが短めで恐縮ですが記事は以上となります。
ここまで読んでいただきありがとうございました。

Discussion