【UEFN】Trick Tile Device(トリックタイルの仕掛け)|Verse制御で床を消す・復活させる
こんにちは、UEクリエイターズです。今回もUEFN(Unreal Editor for Fortnite)の使い方について解説していきます。
この記事では、Trick Tile Device(トリックタイルの仕掛け)をVerseで制御する方法について具体的に説明していきます。
動画でも解説しているので参考にしてみてください。
概要

本記事では、Trick Tile Device(トリックタイルの仕掛け)を使用して、特定のトリガーを踏んだ際に床を破壊し、一定時間後に自動修復(リセット)させるギミックを作成します。

通常、仕掛け同士のイベントバインディングでも実装可能ですが、Verseを使用することで以下のメリットがあります。
- 時間制御の正確性:
Sleep関数を用いた正確な待機時間の設定。 - 再利用性: コードをコピー&ペーストするだけで、他のプロジェクトでも同様のギミックを即座に実装可能。
- 拡張性: 条件分岐など、より複雑なゲームロジックへの組み込みが容易。
デスラン(Deathrun)やパズル要素のあるマップ制作において非常に有用なテクニックです。
デバイスの配置と基本設定
まずはエディタ上で必要なアセットとデバイスを配置し、Verseで制御するための下準備を行います。
1. 床と仕掛けの配置
コンテンツブラウザから以下のアイテムを配置します。

- 床タイル:
Galleriesフォルダから任意のフロア(例: Dojo Floor)を選択し配置します。


- Trick Tile Device(トリックタイルの仕掛け):
Devicesフォルダから検索し、配置した床タイルに正確に重なるように設置します。

- Trigger Device(トリガーの仕掛け): 起動スイッチとなるトリガーを配置します。
2. Trick Tile Device の設定
Verse側で完全に制御を行うため、プレイヤーの接触による誤作動を防ぐ設定を行います。Trick Tile Deviceを選択し、Detailsパネルで以下の設定を変更してください。


- User Options :
- Trigger on Player Contact(プレイヤー接触で起動):
False(オフ)- ※これが
Trueのままだと、Verseの処理に関係なくプレイヤーが乗った瞬間にタイルが消えてしまいます。
- ※これが
- Activated at Game Start(ゲーム開始時に起動):
False- ※初期状態でタイルが存在している状態にするため、Falseであることを確認してください。
- Trigger on Player Contact(プレイヤー接触で起動):
Trigger Deviceについては、デフォルト設定のままで問題ありません。
Verseによる制御・実装
次に、Verseスクリプトを作成します。

Verse Explorerから「Add New Verse File to Project」を選択し、device_name に trick_tile_manager と入力して作成します。
実装コード
以下のコードは、トリガーを踏むとタイルが破壊され、5秒後に元通りに復活するロジックです。
コード スニペット
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# トリックタイル制御クラス
trick_tile_manager := class(creative_device):
# エディタで割り当てる仕掛け
@editable
MyTrickTile : trick_tile_device = trick_tile_device{}
@editable
MyTrigger : trigger_device = trigger_device{}
# ゲーム開始時の処理
OnBegin<override>()<suspends>:void=
# トリガーが踏まれたら、OnTriggered関数を実行するように登録
MyTrigger.TriggeredEvent.Subscribe(OnTriggered)
# トリガーが起動した時の処理
OnTriggered(MaybeAgent : ?agent) : void =
# 非同期処理(時間を扱う処理)を開始
spawn{ ActivateAndReset() }
# タイルを消して、復活させる処理
ActivateAndReset()<suspends> : void =
# 1. タイルを起動(消す・破壊する)
MyTrickTile.Trigger()
# 2. 5秒待機する
Sleep(5.0)
# 3. タイルをリセット(復活させる)
MyTrickTile.Reset()
コードのポイント解説
spawn{ ActivateAndReset() }
トリガーイベント自体は即時実行される処理ですが、タイル復活までの待機時間(Sleep)を設けるため、spawn を使用して非同期処理として ActivateAndReset 関数を呼び出しています。
MyTrickTile.Trigger()
Trick Tile DeviceのAPI機能で、タイルを破壊(非表示化)します。
MyTrickTile.Reset()
同じくAPI機能で、破壊されたタイルを元の状態に戻します。
エディタでのコンパイルと紐付け


- Verseコードをビルド(Verse > Build Verse Code)します。
- コンテンツブラウザの
CreativeDevicesフォルダにあるtrick_tile_managerデバイスをレベル上に配置します。 - 配置したデバイスの Details パネルで、
@editableプロパティを設定します。- MyTrickTile: レベル上の Trick Tile Device を指定。
- MyTrigger: レベル上の Trigger Device を指定。
最後に「Push Changes」を行い、動作確認を行います。トリガーを踏んで床が消え、5秒後に復活すれば成功です。
まとめ
今回は Trick Tile Device をVerseで制御する方法を解説しました。
Trigger()で破壊、Reset()で修復が可能。Trigger on Player ContactをFalseにすることで、Verse制御専用にできる。- Verseを用いることで、タイミング調整や再利用が容易になる。
このロジックを応用すれば、一定周期で点滅する足場や、特定の条件を満たさないと通れない隠し通路など、多様なギミックが制作可能です。ぜひ自身のマップに取り入れてみてください。
関連資料
動画版はこちら:https://youtu.be/JwDpaP2vkT0

