UE5:一定時間だけ武器の攻撃力を増加させる!
Tutorial Tutorial, UE, UE4, UE5, UnrealEngine, アンリアルエンジン, ゲームプログラミング, ゲーム開発, ダメージ, チュートリアル, ロジック構築, 強化, 攻撃, 教科本記事では、ボタンを押下することで一定時間武器を強化して、武器の攻撃力を増加させる処理を作成していきたいと思います!
記事内で、諸々の輪郭が光っているように見えますが、前回投稿したこちらの記事にて作成しています。マテリアルの設定からブループリントの設定まで記事になっているので、お時間があれば覗いていったください。

まずは、こちらの画像をご覧ください。
キャラクターが攻撃アニメーションを実行し、トレースにアクタがヒットするたびに100の値が出力されています。
構造体とテーブルの作成

今回は「Level:Integer型」と「DamageValue:Float型」に2種類を作成していきましょう!

作成した構造体を使ってデータテーブルを作成します!
とりあえずレベル9まで作成してみました!
データテーブルは多くの情報を管理することができるので非常に便利です。また、入力項目が多くなる傾向にありますが、CSVを使えるので項目が多くなる場合はエクセルとかで作ったのを読み込ませると早いですよ
キャラクターブループリントの設定

「攻撃アニメーション」→「ヒット判定」→「画像」に繋がります!
通知が流れてきたときに設定している「Level:Integer値」に紐づいている「DamageValue:Float型」の値が流れるという処理です!
Wepone LevelはDataTableのLevelを変数にしてGetで配置しています!

最後に配置されている「Damage」ノードは、デフォルトであるものではなく、ブループリントインターフェイスで作成したものになります。

ブループリントインターフェイスには、ダメージ数を入れられるよう単純にFloat型のインプットキーを作成しています。
これにより当たり判定を受けたアクタにクラス設定から追加してあげると、一つのブループリントインターフェイスを使って色んなアクタにダメージを渡せるようになるので便利です。
処理を実装してみたいだけであれば必要ありません。

本記事のみをご覧の方は、Set Overlay Materialを除いた状態でノード組をしてください!
✅本記事のみご覧の方が使用するノード
・1(アクションキー)
・Set Timer by Event
・AttackUp(CustomEvent)
・Weapone Level(DetaTableの変数)
AttackUpってイベント名にしてるけど、そのイベント通知は攻撃力が落ちる処理になるので、ダウンが正解でした・・・
✅前の記事から参照の方へ
・Set Overlay Materialは今回の記事では手持ちの武器に設定しています。なので、1を押下するとキャラクターではなく、武器の輪郭が光るようになります!
★輪郭を光らせるには?★
ゲームをプレイしてみよう!

さぁ!実際にゲームをプレイしてみましょう!
左上のデバッグを見てください!最初のHelloなどが通知されている辺りに100とデバッグが表示されていると思います。これはまだ1のキーを押下する前の攻撃値(DamageValue値)になり、ほとんどの通知の数を占める900のデバッグが1のキーを押下した後になります。
値は100から900に増え与えるダメージが増加する処理を組めていることが分かりますね!

そして、こちらは先ほどとは逆に序盤のデバッグ数値は900になっていますが、後半のデバッグ数値は100になっていることが分かると思います。
これは、Set Timer by EventのTimeに3を設定しているので、1のキーを押してからゲーム内で3秒経過するとLevelが1になりDamageValueが100に戻る処理を正確に組めているということです。
つまり、ここまでの処理ができていれば、本記事の「一定時間だけ武器の攻撃力を増加させる!」処理は完成となります!
ただ、実装するには「何かアイテムを使用/入手したとき」、「MPを消費してスキルを使ったとき」など様々な設定が必要になります。
※今回だと、1のキーを押下するたびに処理通知が流れるので、実質無限に武器強化状態になります。
YouTube
YouTubeなどでも、時おり活動をしていますのでよかったらチャンネル登録しておいて貰えると嬉しいです!
上の動画は、Widgetのスライダーを利用してカメラの距離を変更する!という動画です。
その他過去にはゲーム実況やゲーム制作に関する動画など投稿しています!