verseでボリュームを使う方法

verseをつかえば、UEFNが用意する仕掛けを活用して新しい効果をつくりあげることができます。例えば、プレイヤーがボリュームの仕掛けのなかに入ると開かずの扉がひらくみたいな効果をつくることができます。

verseの中では仕掛けをクラスと呼びます。

(つまりverseを理解するためには、仕掛けデバイスのことも並行して理解しておく必要があるとも言えます)

ボリュームのクラス名は、volume_device

verseでボリュームを使用したい場合は、クラス名で声をかけてあげる必要があり、volume_deviceと呼んであげます。

verseのつくりかた① 冒頭に決まり文言をいれる

verseの冒頭にusingと書かれたエリアがあります(下画像の赤枠部分)。ここはverseで使用する道具たちの箱であって、使用するクラス(仕掛け)によって用意する箱が違います。volume_deviceの場合、using { /Fortnite.com/Devices }を用意しますが、これはverseをひらいた初期設定で組み込まれています。他にもusing{~}がありますが、そのまま放置で問題ありません。

verseのつくりかた② volume_deviceを変数として使う

変数とは、数値などを保存しておける場所で、volume_deviceが持つ力を保存しておくこともできます。保存するだけでなく、簡単に使いまわすことができます。volume_deviceという生ものでは実は使いづらいので、一度変数にしてから使っていきます。

使いかたは、以下のようになります。

変数名 : volume_device = volume_device{}

変数名は何でも良いです。では実際に使ってみます、下画像の赤枠部分に記入していきます。

Volume : volume_device = volume_device{}

これ以降で変数Volumeと記述すると、volume_deviceが持つ力を使うことができるようになります。

@editableというのは、UEFNで使用するボリュームを選択できるようになる呪文です。

verseコードをビルドしてみると下画像の赤枠部分のようにVolumeという項目があらわれ、UEFNでボリュームを選択できるようになります。作成しているverseによって影響されるボリュームを指定できるわけです。

verseのつくりかた③ volume_deviceの機能を使う

volume_dviceには力があるとお話をしましたが、それを機能とよびます。

様々な機能を持ちます。代表的な機能は、

・ボリュームをテレポートさせて新しい位置に設置する

などです。実はほかにも機能がありますが、まずはこれらの機能だけ覚えていただければと思います。

この機能は少し難しいプログラミングが必要になるためここでは説明をはぶきます・・。

verseのつくりかた④ volume_deviceの特殊能力を使う

volume_deviceにはほかのクラス(仕掛け)には無い特殊な能力があります。それをイベント機能などと呼んだりします。具体的には、以下のようなイベント機能です。

・プレイヤーがボリュームに入ったときに新しいイベントが起きる

これをクラスの言葉で表現すると、以下のようになります。

・AgentEntersEvent

使用方法は、変数名.AgentEntersEvent.Subscribe(イベント名)と書きます。イベント名は自由にアレンジできます。

今回の場合は、以下のように書きます。

Volume.AgentEntersEvent.Subscribe(OnAgentEntersEvent)

つまり、プレイヤーが変数Volumeで設定されたボリュームに入ったときにOnAgentEntersEventという新しいイベントが起きる、という形になります。

では、OnAgentEntersEventという新しいイベントは何ですか?という記述を最後におこないます。

例えば、ボタンを押した回数を画面に表示させることとします。このように、イベントの内容は自分で決めてプログラミングするわけです。

つまり、下画像のようにかきます。

下画像の青枠部分で変数Countを追加で用意します。この変数をプレイヤーがボリュームに入った回数として活用します。

下画像の赤枠部分でOnAgentEntersEventという新しいイベントの詳細を書いています。プレイヤーがボリュームに入るたびに変数Countがプラス1されて、都度Print(“〇〇”)によって画面に変数Countの値が表示されるという内容です。
※set Count += 1は、set Count = Count + 1を省略して書いた場合の表現。

このように書くと、変数Countで設定されたプレイヤーがボリュームに入った回数が画面に表示される、ということになります。

OnAgentEntersEventというイベントは別名、関数やメソッドなどど呼ばれます。

(Agent:agent):void=に関しては、今回のAgentEntersEventというイベント機能の続きで関数を書く場合には必要になる呪文と思ってください。

セッションを開始して確かめると、プレイヤーがボリュームに入るたびに画面左上に入った回数が表示されます。

verseでボタンを使う方法 サンプルコード

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

Verse_Volume := class(creative_device):

    @editable
    Volume : volume_device = volume_device{}

    var Count : int = 0

    OnBegin<override>()<suspends>:void=
        Volume.AgentEntersEvent.Subscribe(OnAgentEntersEvent)

    OnAgentEntersEvent(Agent:agent):void=
        set Count += 1
        Print("プレイヤーがボリュームに入った回数:{Count}")  

ご質問やご感想はお気軽にコメント欄まで!

コメントする