0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UEFN / VerseAdvent Calendar 2023

Day 16

【UEFN】Verseでプレイヤーカウンターを利用してみる

Posted at

背景

PVP系の島を作ろうとしたときに現在生存しているキャラクターが指定の人数になったことを起点に何かのイベントを発生させたいというときにプレイヤーカウンターについて知りました。
image.png

やること

指定の人数になったときに何か処理を行わせることです。

動画

実装

デバイス設定

プレイヤーカウンターの設定
image.png
image.png

  • 目標プレイヤー数と同値になったときにイベントを起こすように設定
  • ゾーンを作成してゾーン内にいるプレイヤー数を取得するように設定

全体コード

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

sample_counter_device := class(creative_device):

    @editable
    PlayerCounter:player_counter_device=player_counter_device{}

    OnBegin<override>()<suspends>:void=
        # 指定の人数がゾーンに入ったときに発火する
        PlayerCounter.CountSucceedsEvent.Subscribe(CountSucsses)
        # ゾーンにプレイヤーが入ったときに発火する(そのプレイヤーのagentも取得できる)
        PlayerCounter.CountedEvent.Subscribe(PlayerEntered)
        # ゾーンからプレイヤーが出たときに発火する(そのプレイヤーのagentも取得できる)
        PlayerCounter.RemovedEvent.Subscribe(PlayerExited)

    CountSucsses():void=
        Print("現在ゾーンにいる人数: {PlayerCounter.GetCount()}")

    PlayerEntered(Agnet:agent):void=
        Print("プレイヤーがゾーンに入りました")

    PlayerExited(Agnet:agent):void=
        Print("プレイヤーがゾーンから出ました")

今回は目標数と同値になったときのイベントやゾーンに入ってカウントされたとき、ゾーンから出てカウントが外れた時のイベントをサブスクライブしてみました。

カウント時のイベントでagentが取得できるので何番目に入ったプレイヤーに何かをするということが簡単にできそうですね。

まとめ

プレイヤーカウンターデバイスはPVP系で使えそうなので覚えて損は無さそうです!!

このままデバイスをVerseであつかってみるを全制覇していきたいと思います!!

余談

この度UEFN/Verseに関するオープンコミュニティサーバーを建ち上げました。ちょっとでも興味があれば奮ってご参加くださいませ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?