このガイドでは、エディタで直接変更可能な プロパティ を公開することで、Verse コードを変更する必要なく、Verse の仕掛け をよりカスタマイズ可能なものにする方法を説明します。
このアプローチには以下のメリットがあります。
- 迅速なイテレーション:コードを何も変更せずに、クリエイティブの仕掛けに対して異なるコンフィギュレーションを試行します。
- 再利用性:各プロパティと値を変えて、同じ仕掛けを再利用します。たとえば、エディタに公開されている
logic
タイプ プロパティに基づいた特定の動作を有効にできます。 - 簡素化:プロパティに基づいて仕掛けを使用できる方法を簡単に確認します。仕掛けの仕組みを理解するためにコードを調べる必要はありません。
変数をエディタに公開する
変数 を編集可能なプロパティとしてエディタに公開するには、変数に editable
属性 を追加します。
以下のステップを実行して、変数をエディタに公開します。
- 目的の Verse の仕掛けがレベル内に追加されていることを確認します。手順については、Verse の仕掛けをレベルに追加する を参照してください。
- 編集可能な属性を、Verse の仕掛けの定義の一部である変数に追加します。次の例では、string フィールド
GreetingMessage
は編集可能な属性で、デフォルト値"Hello, stranger"
が指定されています。using { /Fortnite.com/Devices} using { /Verse.org/Simulation} hello_world_device := class(creative_device): @editable GreetingMessage:string = "Hello, stranger"
- コードをコンパイルして、レベル内の Verse の仕掛けを更新します。
- UEFN の アウトライナー で Verse の仕掛けを選択し、その [Details (詳細)] パネルを開きます。
- この Verse の仕掛けの [Details] パネルには
GreetingMessage
プロパティが表示されるようになり、ここではその文字列値をこのインスタンス用に変更することができます。
編集可能なプロパティの値の変更は、仕掛けのそのインスタンスのみで反映されます。 レベル内に複数の Verse の仕掛けがある場合は、それぞれの仕掛けでこのプロパティを異なる値に設定できます。
Verse の参照をレベル内のクリエイティブの仕掛けに追加する
以下のステップを実行して、レベル内のクリエイティブの仕掛けに参照を設定します。
- Make sure your Verse device is added to your level. See Adding Your Verse Device to Your Level for steps.
- Verse の仕掛けの定義の一部であるクリエイティブの仕掛けの変数に、編集可能な属性を追加します。次の例ではボタンの仕掛けのフィールド
MyButtonDevice
が編集可能なプロパティであり、デフォルト値としてbutton_device{}
が設定されていますが、これはレベル内のボタンの仕掛けには接続されていません。using { /Fortnite.com/Devices} using { /Verse.org/Simulation} hello_world_device := class(creative_device): @editable MyButtonDevice:button_device = button_device{}
- コードをコンパイルして、レベル内の Verse の仕掛けを更新します。
- UEFN の アウトライナー で Verse の仕掛けを選択し、その [Details (詳細)] パネルを開きます。
- この Verse の仕掛けの [Details] パネルに
MyButtonDevice
プロパティが表示されるようになります。 - Verse の仕掛けの参照先として、レベル内のボタンの仕掛けを選択できます。
- [Pick Actor from scene (シーンからアクタを選択)] をクリックして、ビューポート内の仕掛けを選択します。
- または、ドロップダウンを使って参照先となる仕掛けを検索します。
配列をエディタに公開する
Verse の仕掛けの一部であるサイズ変更可能な 配列 をエディタに公開することができます。以下の例では、「MyButtonDevices
」という名前の編集可能な button_device
配列フィールドを追加します。
- 目的の Verse の仕掛けがレベル内に追加されていることを確認します。手順については、Verse の仕掛けをレベルに追加する を参照してください。
- Verse の仕掛けの定義の一部であるクリエイティブの仕掛けの配列変数に、編集可能な属性を追加します。次の例ではボタンの仕掛けの配列フィールド
MyButtonDevices
が編集可能なプロパティであり、現時点では空の配列です。using { /Fortnite.com/Devices} using { /Verse.org/Simulation} hello_world_device := class(creative_device): @editable MyButtonDevices:[]button_device = array{}
- コードをコンパイルして、レベル内の Verse の仕掛けを更新します。
- UEFN の アウトライナー で Verse の仕掛けを選択し、その [Details (詳細)] パネルを開きます。
- この Verse の仕掛けの [Details] パネルに MyButtonDevices 配列プロパティが表示されるようになりますが、現時点では要素は含まれていません。
-
[Add Element (要素を追加)] ボタンをクリックして、MyButtonDevices 配列に要素を加えます。
エディタで配列から要素を削除したい場合は次を実行します。
- [Remove All Elements (すべての要素を削除)] を選択して配列のすべての要素を削除する。
- または、それぞれの要素の追加アクションを展開して [Delete (削除)] を選択し、各要素を個別に削除する。
レベルに配置する hello_world_device 仕掛けのそれぞれのコピーには MyButtonDevices
用の独自の編集可能な値があり、これを使用して Verse の仕掛けが参照するボタンの仕掛けを選択できます。
カスタム型をエディタに公開する
クラス などの独自のカスタム型を、編集可能なプロパティとしてエディタに公開することができます。
- 目的の Verse の仕掛けがレベル内に追加されていることを確認します。手順については、Verse の仕掛けをレベルに追加する を参照してください。
concrete
指定子をクラス定義に追加します。フィールドをエディタで表示するために、これらをすべて初期化する必要があるため、concrete
指定子が必要になります。example := class<concrete>: MyData:float = 0.0 MyDevice:button_device = button_device{} IsEnabled:logic = false
- エディタ内で表示可能なプロパティとして設定する、クラス内の各変数について、
editable
属性を追加します。example := class<concrete>: @editable MyData:float = 0.0 @editable MyDevice:button_device = button_device{} IsEnabled:logic = false
- Verse の仕掛けの定義内でカスタム型の変数を定義して
editable
属性を追加し、エディタ内で表示されるようにします。using { /Fortnite.com/Devices} using { /Verse.org/Simulation} example := class<concrete>: @editable MyData:float = 0.0 @editable MyDevice:button_device = button_device{} IsEnabled:logic = false hello_world_device := class(creative_device): @editable MyExample:example = example{}
- コードをコンパイルして、レベル内の Verse の仕掛けを更新します。
- UEFN の アウトライナー で Verse の仕掛けを選択し、その [Details (詳細)] パネルを開きます。
- この Verse の仕掛けの [Details] パネルに
MyExample
セクションが表示されるようになります。 MyExample
セクションを展開すると、MyData プロパティと MyDevice プロパティがあることがわかります。IsEnabled
プロパティはeditable
属性を持たないため、ここには表示されません。
編集可能なプロパティをカスタム型の配列にすることで、Verse の仕掛けに提供する情報の柔軟性が高まります。 たとえば、仕掛けの参照を使って独自のゲームボード クラスを定義することができます。 Verse の仕掛けにこれらのゲームボードの配列があることで、ゲーム内のレベルの数を選択し、それぞれに特有の設定を加えることができるようになります。 さらに、クラスの定義内で編集可能な配列を定義して、提供する情報の拡張性とカスタマイズ性を高めることができます。
サポートされる編集可能な型
現時点では、編集可能なプロパティとして以下の 型 をエディタに公開できます。
次のステップ:Verse と仕掛けイベント
Verse を使って仕掛けをコントロールする基本方法をつかめたと思いますが、さらに拡張する余地があります。 「仕掛けのインタラクションをコード化する」で仕掛けをさらにカスタマイズする方法について解説します。ボタンなどの仕掛けにより送られたイベントに反応する方法を紹介します。プレイヤーのアクションに応じてダイナミックなゲームプレイ エクスペリエンスを生み出すことができます。