UEFN / Verse

【UEFN】Volume Device (ボリュームの仕掛け)の使い方|Verseによるエリア判定とイベント制御

UEクリエイターズ【運営】

こんにちは、UEクリエイターズです。今回もUEFN(Unreal Editor for Fortnite)の使い方について解説していきます。 この記事では、Volume Device(ボリュームの仕掛け)の基本的な使い方とVerseによる制御方法について具体的に説明していきます。

動画でも解説しているので参考にしてみてください。

概要

【UEFN】Volume Device (ボリュームの仕掛け)の使い方|Verseによるエリア判定とイベント制御

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

【UEFN】トリガーの仕掛けの使い方

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

RECOMMEND
【UEFN】トリガーの仕掛けの使い方|非表示化でRPGやホラーマップを作成
【UEFN】トリガーの仕掛けの使い方|非表示化でRPGやホラーマップを作成

Mutator Zoneとの違い

エリア判定を行うデバイスとして、Mutator Zone(ミューテーターゾーンの仕掛け)も一般的ですが、Volume Deviceはより機能がシンプルで軽量であるという利点があります。

単純に「エリアに入った/出た」という判定だけを行いたい場合、多機能なMutator Zoneを使用するのはオーバースペックとなるため、処理負荷の観点からもVolume Deviceの使用が推奨されます。

主な活用例

  • 特定エリアに入った際、カメラ視点を一人称に変更する。
  • ホラー演出として、エリア侵入時にライトを点灯・消灯させる。
  • クリーチャーや野生動物のスポーン制御。

Volume Device の基本設定

まずはエディタ上で必要なデバイスを配置し、プロパティを設定します。

1. Volume Device(ボリュームの仕掛け)

【UEFN】Volume Device (ボリュームの仕掛け)の使い方|Verseによるエリア判定とイベント制御

コンテンツブラウザから 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 に設定します。

2. Customizable Light Device(カスタマイズ可能なライトの仕掛け)

今回はエリア侵入の視覚的フィードバックとしてライトを使用します。

  • User Options:
    • Initial State(初期状態):
      • ゲーム開始時にライトが消えている状態にするため、False(オフ)に設定します。
    • Light Color(ライトの色):
      • 視認しやすいよう、赤色などに変更しておくと検証がスムーズです。

Verseによる制御・実装

Verseを使用して、「エリアに入ったらライトを点灯」「出たら消灯」というロジックを実装します。

APIリファレンスの確認

Verseでデバイスを制御する際、公式ドキュメントのAPIリファレンスを確認することは非常に重要です。 Volume Device のAPI(volume_device)を確認すると、以下のイベントが用意されていることがわかります。

  • AgentEntersEvent: エージェント(プレイヤーやNPC)がエリアに入った時に信号を送信する。
  • AgentExitsEvent: エージェントがエリアから出た時に信号を送信する。

また、Customizable Light Device のAPI(customizable_light_device)には以下の関数(機能)があります。

  • TurnOn(): ライトを点灯する。
  • TurnOff(): ライトを消灯する。

これらを組み合わせることで、意図した挙動を作成します。

参考資料

volume_device class|Verse API Reference

customizable_light_device class|Verse API Reference

Verseコードの実装

新しいVerseファイル(例:volume_sensor_manager)を作成し、以下のコードを記述します。コードのビルド後、作成したデバイスをレベルに配置し、詳細パネルで MyVolumeMyLight にそれぞれレベル上のデバイスを割り当ててください。

コード スニペット

# ----------------------------------------------
# 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が最適です。
  • イベント駆動: AgentEntersEventAgentExitsEventSubscribe することで、リアルタイムなインタラクションを作成できます。
  • 応用: 今回はライトを制御しましたが、これをカメラデバイスや小道具移動装置(Prop Mover)などに応用することで、より複雑なゲーム演出が可能になります。

APIリファレンスを読み解く力は、Verse開発において最大の武器になります。ぜひ英語ドキュメントにも慣れていきましょう。

関連資料

動画版はこちら:https://youtu.be/gns1_i9Tw4o

参考資料

Volume Devices|Fortnite Documentation

volume_device class|Verse API Reference

customizable_light_device class|Verse API Reference

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


ABOUT ME
UECREATORS
UECREATORS
メタバース制作スタジオ
UEFN/Verse言語に特化した、Fortnite専門メタバース制作スタジオ「UECREATORS」の公式サイトです。当サイトでは、UEFNを用いたゲーム制作技術、Verseプログラミングの実装方法、3D空間設計のノウハウを発信しています。
【法人様・事業者様へ】UEFNを活用したメタバース空間の受託制作・開発支援を行っております。制作のご相談・お見積もりは、お問い合わせフォームより承っております。
Recommend
こちらの記事もどうぞ
記事URLをコピーしました