【UEFN】Tracker Device(トラッカーの仕掛け)の使い方|Verse制御と持続データ
こんにちは、UEクリエイターズです。今回もUEFN(Unreal Editor for Fortnite)の使い方について解説していきます。
この記事では、トラッカーの仕掛け(Tracker Device)をVerseを使って制御する方法について具体的に説明していきます。
動画でも解説しているので参考にしてみてください。
トラッカーの仕掛け(Tracker Device)とは?

トラッカーの仕掛け(Tracker Device)は、特定の条件で数字を増やしていき、目標値に達した際にイベントを発生させるための仕掛けです。クエストやミッションの管理システムを作る上での基礎となる非常に重要なデバイスです。

画面の左上に表示されるHUD(ヘッドアップディスプレイ)を通じて、プレイヤーに「あとどれくらいでクリアか」という進捗状況を視覚的に伝える機能も持っています。
今回は、ボタンを押すと数値が加算され、目標値に達するとクリアとなるシンプルな仕組みをVerseで作っていきます。
デバイスの配置と設定
まずは、必要なデバイスをレベル上に配置し、初期設定を行います。
デバイスの配置

コンテンツブラウザから以下の2つのデバイスを検索し、ビューポートに配置してください。
- トラッカー(Tracker Device)
- ボタン(Button Device)
トラッカーデバイスのオプション設定

トラッカーの仕掛け(Tracker Device)を選択し、詳細パネル(Details)で以下の設定を変更します。
- 統計データ(Stats to Track) デフォルトでは「撃破数(Eliminations)」になっていますが、これを「イベント(Events)」に変更します。これにより、敵を倒した時ではなく、Verse側で指定したタイミング(イベント)でカウントが進むようになります。
- ターゲット値(Target Value) 今回はテスト用に「5」に設定します。この数値に達するとクリア判定になります。
- ゲーム開始時に割り当て(Assign on Game Start) デフォルトのTrueからFalseに変更します。 Trueのままだとゲーム開始と同時に自動でHUDが表示されますが、今回はVerseを使って「こちらの意図したタイミング」でプレイヤーに割り当てる制御を行うため、一旦オフにします。
ボタンデバイスについては、今回は特に設定変更は必要ありません。
Verseスクリプトの作成
続いて、デバイスを制御するためのVerseコードを作成します。
Verseファイルの作成

- Verse Explorerを開きます。
- プロジェクト名を右クリックし、「Add new Verse file to project」を選択します。
- デバイス名を
verse_tracker_tutorialと入力し、作成(Create)します。
Verseコードの記述
作成されたファイルを開き、以下のコードを記述(コピペ)してください。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# 基本的なトラッカー制御デバイス
verse_tracker_tutorial := class(creative_device):
# トラッカーの仕掛け(目標管理)
@editable
MyTracker : tracker_device = tracker_device{}
# テスト用のボタンの仕掛け(これを押すと目標値が加算される)
@editable
MyButton : button_device = button_device{}
OnBegin<override>()<suspends>:void=
# 1. ゲーム開始時に、全プレイヤーにトラッカーを表示する
# Assign(Agent) の使用例
for(Player : GetPlayspace().GetPlayers()):
MyTracker.Assign(Player)
# 2. イベントの登録
# ボタンが押されたら OnButtonInteracted を実行
MyButton.InteractedWithEvent.Subscribe(OnButtonInteracted)
# 目標を達成したら OnQuestCompleted を実行
MyTracker.CompleteEvent.Subscribe(OnQuestCompleted)
# ボタンを押した時の処理
OnButtonInteracted(Agent:agent):void=
# Increment(Agent) の使用例
# デフォルトでは目標値が「1」加算される
MyTracker.Increment(Agent)
Print("クエスト目標値が 1 増えました")
# クエスト達成時の処理
OnQuestCompleted(Agent:agent):void=
Print("おめでとうございます!クエストクリアです!")
コードの解説
このコードで行っている主な処理は以下の3点です。
- 割り当て(Assign)
OnBegin内で実行しているAssign関数は、プレイヤーにトラッカーを紐付ける役割を持ちます。これにより、プレイヤーの画面にクエストの進捗HUDが表示されます。 - 加算(Increment) ボタンを押した時に実行される
Increment関数は、トラッカーの進行度を増やす機能です。デフォルトでは「1」ずつ加算されます。 - イベント登録(Subscribe) ボタンがインタラクトされた時と、トラッカーが完了(コンプリート)した時のイベントをそれぞれ登録しています。これにより、目標達成時にお祝いのメッセージを出すなどの処理が可能になります。
エディタでのデバイス紐付け
コードをビルド(Verseメニューから「Build Verse Code」を選択)したら、エディタに戻ってデバイスの紐付けを行います。


- コンテンツブラウザのCreativeDevicesフォルダにある
verse_tracker_tutorialデバイスをレベル上に配置します。 - 配置したVerseデバイスを選択します。
- 詳細パネルにある MyTracker のスポイトツールを使い、レベル上のトラッカーデバイスを選択します。
- 同様に MyButton にレベル上のボタンデバイスを選択します。
これでVerseコードと実際のデバイスが連携されました。
動作確認
「セッションを開始」してテストプレイを行ってみましょう。


- ゲーム開始時、左上にトラッカー(0/5など)が表示されていることを確認します。
- ボタンを押すと、ログに「目標値が1増えました」と表示され、HUDの数値も加算されます。
- ボタンを5回押して目標値に達すると、「クエストクリアです!」というログが表示され、クエスト完了となります。
セーブ機能(持続データ)の活用
Tracker Deviceには、進行状況を保存する持続データ(Persistence)が備わっています。これを利用することで、プレイヤーが一度ゲームをやめても、次回続きからクエストを再開できるようになります。
設定方法
トラッカーデバイスの詳細パネルにある以下の項目を設定します。

- 持続データを使用(Use Persistence) これをTrue(オン)にすると、セーブ機能が有効になります。
- 自動セーブ/自動ロード これらもTrue(オン)に設定します。
この設定を行うことで、長期的なクエストや、日をまたいで遊ぶRPGのようなゲームシステムを構築することが可能になります。
なお、トラッカーの対象を個人ではなくチームにした場合などで、プレイヤーが再参加した際のデータの扱い(衝突の解決)については、公式ドキュメントなども参照して詳細な挙動を確認することをおすすめします。
まとめ
今回はトラッカーの仕掛け(Tracker Device)の基本的な使い方と、Verseによる制御方法、そして持続データについて解説しました。
トラッカーの仕掛け(Tracker Device)は「目標を設定し、達成したらイベントを起こす」というゲーム制作の根幹に関わる重要な仕掛けです。今回のロジックを応用すれば、様々なクエストシステムを作ることができますので、ぜひ試してみてください。
関連資料
動画での解説:https://youtu.be/FJNdtxkDAzs
