Skip to main content

スタック

Economy v2 が一般提供 (GA) されました。サポートとフィードバックについては、PlayFab フォーラム を参照してください。
Economy V2 の Inventory サービスは、インベントリのニーズに対してより高い柔軟性とサポートを追加できるスタックの概念を導入します。スタックにより、同じアイテムの独立した異なるインスタンスを同じインベントリ内に存在させることができます。この機能により、ゲーム内での整理シナリオや、アイテム プロパティを別々に設定する機能などが実現します。 同じ Id を持つアイテムは、それぞれ独自の数量を持ち、StackId で区別されるアイテムのスタックとして格納できます。指定されない場合、インベントリ アクションは通常、StackId が default のデフォルト スタックを使用します。デフォルト スタックは削除できます。次に StackId なし (またはデフォルトの StackId を使用) の追加/転送が発生すると、デフォルト スタックが再作成されます。

インベントリとスタックの管理

以下は Inventory API と、スタックとの相互作用に関する詳細な解説です。

Add Inventory Items

AddInventoryItems API では、Item パラメーターで StackId を定義できます。このパラメーターは、増加させるスタック、または作成される新しいスタックの ID を定義します。 StackId を含む AddInventoryItems リクエストの例:
上記のリクエストは、数量 5 で StackId が NewStack のアイテムの新しいスタックを作成するか、NewStack がすでに存在する場合は既存のスタックに 5 を追加します。

Subtract Inventory Items

SubtractInventoryItems API では、StackId を使用して減算元のスタックを定義します。さらに、減算した結果スタックの数量が 0 になった場合にスタックを削除する DeleteEmptyStacks ブール値を設定できます。 現在のスタック数量よりも多く減算しようとすると、エラーが発生します。 StackId を含む SubtractInventoryItems リクエストの例:
上記のリクエストは、ID が NewStack のスタックから 5 を減算し、スタックの数量が正確に 5 であればスタックを削除します。

Update Inventory Items

UpdateInventoryItems API では、Item パラメーターで StackId を定義できます。このパラメーターは、更新するスタック、または作成される新しいスタックの ID を定義します。 UpdateInventoryItems リクエストの例:
上記のリクエストは、数量 5 で StackId が NewStack のアイテムの新しいスタックを作成するか、NewStack がすでに存在する場合はその数量を 5 に設定します。

Delete Inventory Items

DeleteInventoryItems API は、プレイヤーのインベントリからアイテムのスタック全体を削除するために使用されます。削除するアイテムの特定のスタックを定義するために StackId を指定できます。 DeleteInventoryItems リクエストの例:

Purchase Inventory Items

PurchaseInventoryItems API は、カタログで定義されたアイテムの価格を使用し、プレイヤーのインベントリからコストを差し引いて、希望する数量のアイテムと交換します。購入したい Item と、購入したい Amount を指定する必要があります。 スタックを使用して購入する場合、関連するいくつかのパラメーターがあります。
  • PriceAmounts では、各価格アイテム (つまり支払われるアイテム) にオプションの StackId を定義して、支払われるアイテムがどのスタックから差し引かれるかを定義できます
  • Item オブジェクトでは、受け取るアイテムが配置されるスタックを表すオプションの StackId を定義できます
  • 減算した結果スタックの数量が 0 になった場合にスタックを削除する DeleteEmptyStacks ブール値を設定できます。
アイテムの購入に関する詳細については、PurchaseInventoryItems を参照してください。
スタックを使用した PurchaseInventoryItems リクエストの例:

Transfer Inventory Items

スタックを使用して TransferInventoryItems API を使用する場合、関連するいくつかのパラメーターがあります。
  • GivingItem オブジェクトでは、渡すアイテムが取り出されるスタックを表すオプションの StackId を定義できます
  • ReceivingItem オブジェクトでは、受け取るアイテムが配置されるスタックを表すオプションの StackId を定義できます
  • GivingItem の数量によりスタックの数量が 0 になった場合にスタックを削除する DeleteEmptyStacks ブール値を設定できます
スタックを使用した TransferInventoryItems リクエストの例:

ExecuteInventoryOperations API

ExecuteInventoryOperations API の Operation オブジェクトで StackIdDeleteEmptyStacks パラメーターを使用できます。これらのパラメーターを使用すると、スタックを使用した複数のインベントリ操作をバッチ処理できます。 スタックを使用した ExecuteInventoryOperations リクエストの例:

DisplayProperties と NewStackValues でカスタム プロパティを追加する

DisplayProperties パラメーターを使用して、インベントリ アイテムにカスタム アイテム プロパティを設定できます。プロパティの設定は AddInventoryItemsPurchaseInventoryItemsTransferInventoryItems API で行えますが、新しいスタックが作成される場合にのみ 可能です。新しいアイテムの表示プロパティを設定するには、API リクエストで NewStackValues パラメーターを設定する必要があります。 NewStackValues を含む AddInventoryItems リクエストの例:
既存のアイテムの表示プロパティを更新するには、UpdateInventoryItems API を使用してプロパティを直接変更できます。
最終更新日 2026年8月13日