NAV
GS2-Deploy

GS2-Showcase

GS2-Deploy のテンプレートで使用できるリソース定義のリファレンス

エンティティ

Namespace

Namespace

Type: GS2::Showcase::Namespace
Properties:
  Name: namespace1
  Description: null
  QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001
  KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001
  LogSetting: 
    LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1

ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。 GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。

そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。

必須 デフォルト 値の制限 説明
name string ~ 32文字 ネームスペース名
description string ~ 1024文字 説明文
queueNamespaceId string ~ 1024文字 スタンプシートの実行に使用する GS2-JobQueue のネームスペース
keyId string ~ 1024文字 スタンプシートの発行に使用する GS2-Key のネームスペース
logSetting LogSetting ログの出力設定

SalesItemMaster

SalesItemMaster

Type: GS2::Showcase::SalesItemMaster
Properties:
  NamespaceName: namespace1
  Name: sales-item-0001
  Description: null
  Metadata: null
  ConsumeActions: 
    - 
      Action: Gs2Money:WithdrawByUserId
      Request: {"moneyName": "money-0001", "userId": "user-0001", "slot": 0, "count": 100, "paidOnly": false}
  AcquireActions: 
    - 
      Action: Gs2Stamina:RecoverStaminaByUserId
      Request: {"moneyName": "money-0001", "userId": "user-0001", "slot": 0, "count": 100, "paidOnly": false}

商品は陳列棚に陳列するためのエンティティです。 商品を購入するために必要となる対価と商品を購入したときに得られる報酬を設定します。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 商品名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
consumeActions ConsumeAction[] 消費アクションリスト
acquireActions AcquireAction[] 入手アクションリスト

SalesItemGroupMaster

SalesItemGroupMaster

Type: GS2::Showcase::SalesItemGroupMaster
Properties:
  NamespaceName: namespace1
  Name: sales-item-group-0001
  Description: null
  Metadata: null
  SalesItemNames: 
    - $salesItem1.name
    - $salesItem2.name

商品グループは陳列棚に陳列するためのエンティティです。 商品グループには複数の商品を所属させることができ、所属している商品の先頭から順番に購入可能かを判定し、一番最初に購入可能だと判定された商品が実際に陳列されます。 初回のみ割引する商品や、ステップアップガチャのように購入回数によって商品の内容が変化する仕組みに使用できます。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 商品名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
salesItemNames string[] 商品グループに含める商品リスト

ShowcaseMaster

ShowcaseMaster

Type: GS2::Showcase::ShowcaseMaster
Properties:
  NamespaceName: namespace1
  Name: showcase-0001
  Description: null
  Metadata: null
  DisplayItems: 
    - 
      Type: salesItem
      SalesItemName: $salesItem1.name
    - 
      Type: salesItemGroup
      SalesItemGroupName: $salesItemGroup1.name
      SalesPeriodEventId: grn:gs2:ap-northeast-1:YourOwnerId:schedule:schedule-0001:event:event-0001
  SalesPeriodEventId: grn:gs2:ap-northeast-1:YourOwnerId:schedule:schedule-0001:event:event-0001

陳列棚は登録した商品を販売するために陳列するエンティティです。 陳列棚には販売期間を設定できます。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 陳列棚名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
displayItems DisplayItemMaster[] 陳列する商品モデル一覧
salesPeriodEventId string ~ 1024文字 陳列棚の販売期間を設定した GS2-Schedule のイベント

CurrentShowcaseMaster

CurrentShowcaseMaster

Type: GS2::Showcase::CurrentShowcaseMaster
Properties:
  NamespaceName: namespace1
  Settings: {\n      "version": "2019-04-04",\n      "showcases": [\n        {\n          "name": "gem",\n          "metadata": "GEM",\n          "displayItems": [\n            {\n              "type": "salesItem",\n              "salesItem": {\n                "name": "gem_3000",\n                "metadata": "GEM_3000",\n                "consumeActions": [\n                  {\n                    "action": "Gs2Money:InAppPurchase",\n                    "request": "Gs2Money:InAppPurchase:request"\n                  }\n                ],\n                "acquireActions": [\n                  {\n                    "action": "Gs2Money:DepositByUserId",\n                    "request": "Gs2Money:DepositByUserId:request"\n                  }\n                ]\n              }\n            },\n            {\n              "type": "salesItemGroup",\n              "salesPeriodEventId": "grn:gs2:ap-northeast-1:YourOwnerId:schedule:schedule-0001:event:event-0001",\n              "salesItemGroup": {\n                "name": "step_gem",\n                "metadata": "STEP_GEM",\n                "salesItems": [\n                  {\n                    "name": "step1_gem_1000",\n                    "metadata": "STEP1_GEM_1000",\n                    "consumeActions": [\n                      {\n                        "action": "Gs2Money:InAppPurchase",\n                        "request": "Gs2Money:InAppPurchase:request"\n                      },\n                      {\n                        "action": "Gs2Limit:CountUpByUserId",\n                        "request": "Gs2Limit:CountUpByUserId:request"\n                      }\n                    ],\n                    "acquireActions": [\n                      {\n                        "action": "Gs2Money:DepositByUserId",\n                        "request": "Gs2Money:DepositByUserId:request"\n                      }\n                    ]\n                  },\n                  {\n                    "name": "step2_gem_2000",\n                    "metadata": "STEP1_GEM_2000",\n                    "consumeActions": [\n                      {\n                        "action": "Gs2Money:InAppPurchase",\n                        "request": "Gs2Money:InAppPurchase:request"\n                      },\n                      {\n                        "action": "Gs2Limit:CountUpByUserId",\n                        "request": "Gs2Limit:CountUpByUserId:request"\n                      }\n                    ],\n                    "acquireActions": [\n                      {\n                        "action": "Gs2Money:DepositByUserId",\n                        "request": "Gs2Money:DepositByUserId:request"\n                      }\n                    ]\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          "name": "gacha",\n          "metadata": "GACHA",\n          "displayItems": [\n            {\n              "type": "salesItem",\n              "salesItem": {\n                "name": "single",\n                "metadata": "SINGLE",\n                "consumeActions": [\n                  {\n                    "action": "Gs2Money:WithdrawByUserId",\n                    "request": "{\\"moneyName\\": \\"money-0001\\", \\"userId\\": \\"{userId}\\", \\"slot\\": \\"{slot}\\", \\"count\\": 100, \\"paidOnly\\": false}"\n                  }\n                ],\n                "acquireActions": [\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "{\\"categoryName\\": \\"category-0001\\", \\"inventoryModelName\\": \\"character\\", \\"itemModelName\\": \\"ssr-0001\\", \\"userId\\": \\"{userId}\\", \\"acquireCount\\": 1}"\n                  }\n                ]\n              }\n            },\n            {\n              "type": "salesItem",\n              "salesItem": {\n                "name": "10times",\n                "metadata": "10TIMES",\n                "consumeActions": [\n                  {\n                    "action": "Gs2Money:WithdrawByUserId",\n                    "request": "Gs2Money:WithdrawByUserId:request"\n                  }\n                ],\n                "acquireActions": [\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  },\n                  {\n                    "action": "Gs2Inventory:AcquireItemSetByUserId",\n                    "request": "Gs2Inventory:AcquireItemSetByUserId:request"\n                  }\n                ]\n              }\n            }\n          ]\n        }\n      ]\n    }

GS2ではマスターデータの管理にJSON形式のファイルを使用します。 ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。

JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。

JSONファイルの形式についてはドキュメントを参照ください。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
settings string ~ 5242880文字 マスターデータ