はじめに
ゲームプレイタグ(Gameplay Tag)を使えば、ゲーム実行中に特定のタグでマークされたアクタを見つけることができます。また、ゲームプレイタグを使用して複数のアクタを操作することもできます。その際、Unreal Editor for Fortnite (UEFN) で プロパティを設定して、参照を割り当てる必要はありません。ゲームプレイタグは Verseコードで作成され、UEFNで割り当てられます。
仕掛けもタグをつけることができて、しかも仕掛けが持つ機能をタグ経由で利用することなどもできます。
タグ付けできる要素
・小道具
・仕掛け
・verseで作成した仕掛け
ゲームプレイタグを作成する
Versev Deviceテンプレを選択し、Gameplay_Tag_Deviceと名前をつけてverseスクリプトを作成します。
冒頭に次のコードを追加します。tagを扱うときに必要なモジュールです。
using { /Verse.org/Simulation/Tags }
このモジュールのなかにtagというクラスがあります。そのクラスを使用して、verseで新しいtagクラスをつくります。定義は、新クラス名:=class(tag){}です。例えば、以下のように書きます。
MyTag := class(tag){}
よって、以下のようなスクリプトとなります。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Simulation/Tags }
MyTag := class(tag){}
ゲームプレイタグを割り当てる
ゲームプレイタグを割り当てるには、次の手順を実行します。この例では仕掛けを使用しますが、他のアクタの場合も手順は同じです。
1.UEFN の [Outliner (アウトライナー)] で、タグ付けする仕掛けを選択し、[Details (詳細)] パネルを開きます。この例では、仕掛けはアイテムスポナーの仕掛けです。
2.詳細パネルで、下画像黄色枠部分にある+追加ボタンをクリックして、Verse Tag Markupをクリックする。
3.詳細パネルにVerseTagMarkupコンポーネントが追加されるので選択します。
4.ゲームプレイタグにて、
Tagsプロパティを編集し、ゲームプレイ タグを追加します。この例では、MyTag が仕掛けに追加されます。
ゲームプレイタグでアクタを見つける
ゲームプレイタグが割り当てられているアクタがあれば、ゲーム中に関数GetCreativeObjectsWithTag() を使用して、ゲームプレイタグでアクタを検索することができます。以下の例では、GetCreativeObjectsWithTag(MyTag{}) を呼び出すと、MyTag が割り当てられているすべてのアクタを含むTaggedDevicesが返されます。
TaggedActors := GetCreativeObjectsWithTag(MyTag{})
GetCreativeObjectsWithTag() は、creative_object_interfaceを実装するすべてのオブジェクトの配列を返します。たとえば、MyTagをレベルにあるアイテムスポナーの仕掛けと、ボタンの仕掛けの両方に割り当てた場合、GetCreativeObjectsWithTag()は両方の仕掛けを返します。
構文 NewObjectReference := object_type_to_cast_to[ObjectReference] を使用すると、GetCreativeObjectsWithTag() の結果をその実装クラスの一つに変換 (型変換) できます。たとえば、アイテムスポナーの仕掛けでアイテムをスポーンしたい場合、関数SpawnItem()を呼び出す前に、結果を item_spawner_device に変換する必要があります。
型変換は 失敗する可能性がある式 です。
for式を使用すると、失敗する可能性がある式を使用できて、for式の中でで使用する新しい変数を作成できます。
TaggedActors := GetCreativeObjectsWithTag(MyTag{})
for (TaggedActor : TaggedActors, ItemDevice := item_spawner_device[TaggedActor]):
ItemDevice.SpawnItem()
ゲームプレイタグをつかい仕掛けの機能をつかってみよう
ここまでをまとめると以下のようなスクリプトとなります。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Simulation/Tags }
MyTag := class(tag){}
Gameplay_Tag_Device := class(creative_device):
OnBegin<override>()<suspends>:void=
TagPlay()
TagPlay():void=
TaggedActors := GetCreativeObjectsWithTag(MyTag{})
for (TaggedActor : TaggedActors, ItemDevice := item_spawner_device[TaggedActor]):
ItemDevice.SpawnItem()
アイテムスポナーの詳細設定では、好きなアイテムを設定し、タイマーに合わせてアイテムをスポーン/リスポーンのどちらもオフにします。
verseデバイスをレベルに設置して、セッションを開始しましょう。
無事にアイテムがスポーンされれば、タグをつかったverseスクリプトは大成功ということになります!
まとめ
タグをつかえば、いろいろな仕掛けの機能を簡単に使えるようになります。
ぜひいろいろ試してみてください。
それでは。また。
お疲れさまでした。
ご質問やご感想はお気軽にコメント欄まで!