[FORTNITE][UEFN]トラッカーの仕掛け&栄誉の仕掛けの使い方
概要
ゲーム内に目標を表示できるトラッカーの仕掛けと、バトルパスXPを獲得できる栄誉の仕掛けについて解説します
ここで作ったサンプルの島は下記のコードでプレイできます
9530-6731-5826
トラッカーの仕掛け
トラッカーの基本的な使い方
トラッカーの仕掛けとは画面上に目標とその進行具合を表示して、ゲームプレイを手助けするものになります。


標準機能として様々なデータを目標として設定できます。また、イベントを利用してオリジナルの目標を設定することもできます

また、画面上に表示できるトラッカーの数はデフォルトでは1になっています。これは島設定で変更することができ、最大3まで設定可能です。

トラッカーの数を3つにした場合はこのようになります

また、島設定のHUD情報タイプをトラッカー(ランクなし)に設定するとマップ下部にタイトルのみを表示することができます。UEFNやドキュメントの説明では、左側の表示を詳細ビュー、右側の表示をリストと表現しています。


次にトラッカーの設定内容を見ていきます。


トラッカーの設定内容でよく使うと思われる物をピックアップしましました
| 項目 | 内容 |
|---|---|
| 目標値 | この値に達したらトラッカーが達成になります |
| 初期の値 | 初期値です |
| ゲーム時に割り当て | ゲーム開始時にトラッカーが設定されます。任意のタイミングで設定したい場合はOFFにします |
| トラッカータイトル | その名の通りタイトルです |
| 説明テキスト | トラッカーの説明です。リストには表示されません |
| 共有 | トラッカーを個人ごとに設定するか、チームや全員で共有するかを設定できます |
| 目標達成時 | 目標を達成したときの挙動を変更できます。トラッカーを終了するに設定すると達成時に画面から除去されます |
| HUDに表示 | トラッカーの表示の仕方を設定します。リスト表示にした場合は島設定を変更する必要があります |
ボタンを使ってトラッカーを進行させてみます
ボタンを設置し、トラッカーの状況を進行させるのイベントに紐づけます

FORTNITEを実行してボタンを押すと進捗が進みます。また、目標を達成すると自動的に表示が消えます

達成後

トラッカーを動的に付与する
ゲーム開始時だけでなく、任意のタイミングでトラッカーを付与することもできます
まず、ゲーム開始時に割り当てと途中参加時に割り当てをOFFにしておきます

そして指定するまたは全員に指定するにボタンやトリガーからのイベントを紐づけます

ボタンを押したときに新規のトラッカーが追加されます。

ここで注意点があります。
トラッカーを追加されたときに3つの内の どの位置に追加されるかは不定 です。運が悪いと 表に出てこない ことがあります。
4つ以上トラッカーが設定されている場合でも、計測自体は正しく動きますがUIとして表示されないのでユーザーが迷ってしまう可能性があります。可能であれば表示されるトラッカーは3個以内になるようにゲームを作っていくといいでしょう
Verseから操作する
VerseからTrackerを操作する簡単なサンプルは下記のようになります。
tracker_deviceのAPIは基本的に引数にagentが必要となりますが、AssignToAllやRemoveFromAllのように全員に影響を与えるAPIはagentの引数が必要ありません。
また、Verseの場合クリエイティブには無かったSetTargetやSetValueなどの値を直接指定するAPIが用意されています。例えばVerseで計算した値を進捗の値として使うなどといった用途に使えます。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
tracker_from_verse_device := class(creative_device):
@editable Button : button_device = button_device{}
@editable Tracker : tracker_device = tracker_device{}
#ボタンが押された
OnClicked(Agent:agent):void=
#Trackerの進捗を進める
Tracker.Increment(Agent)
OnBegin<override>()<suspends>:void=
#ボタンイベントを登録
Button.InteractedWithEvent.Subscribe(OnClicked)
栄誉の仕掛け
栄誉の仕掛けの基本的な使い方
栄誉の仕掛けを使うとプレイしてくれたプレイヤーにバトルパスXPを付与することができます。XPの値を直接指定するわけではなく、相対的な値として指定します。なお、1つの島に設置できる栄誉の仕掛けは最大30個です。
栄誉の仕掛けは、島公開後すぐにXP授与が開始されるわけではありません。しばらく調整が行われた後、XP授与が開始されます。ただ、かなりの回数(数万回?)のプレイ回数が必要なようです。調整の状況はEpic Gamesよりフォートナイト: 栄誉XP調整の状況報告というメールで報告が行われます。


細かく項目を見ていきます

| 項目 | 内容 |
|---|---|
| 名前 | 栄誉の名前になります。後で説明するクリエイティブポータル内で使うので分かりやすい名前を付けておくといいでしょう |
| 説明 | ドキュメントでは「この栄誉の達成条件を含めてみてもよいでしょう。」と書いてあるのですが、どこに表示されるか不明です |
| XP授与 | 与えるXPを設定します。極小~極大の5段階で設定します |
| 授与回数を制限する | 授与回数を制限したい場合はONにします |
| 授与回数 | 上記の制限を設定した場合はここで授与の最大回数を設定します |
ボタンを使って栄誉の仕掛けを実行してみます。
図のように授与するにボタンのイベントを紐づけます。

UEFNで実行してボタンをインタラクトするとテストモードとして表示されます

栄誉の仕掛けは先ほど説明したトラッカーと相性がいいです
栄誉の仕掛けの授与するにトラッカーのWhen Completeに紐づけると、トラッカーの目標が達成されたと同時に栄誉の仕掛けが実行されます。


Verseから栄誉の仕掛けを使う
Verseから栄誉の仕掛けを使うサンプルは下記のとおりです。栄誉の仕掛けには用意されているAPIも少なく、Award関数以外はあまり使うことは無いと思われます。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
award_from_button_device := class(creative_device):
@editable Button : button_device = button_device{}
@editable Accolade : accolades_device = accolades_device{}
#ボタンが押された
OnClicked(Agent:agent):void=
#XPを与える
Accolade.Award(Agent)
OnBegin<override>()<suspends>:void=
#ボタンイベントを登録
Button.InteractedWithEvent.Subscribe(OnClicked)
クリエイターポータルで実行状況を確認する
島を公開後、どれくらい栄誉の仕掛けが実行されたか確認することができます
クリエイターポータルを開き、分析データ→ゲームXPと進みます。該当の島コードを選択すると栄誉の仕掛けがどのくらい実行されたかを確認することができます。つまり、プレイヤーのAnalyticsやゲームログの代わりとして使うことができます。プレイヤーがゲームのどこで詰まっているか解析したり、アンケート機能として使うことが考えられます。この機能自体は栄誉XP調整の状況が調整中でも使うことができます。


まとめ
トラッカー機能を使うことでユーザーに分かりやすい目標を示すことができます。また、栄誉の仕掛けを使うことでXPを与えたり、Analyticsの代わりとして使うことができます。ぜひ使ってみてください
Discussion