【UEFN】Volume Device (ボリュームの仕掛け)の使い方|Verseによるエリア判定とイベント制御
こんにちは、UEクリエイターズです。今回もUEFN(Unreal Editor for Fortnite)の使い方について解説していきます。 この記事では、Volume Device(ボリュームの仕掛け)の基本的な使い方とVerseによる制御方法について具体的に説明していきます。
動画でも解説しているので参考にしてみてください。
概要

Volume Device(ボリュームの仕掛け)は、任意の大きさのエリア(ボリューム)を作成し、そのエリアへの「侵入」や「退出」をトリガーにしてイベントを起動できるデバイスです。

似た機能を持つデバイスにTrigger(トリガーの仕掛け)がありますが、トリガーは「点」や「小さな範囲」での接触を判定するのに対し、Volume Deviceは「大型のエリア」を作成し、その空間内での出入りを監視することに適しています。

Mutator Zoneとの違い
エリア判定を行うデバイスとして、Mutator Zone(ミューテーターゾーンの仕掛け)も一般的ですが、Volume Deviceはより機能がシンプルで軽量であるという利点があります。
単純に「エリアに入った/出た」という判定だけを行いたい場合、多機能なMutator Zoneを使用するのはオーバースペックとなるため、処理負荷の観点からもVolume Deviceの使用が推奨されます。
主な活用例
- 特定エリアに入った際、カメラ視点を一人称に変更する。
- ホラー演出として、エリア侵入時にライトを点灯・消灯させる。
- クリーチャーや野生動物のスポーン制御。
Volume Device の基本設定
まずはエディタ上で必要なデバイスを配置し、プロパティを設定します。
1. Volume Device(ボリュームの仕掛け)

コンテンツブラウザから Volume と検索し、レベル上に配置します。
- Transform(トランスフォーム):
- デフォルトは
1.0 x 1.0 x 1.0です。UEFNにおける「1」は1タイル(約5メートル)に相当します。 - 監視したいエリアの大きさに合わせて、Width(幅)、Depth(奥行き)、Height(高さ) の値を調整してください。
- デフォルトは
- User Options – Function(ユーザーオプション):
- Creatures and Wildlife Enable(クリーチャーと野生動物のイベントが有効):
- デフォルトで
Trueになっています。プレイヤーのみに反応させたい場合は、これをFalseに設定します。
- デフォルトで
- Guards Enable(ガードのイベントが有効):
- 同様に、ガード(NPC)の反応が不要な場合は
Falseに設定します。
- 同様に、ガード(NPC)の反応が不要な場合は
- Creatures and Wildlife Enable(クリーチャーと野生動物のイベントが有効):
2. Customizable Light Device(カスタマイズ可能なライトの仕掛け)

今回はエリア侵入の視覚的フィードバックとしてライトを使用します。
- User Options:
- Initial State(初期状態):
- ゲーム開始時にライトが消えている状態にするため、
False(オフ)に設定します。
- ゲーム開始時にライトが消えている状態にするため、
- Light Color(ライトの色):
- 視認しやすいよう、赤色などに変更しておくと検証がスムーズです。
- Initial State(初期状態):
Verseによる制御・実装


Verseを使用して、「エリアに入ったらライトを点灯」「出たら消灯」というロジックを実装します。
APIリファレンスの確認
Verseでデバイスを制御する際、公式ドキュメントのAPIリファレンスを確認することは非常に重要です。 Volume Device のAPI(volume_device)を確認すると、以下のイベントが用意されていることがわかります。
- AgentEntersEvent: エージェント(プレイヤーやNPC)がエリアに入った時に信号を送信する。
- AgentExitsEvent: エージェントがエリアから出た時に信号を送信する。
また、Customizable Light Device のAPI(customizable_light_device)には以下の関数(機能)があります。
- TurnOn(): ライトを点灯する。
- TurnOff(): ライトを消灯する。
これらを組み合わせることで、意図した挙動を作成します。
Verseコードの実装

新しいVerseファイル(例:volume_sensor_manager)を作成し、以下のコードを記述します。コードのビルド後、作成したデバイスをレベルに配置し、詳細パネルで MyVolume と MyLight にそれぞれレベル上のデバイスを割り当ててください。
コード スニペット
# ----------------------------------------------
# Documentation: https://uecreators.com/volume-device-verse
# ----------------------------------------------
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# 空間センサーを使って照明を制御するデバイス
volume_sensor_manager := class(creative_device):
# エディタで配置したボリューム仕掛けを登録
@editable
MyVolume : volume_device = volume_device{}
# 制御対象のライト(Customizable Light)を登録
@editable
MyLight : customizable_light_device = customizable_light_device{}
# ゲーム開始時の処理
OnBegin<override>()<suspends>:void=
# 1. 誰か(Agent)が入った時のイベントを登録(Subscribe)
MyVolume.AgentEntersEvent.Subscribe(OnAgentEnter)
# 2. 誰か(Agent)が出た時のイベントを登録
MyVolume.AgentExitsEvent.Subscribe(OnAgentExit)
# エリアに入った時に実行される関数
OnAgentEnter(Agent:agent):void=
Print("エリアへの侵入を検知。ライトを点灯します。")
# ライトを点灯させる
MyLight.TurnOn()
# エリアから出た時に実行される関数
OnAgentExit(Agent:agent):void=
Print("エリアからの退出を確認。ライトを消灯します。")
# ライトを消灯させる
MyLight.TurnOff()
まとめ
今回は Volume Device を使用したエリア検出と、Verseによる基本的なイベントハンドリングについて解説しました。
- 軽量なエリア判定: Mutator Zoneよりも負荷が軽いため、単純な出入り判定にはVolume Deviceが最適です。
- イベント駆動:
AgentEntersEventとAgentExitsEventをSubscribeすることで、リアルタイムなインタラクションを作成できます。 - 応用: 今回はライトを制御しましたが、これをカメラデバイスや小道具移動装置(Prop Mover)などに応用することで、より複雑なゲーム演出が可能になります。
APIリファレンスを読み解く力は、Verse開発において最大の武器になります。ぜひ英語ドキュメントにも慣れていきましょう。
関連資料
動画版はこちら:https://youtu.be/gns1_i9Tw4o
