【UEFN】統計データのビューモデルの値をウィジェットに表示する
はじめに
この記事は Unreal Engine (UE) Advent Calendar 2024 の 11日目の記事です。
フォートナイトエコシステム v33.00 から、統計データクリエイター、統計データパワーアップ、統計データカウンターといった仕掛けが追加され、ウィジェットブループリントで統計データのビューモデルが使用できるようになりました。
そこで、統計データのビューモデルの項目をウィジェットに表示してみました。
📍統計データクリエイターで統計データを作成し、統計データパワーアップで統計データを更新します
📍ウィジェットブループリントに、統計データのビューモデルで取得できる項目を表示します
📍バインディングすることにより、統計データパワーアップを拾ったときウィジェットブループリントの表示内容を更新します。Verseは使用しません
作業環境
フォートナイトエコシステム 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ウィジェットに設定します。
画像のサイズは Width
、Height
に設定します。
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 のそれぞれを、統計データパワーアップで更新することができるのも使い勝手がよさそうです。
Discussion