UE5:レベルアップシステムを導入する手順を紹介
Tutorial Tutorial, UE, UE4, UE5, UnrealEngine, アンリアルエンジン, ゲームプログラミング, ゲーム開発, チュートリアル, レベルアップ, ロジック構築, 経験値今回の記事は、Youtubeチャンネルでもやっています
ぜひチャンネルにも遊びにきてね!

ブループリント(アクタ)を作成します
・StaticMesh
・Box Collision

次にブループリントインターフェイスを作成します。
(右クリック→ブループリント→ブループリントインターフェイス)
関数名:Exp(画像右上)
インプット名:Experience(画像右下)
※インプットは右の+から追加してください。
追加ができるとノードのピンが表示されてるはずです。

実装インターフェイスにさきほど作成したブループリントインターフェイスを追加します。
追加ができるとマイブループリントタブのインターフェイスに表示されます。
※追加するには、上部のクラス設定を押下する必要があります。

ブループリント(アクタ)に移動し、図のようにノードを組みます
ExpのExperienceは500に設定
→これが経験値数になります

キャラクターブループリントで変数を3つ作成します
・Experience:Integer型
・Max Experience:Integer型
・Level:Integer型

変数が作成できたら、上記のようにノードを組んでください
経験値を合算して、規定値に到達すると、Trueの通知が流れる処理と言ったらいいのかな
Branchにしていない理由は、一回の通知だけではなく、一回で得た値が、次に設定している規定値を迎えたら再度Trueの通知が流れるようにしたいからです。

While Loopから先は上図のように作成します。

ノードが組めたらウィジェットブループリントを作成します。
・キャンバスパネル
→Text×3

キャラクターブループリントに戻り、作成したウィジェットが、ゲーム画面に表示されるようノードを組みます。
一番上にある、「Add Mapping Context」の実行ピンから作成ください

ウィジェットブループリントのテキストにバインディングを設定していきます。
バインディングは、Text横の🔗のマークから作成していきます。
リンクマークを押下すると「バインディングを作成」と表示されるのでクリック。

まずは、Levelから設定していきましょう。
Castの出力ピンを変数にするのを忘れないように!

次はExpを設定します。

Max Expも先ほどと同様です。

構造体を作成します
(右クリック→ブループリント→構造体)
名称:Exp 型:Integer

データテーブルを作成
(右クリック→その他→データテーブル)
行構造の選択ウィンドウが立ち上がったら、さっき作った構造体を設定。

行の名前を1~10に変更します。
これがレベルになります。
Expは500ずつ値を増やし、最大で5000に設定します。
こちらは、次のレベルに上がるために必要になる経験値になります。

キャラクターブループリントでデータテーブルを設定します。
・ノード名称:Get Data table Row
アウトプットピンは右クリックし、構造体を分割を選択。

Row Nameに接続するには、「To String(型)」が必要になります。
アウトプットに接続しているのは、Max Experience変数になり、新たに変数化しているわけではないです。
※最後にコンパイルしたあと、変数のデフォルト値を設定してください。
・Max Experience:500
・Level:1
Experienceは0のままで大丈夫です

ゲーム内に、好きなだけブループリント(アクタ)を配置してね!

ゲームをプレイしてみましょう!
アクタにキャラクターが重なると500の経験値が入り、レベルが規定値に到達すると次のレベルにアップすると思います。
これでレベルアップシステムの完成です。
レベルごとに攻撃力や体力、防御力を設定したい場合は、構造体の数を増やして、変数としてキャラクターブループリントに設定すると実装できるので、トライしてみてください!