カタログ (V2)

Important

エコノミー v2 が一般提供になりました。 サポートとフィードバックについては、PlayFab フォーラム をご利用ください。

作成者エンティティの種類および ID

ゲーム マネージャーまたは API を使用してタイトル レベルでカタログ アイテムを作成するだけでなく、プレイヤーの代わりに作成することもできます。 タイトル プレイヤー アカウント ID が必要です (クロスタイトルである Master Player Account ID ではない)。

{
  "Item": {
    "CreatorEntity": {
      "Type": "title_player_account",
      "Id": "74657374696E6731"
    },
    "Type": "catalogItem",
    "Title": {
      "NEUTRAL": "Fire Sword!"
    },
    "Description": {
      "NEUTRAL": "Fire Sword! (It's really cool)"
    },
    "ContentType": "Game Item",
    "AlternateIds": [
        {
          "Type": "FriendlyId",
          "Value": "fire_sword"
        }
    ]
  },
  "Publish": false
}

Keywords

キーワードは、ユーザーが検索できるようにするためのローカライズされた文字列の一覧です。 これらは、ゲーム内ストアで関連するアイテムを検索するユーザーに役立ちます。

  • キーワードはローカライズ キー別のインデックスです。
  • キーワードは、任意のアイテムに対して省略可能です。
  • アイテムには、リストされているキーワードの任意の数が含まれていることがあります。
  • 以下に例を示します。
{
    "NEUTRAL": { "Values": ["fire", "weapon"] },
    "de-DE": { "Values": ["feuer", "klingenwaffen"] },
    "en-US": { "Values": ["fire", "weapon"] },
    "fr-FR": { "Values":["enflammé","arme"] }
}

説明

説明フィールドは、各アイテムで表示するためにローカライズされた文字列の一覧です。

  • ローカライズ キーはインデックスとして使用されます。
  • 説明は、任意のアイテムに対して省略可能です。
  • 以下に例を示します。
{
    "NEUTRAL": "Fire Sword! (It's really cool)",
    "de-DE": "Feuer Schwert! (Es ist wirklich cool)",
    "en-US": "Fire Sword! (It's really cool)",
    "fr-FR": "Épée de feu! (C'est vraiment cool)"
}

コンテンツの種類

⚙️ > タイトル設定 > エコノミー (V2) > カタログ (V2) でアイテムを整理できるようにカスタム コンテンツ タイプを構成します。

  • コンテンツ タイプは、検索時にパフォーマンスの高いフィルターとして存在し、アイテムをグループ化しやすくします。
  • コンテンツ タイプには任意の文字列を指定できますが、アイテムごとに 1 つだけ指定できます。
  • コンテンツ タイプの例を次に示します。
    • weapon
    • armor
    • gem
    • pet
    • lootbox
    • appstorebundle
    • playerattribute

代替 ID

代替 ID を使用すると、コードまたはサード パーティの API で Catalog v2 項目を簡単に操作できます。 一部の代替 ID には、フレンドリ ID、またはマーケットプレース ID が含まれます。

フレンドリ ID

フレンドリ ID は、項目の "コンピューター名" です。コードで参照しやすい名前です。 フレンドリ ID はすべてのアイテムに対して省略可能であり、カタログ内で一意である必要があります。

{
  "Item": {
    "Type": "catalogItem",
    "Title": {
      "NEUTRAL": "Fire Sword!"
    },
    "Description": {
      "NEUTRAL": "Fire Sword! (It's really cool)"
    },
    "ContentType": "Game Item",
    "AlternateIds": [
        {
          "Type": "FriendlyId",
          "Value": "fire_sword"
        }
    ]
  },
  "Publish": false
}

Marketplace ID

代替 ID は、さまざまなマーケットプレースが製品を識別する方法です。 各マーケットプレースには独自の一連の制限とポリシーがあるため、プラットフォームごとにストア アイテムがどのように構成されているかに応じて設定する必要があります。

PlayFab には、いくつかのマーケットプレースが付属しています。 正しい Marketplace アドオンを使用するには、マーケットプレースを次の値にする必要があります:

  • Apple = "AppleAppStore"
  • Google Play = "GooglePlay"
  • 任天堂 = "NintendoEShop"
  • マイクロソフト = "MicrosoftStore"
  • プレイステーション= "PlayStationStore"
  • Steam = "Steam"

プラットフォームごとに代替 ID を構成する方法の例を次に示します。

  • Apple App Store: product_id、例 com.companyname.productname
  • Google Play: productId、例 com.companyname.productname
  • Microsoft Store: productId、例 9NBLGGH42CFD
  • Nintendo E-Shop: item_id、例 nintendo700100
  • PlayStation ストア: id、例 PLAYFAB00000CUSA
  • Steam: itemdefid、例 100
{
  "Item": {
    "Type": "catalogItem",
    "Title": {
      "NEUTRAL": "Fire Sword!"
    },
    "Description": {
      "NEUTRAL": "Fire Sword! (It's really cool)"
    },
    "ContentType": "Game Item",
    "AlternateIds": [
        {
          "Type": "FriendlyId",
          "Value": "fire_sword"
        },
        {
          "Type": "MicrosoftStore",
          "Value": "9NBLGGH42CFD"
        },
        {
          "Type": "AppleAppStore",
          "Value": "com.companyname.productname"
        },
        {
          "Type": "GooglePlay",
          "Value": "com.companyname.productname"
        },
        {
          "Type": "NintendoEShop",
          "Value": "nintendo700100"
        },
        {
          "Type": "PlayStationStore",
          "Value": "PLAYFAB00000CUSA"
        },
        {
          "Type": "Steam",
          "Value": "100"
        }
    ]
  },
  "Publish": false
}

プラットフォーム

カスタム プラットフォームは、[プラットフォーム] の v2 カタログ設定で追加および構成されます。 ディープ リンクやその他のカスタム プロパティの構成データとしてプラットフォームを使用できます。

Tags

タグの一覧は、有効な文字列の一覧を指定することで設定できます。 Tags は任意の項目に対して省略可能であり、項目には一覧表示されている任意の数のタグを含めることができます。

  • アイテムにタグを付けることができます
    • 損傷の種類など、一貫性があり、複数のアイテムに適用されるテキスト メタデータにタグを使用します。
    • タグは検索フィルターとして存在します。
    • アイテムごとに複数のタグを持つことができます。
    • タグは、カタログ アイテム、UGC アイテム、ファイル、および画像の間で個別に編成されます。
  • タグの例を次に示します。
    • firedamage
    • icedamage
    • bluntdamage
    • slashingdamage
    • piercingdamage
    • lightarmor
    • heavyarmor

DisplayProperties

[画面のプロパティ] は、カタログ内にあるすべてのアイテムに追加することができるユーザー設定のアイテム プロパティです。 SearhItems API を使用する際に、検索、フィルター処理、並べ替えに使用される特定のプロパティを [画面のプロパティのマッピング] セクションで設定することができます

  • アイテムには、構成されたフィールドの種類を持つ画面のプロパティを含めることができます
    • アイテム間で異なるメタデータ (lore テキストなど) に画面のプロパティを使用する
    • 画面のプロパティがクエリ可能 (インデックス付き、高速クエリ) または検索可能 (低速テキスト クエリ)
    • インデックスを作成するフィールドの種類ごとに最大 5 つを構成できます
  • 以下に例を示します。
{
  "game-model": "//models/weapon/fire_sword.fbx",
  "durability-default": "9001"
}

フィールドを DisplayProperties に追加すると、データベースに新しいインデックスが作成されます。 インデックスの作成後に追加または更新されたドキュメントのみが含まれます。 すべてのアイテムに画面のプロパティを適用する必要がある場合は、カタログ全体を再発行する必要があります。

DateTimeDouble、および Queryable String の画面のプロパティは queryable (クエリ可能) です。これらのプロパティは Filter ステートメントと OrderBy ステートメントで使用できます。

Searchable String の表示プロパティは searchable (検索可能) です。これらのプロパティは、Search フィールドに対してあいまい検索でクエリされます。 Filter ステートメントと OrderBy ステートメントでは、検索可能なプロパティを使用できません。

タイトルは、各種類 5 つの画面のプロパティに制限されています。 詳細については、「制限事項」をご覧ください。

Warning

画面のプロパティ マッピングは、キーと値のペアのインデックス付きリストとして格納されます。 既存の画面のプロパティ マッピングを削除すると、インデックスがシフトされ、残りのすべてのプロパティの動作が中断される可能性があります。 既存のプロパティを削除または編集するのではなく、追加のプロパティを追加することをお勧めします。絶対に必要でない限り、プロパティ マッピングの削除は避けるべきです

価格

価格を使用すると、ゲーム内の通貨コストをアイテムに割り当てることができます。 これらは省略可能ですが、プレイヤーは PurchaseItem API を使用してゲーム内通貨でアイテムを購入できます。

  • アイテムごとに複数の価格を設定できます。
  • 価格は、任意の既存の通貨で設定できます。
  • 以下に例を示します。
"PriceOptions": {
  "Prices": [
    {
      "Amounts": [
        {
          "Id": "{{CurrencyID}}",
          "Amount": 15
        }
      ]
    }
  ]
}

ファイルと画像

これらのフィールドでは、構成ストレージではなくファイル ストレージが使用されます。 ファイル ストレージは、アイコンやアセット ゲーム エンジンのメタデータなど、頻繁に更新または変更されるゲーム アセットを対象とします。 PlayFab が処理するファイルの種類の詳細については、「制限」を参照してください。