🐈

【UEFN】統計データのビューモデルの値をウィジェットに表示する

2024/12/10に公開

はじめに

この記事は Unreal Engine (UE) Advent Calendar 2024 の 11日目の記事です。
https://qiita.com/advent-calendar/2024/ue

フォートナイトエコシステム v33.00 から、統計データクリエイター、統計データパワーアップ、統計データカウンターといった仕掛けが追加され、ウィジェットブループリントで統計データのビューモデルが使用できるようになりました。
そこで、統計データのビューモデルの項目をウィジェットに表示してみました。

📍統計データクリエイターで統計データを作成し、統計データパワーアップで統計データを更新します
📍ウィジェットブループリントに、統計データのビューモデルで取得できる項目を表示します
📍バインディングすることにより、統計データパワーアップを拾ったときウィジェットブループリントの表示内容を更新します。Verseは使用しません

https://youtu.be/dBlFcdPq53w

作業環境

フォートナイトエコシステム v33.00(UE5.6)

仕掛けの設定

統計データクリエイター

仕掛けの詳細は、下記公式ドキュメントをご参照ください。


対象プレイヤー を選択することで、統計対象をプレイヤーごとにします。
最大値 を設定することで、ほかの統計関連の仕掛けでレベルを選択できるようになり、統計データパワーアップでレベルを上げたりできるようになります。また、統計データが最大値に達するとレベルが自然と上がります。レベルを使用したいため、最大値 をOn にします。
最大レベル でレベルの上限を指定します。
ユーザーウィジェットに、ウィジェットブループリントを指定します。ウィジェットブループリント作成後、設定します。
リストにウィジェットを表示をOffにする。Onで試したところ、ウィジェットブループリントが部分的に表示されませんでした。

NG:
リストにウィジェットを表示がOn のままでは、Level~Max Value が表示されず。。

備考:
最大値をOff にした場合、統計データのビューモデルのValue のみ更新され、ほかの項目は以下の値で固定となりました。
・Level: 0
・Percentage: 0
・Max Level: 1
・Max Value: 0

統計データパワーアップ

仕掛けの詳細は、下記公式ドキュメントをご参照ください。

統計データの値を上げるためのもの(①)と、統計データのレベルを上げるためのもの(②)の2種類を用意します。
適用する統計データ を統計データクリエイターに設定した名称を選択します。ここでは 獲得数です。連続して取得したかったため、同じ設定で5個設置しています。

適用する統計データ を統計データクリエイターに設定した名称(レベル)を選択します。ここでは 獲得数(レベル)です。

・統計データパワーアップを拾うごとに統計データの値を1追加するため、効果時間0.0 にします。(0.99以上では複数回追加されました。)

ウィジェットブループリントの作成

コンテンツブラウザ上で右クリックでウィジェットブループリントを選択します。

User Widget、または、Modal Dialog Variant いずれかを選択します。私はModal Dialog Variant で作成しましたが、User Widget も大丈夫です。

ビューモデルの選択

UEFN上部の ウィンドウ < ビューモデル を選択し、ビューモデルウィンドウを表示します。
統計データのビューモデル(Device - Stat View Model)で取得できる項目を確認し、ビューモデルを選択します。

ウィジェットの配置

取得した項目を表示するためのTextBlockウィジェットやImageウィジェットを配置します。

バインディング

UEFN上部の ウィンドウ < バインディングを表示 を選択し、バインディングのウィンドウを表示します。
ソフトテクスチャブラシを作成 を使用して、MVVM_UEFN_Stat のIcon を 、「Icon」Imageウィジェットに設定します。
画像のサイズは WidthHeight に設定します。

MVVM_UEFN_Stat のName を、「Name」TextBlockウィジェット のText に設定します。

MVVM_UEFN_StatのValue は数値(整数)のため To Text(Integer) でテキストに変換して、 「Value」TextBlockのTextに設定します

MVVM_UEFN_StatのPercentage は数値(浮動小数点)のため To Text(Double) でテキストに変換して、 「Percentage」TextBlockのTextに設定します。
Rounding Mode は丸め込みの設定です。

MVVM_UEFN_StatのMax Value, Max Level, Level についても同様に、数値型はテキストへの変換を行い、TextBlockのTextに設定します。

おわりに

ウィジェットブループリントのバインディングによって、Verseを使わずとも、表示している項目が動的に更新されるのがとてもいいですね。また、統計データのValueが上限まで到達すると、自然とLevelが上がったり、Value と Level のそれぞれを、統計データパワーアップで更新することができるのも使い勝手がよさそうです。

参考資料

新登場:統計データクリエイター、統計データカウンター、統計データパワーアップの仕掛け(v33.00 リリースノート)

Conversion Functions: IntotoText and InttoDouble

Discussion