これは現在、実験的機能です。したがって、それらを試したり、フィードバックを提供したり、計画を確認したりできます。 現時点では、カスタム インベントリとアイテムを使用するプロジェクトを公開することはできません。
実験段階でアセットを作成した場合、下位互換性は保証されません。これらの機能の API は変更される場合があります。実験的機能の全てや特定の機能は当社独自の裁量で削除される場合がありますので、ご注意ください。 この機能を使い始める前に、既知の問題のリストを確認してください。
アイテムおよびインベントリのシステムは、多くの種類のゲームで重要な部分を占めます。 シーン グラフのエンティティとコンポーネントを使用すると、フォートナイトのプレイヤー インベントリをカスタマイズし、独自のカスタム アイテムを島に作成できます。
アイテムは、プレイヤーとエージェントが使用および所有できる島のオブジェクトです。 インベントリには、既存のフォートナイト プレイヤーのインベントリと inventory_component を使用して作成したカスタム インベントリが含まれます。 カスタム インベントリとカスタム アイテムは、アイテムを作成、制御、格納するためのシステムです。 このシステムは実験段階の機能であるため、[Project Settings (プロジェクト設定)] で有効にする必要があるほか、UEFN および Verse のシーングラフで使用する必要があります。
シーン グラフの基本
シーン グラフは、Verse に基づいてビルドされたエンティティおよびコンポーネント システムです。 エンティティはコンポーネントのコンテナであり、コンポーネントがエンティティに機能を与えます。 エンティティを親子関係で互いにアタッチすることができ、これによって階層が作成されます。 エンティティやコンポーネントを再利用可能に調整したものをプレハブと呼びます。 エンティティとコンポーネントの詳細については、「 エンティティとコンポーネントを操作する 」を参照してください。 シーン グラフでのプレハブの詳細については、「プレハブとプレハブ インスタンス」を参照してください。
既知の問題
カスタム インベントリおよびアイテムは、UEFN でシーングラフを活用する最初のシステムです。 このため実験的機能のリリースには多くのバグが含まれており、このシステムを使用する際に発生する可能性があります。 既知の問題のリストはここから確認できます。 現在多くの修正と改善が行われており、今後のリリースに含まれる予定です。
アイテム
アイテムは、item_componentを持つシーングラフ内のエンティティです。 デフォルトでは、アイテムのマージやスタックが可能で、比較やソートのためのカテゴリーを設定したり、装備・装備解除を行ったりできます。
カスタム インベントリおよびカスタム アイテムのシステムではシーングラフが使用されるため、アイテムにコンポーネントを追加して機能性を向上することができます。 システムには最初からある程度の基本コンポーネントが備わっています。以下の表で詳細を確認してください。
| コンポーネント | 説明 |
|---|---|
| このコンポーネントはエンティティをアイテムにします。 またこれによってエンティティはスタックされた状態になり、インベントリによって所有および制御されるようになります。 |
| これはフォートナイト UI に表示されるアイテムのアイコンを格納します。 |
| これにはアイテムの名前や説明などのテキスト データが含まれます。 |
| これはゲーム内のアイテムを表すメッシュ アセットを格納します。 |
| このコンポーネントにより、アイテムをフォートナイトのアイテム ピックアップと同じように扱うことができるようになります。 これにはアイテムを拾うためのインタラクション プロンプト、UI、ピックアップ/ドロップのアニメーションが含まれます。 |
アイテムは、各型のコンポーネントを 1 つだけ持つことができます。 これには、そのアイテムにすでにアタッチされている他のコンポーネントから継承しているコンポーネントが含まれます。
たとえば、item_component の子である特定のアイテムのカスタム コンポーネントを作成する場合、カスタム アイテム コンポーネントが汎用的なアイテム コンポーネントの代わりに表示されます。
アイテムのモジュール性
カスタム インベントリとカスタム アイテムを使用することで、適切なモジュラー式を導入できます。 つまり、コンポーネントを使用して、アイテムの機能を追加でビルドできます。 以下は、機能を付与するアイテム エンティティにアタッチされたコンポーネントの例です。
エンティティ
item_component:エンティティをアイテムにします。item_details_component: アイテムの名前や説明などのテキスト データを保存します。item_icon_component: フォートナイト UI に表示されるアイテムのアイコンを格納します。mesh_component: ゲーム内のアイテムを表すメッシュ アセットを保存します。
インベントリ
インベントリは、inventory_component を持つエンティティです。
インベントリはアイテム エンティティのコンテナであり、そのインベントリがアイテムに発生する事柄を制御します。
カスタム インベントリとアイテム システムは、インベントリとサブ インベントリを使用してアイテムを区分化します。 これにより、インベントリ内のアイテムのソート、追加、取得が容易になります。 アイテムは一度に 1 つのインベントリ内にのみ存在できるため、インベントリによってアイテム エンティティの所有権も決まります。
デフォルトではインベントリにはあらゆる種類のアイテムを無限に保持することが可能ですが、 追加できるアイテムを決定する制限やルールを作成することはできます。 そのような制限事項とルールの例:
必須の型クエリを満たしている場合にのみ、アイテムをインベントリに追加します。
インベントリのアイテム数を制限。
インベントリがいっぱいになったときに、優先度の高いアイテムから優先度の低いアイテムを取り除くことができます。
インベントリを単一のアイテムに制限。
AddItem() 関数がターゲット インベントリで解決できない場合、アイテムを保持できる可能性のある他のインベントリを探します。 この関数はシーングラフの階層を使用し、
最初にアイテムを同階層インベントリ (親と最初のターゲット インベントリを共有するインベントリ) に追加しようとして、次に子インベントリ (最初のターゲット インベントリを親とするインベントリ) を調べます。 この関数は、失敗を返す前に階層内のすべてのインベントリをチェックします。
シーン イベントによるインベントリ フィルター
インベントリが AddItem() の関数呼び出しでターゲットとされると、シーン イベント (add_item_event) を受け取ります。 コンポーネントの OnReceive() 関数をオーバーライドすると、カスタム ロジックをトリガーしてアイテムのエントリに影響を与えることができます。 これにより、許可する前にアイテム型をチェックしたり、インベントリにある特定の数のアイテムだけを許可するなどのインベントリ ルールを設定できます。 OnReceive() イベントは基本コンポーネント クラスで実装され、全てのシーングラフ コンポーネントで利用できます。
add_item_event は到達した全てのインベントリから応答を収集します。 インベントリ コンポーネントのイベントを変更して、追加されるアイテムを他のインベントリ コンポーネントから受け取れるようにできます。 このイベントには inventory_with_priority という配列が含まれており、ターゲット インベントリを設定および更新できます。 これにより、ターゲット インベントリを指定してアイテムを受け取ることができます。 シーン イベントがブロードキャストされると、優先度が設定された全てのインベントリがアイテムを受け取るとみなされ、優先度が最も高いインベントリがアイテムを受け取ります。
実験リリースのカスタム インベントリおよびカスタム アイテムでは、add_item_event のみが利用可能ですが、 他のイベントは今後のアップデートで追加される予定です。
フォートナイトのインベントリ
カスタム インベントリとアイテムは、fort_inventory_components と呼ばれる inventory_component サブクラスを多数備えています。 これにはアイテムのフィルターとフォートナイト バトル ロイヤルのプレイヤーのインベントリを模倣する UI 要素があり、
| コンポーネント | 説明 |
|---|---|
| デフォルトのフォートナイト プレイヤー インベントリの収集ツール スロットに対応 |
| デフォルトのフォートナイト プレイヤー インベントリのホットバーに対応 |
| デフォルトのフォートナイト プレイヤー インベントリのビルド ツール ホットバーに対応 |
| デフォルトのフォートナイト プレイヤー インベントリのトラップ スロットに対応 |
| デフォルトのフォートナイト プレイヤー インベントリの通貨セクションに対応 |
| デフォルトのフォートナイト プレイヤー インベントリの収集品セクションに対応 |
| デフォルトのフォートナイト プレイヤー インベントリの弾薬セクションに対応 |
また、独自のサブインベントリ構成を作成して、デフォルトのプレイヤー インベントリに対して追加、削除、置換することもできます。
アイテムとインベントリは、アイテムまたはインベントリ エンティティに追加されるコンポーネントの数に応じて単純または複雑になります。 カスタム インベントリおよびアイテムのシステムは開発が継続されているため、さらに多くの機能を提供するコンポーネントがさらに追加される予定です。