GS2-Grade マスターデータリファレンス

マスターデータのフォーマットと インポートする各種モデルのリファレンス

マスターデータのフォーマット

{
  "version": "2023-12-25",
  "gradeModels": [
    {
      "name": "[string]グレードモデル名",
      "metadata": "[string?]メタデータ",
      "defaultGrades": [
        {
          "propertyIdRegex": "[string]プロパティID正規表現",
          "defaultGradeValue": "[long]デフォルトのグレード値"
        }
      ],
      "experienceModelId": "[string]GS2-Experience 経験値モデルGRN",
      "gradeEntries": [
        {
          "metadata": "[string?]メタデータ",
          "rankCapValue": "[long]ランクキャップ値",
          "propertyIdRegex": "[string]プロパティID正規表現",
          "gradeUpPropertyIdRegex": "[string]グレードアップ用プロパティID正規表現"
        }
      ],
      "acquireActionRates": [
        {
          "name": "[string]報酬加算テーブル名",
          "mode": "[string]報酬加算テーブルの種類",
          "rates": [
            "[double]倍率値"
          ],
          "bigRates": [
            "[string]倍率値(ビッグナンバー)"
          ]
        }
      ]
    }
  ]
}
有効化条件必須デフォルト値の制限説明
versionstring
2023-12-25マスターデータのフォーマットバージョン
gradeModelsList<GradeModel>~ 100 itemsグレードモデル
グレードモデルとは、キャラクターや装備のランクを示すエンティティで、グレードによって GS2-Experience のランクキャップを設定することができます。

モデル

GradeModel

グレードモデル

グレードモデルとは、キャラクターや装備のランクを示すエンティティで、グレードによって GS2-Experience のランクキャップを設定することができます。

有効化条件必須デフォルト値の制限説明
gradeModelIdstring
~ 1024文字グレードモデル GRN
※ サーバーが自動で設定
namestring
~ 128文字グレードモデル名
グレードモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadatastring~ 2048文字メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
defaultGradesList<DefaultGradeModel>0 ~ 100 itemsデフォルトグレードモデルリスト
新規ステータス作成時に評価されるデフォルトグレードルールの順序付きリストです。各エントリはプロパティIDの正規表現パターンとマッチした場合に割り当てるグレード値を定義します。どのパターンにもマッチしない場合はデフォルトのグレード値 0 が使用されます。
experienceModelIdstring
~ 1024文字GS2-Experience 経験値モデル GRN
このグレードモデルと連動させる GS2-Experience の経験値モデルの GRN です。グレード値が変更されると、グレードエントリのマッピングに基づいて連動する経験値モデルのランクキャップが自動的に更新されます。これにより、高いグレードが高いランクキャップを解放するグレード駆動の成長が実現できます。
gradeEntriesList<GradeEntryModel>
1 ~ 100 itemsグレードエントリーモデルリスト
各グレード値を連動する GS2-Experience モデルのランクキャップにマッピングするグレードエントリの順序付きリストです。配列のインデックスがグレード値に対応し、最初のエントリ(インデックス 0)がグレード 0 のランクキャップを、2番目がグレード 1 を定義します。
acquireActionRatesList<AcquireActionRate>0 ~ 100 items報酬加算テーブルリスト
グレードに基づいて報酬量をスケーリングするための名前付き倍率テーブルのコレクションです。複数のテーブルを定義して、異なる種類の報酬(例: 経験値、通貨、アイテム)に異なるスケーリングルールを適用できます。

DefaultGradeModel

デフォルトグレードモデル

グレードを新規作成する際にプロパティIDの正規表現へのマッチに応じてデフォルトのグレード値を設定することができます。

有効化条件必須デフォルト値の制限説明
propertyIdRegexstring
~ 1024文字プロパティID正規表現
新規作成されたグレードステータスのプロパティIDに対してマッチングされる正規表現パターンです。プロパティIDがこのパターンにマッチすると、0 の代わりに指定されたデフォルトグレード値が初期グレードとして割り当てられます。パターンは順番に評価され、最初にマッチしたものが使用されます。
defaultGradeValuelong
0 ~ 9223372036854775805デフォルトのグレード値
プロパティIDが propertyIdRegex パターンにマッチした場合に新規作成されたステータスに割り当てられる初期グレード値です。このインデックスのグレードエントリが対応するランクキャップを定義するため、この値は連動する GS2-Experience モデルの開始ランクキャップを決定します。

GradeEntryModel

グレードエントリーモデル

グレード値と連動する GS2-Experience モデルのランクキャップのマッピングを定義します。各エントリはプロパティIDのマッチングに使用する正規表現パターンも指定し、グレードアップ操作に使用できるリソースとそのプロパティIDの変換方法を決定します。

有効化条件必須デフォルト値の制限説明
metadatastring~ 2048文字メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
rankCapValuelong
0 ~ 9223372036854775805ランクキャップ値
このグレードが適用された際に連動する GS2-Experience モデルに設定するランクキャップ値です。プレイヤーのグレードがこのエントリに対応する値に変更されると、関連する経験値ステータスのランクキャップがこの値に自動更新され、到達可能な最大ランクが制御されます。
propertyIdRegexstring
~ 1024文字プロパティID正規表現
グレードアップマッチング用の変数を抽出するために、グレードステータスのプロパティIDに適用される正規表現パターンです。このパターン内のキャプチャグループ(括弧で囲まれた部分)は gradeUpPropertyIdRegex で $1、$2 などとして利用できます。例えば “character-(.+)” というパターンはキャラクター識別子を抽出し、グレードアップ素材のプロパティIDマッチングに使用します。
gradeUpPropertyIdRegexstring
~ 1024文字グレードアップ用プロパティID正規表現
グレード昇格のために消費できるリソースのプロパティIDを特定する正規表現パターンです。このパターンは propertyIdRegex のキャプチャグループを $1、$2 などで参照できます。例えば propertyIdRegex で “sword-001” を $1 として抽出した場合、このパターンを “grade-up-material-$1” とすることで、その剣に固有の素材をマッチさせることができます。

AcquireActionRate

報酬加算テーブル

現在のグレード値に基づいて報酬量をスケーリングする名前付き倍率テーブルを定義します。各グレード値は入手アクションに適用される倍率にマッピングされ、高いグレードのキャラクターや装備がより多くの報酬を受け取れるようになります。標準的な倍精度浮動小数点数モードと、非常に大きな値に対応するビッグナンバーモードの両方をサポートします。

有効化条件必須デフォルト値の制限説明
namestring
~ 128文字報酬加算テーブル名
グレードモデル内でこの倍率テーブルを一意に識別する名前です。トランザクションの特定の入手アクションにグレードベースの報酬スケーリングを適用する際に参照されます。
mode文字列列挙型
enum {
  “double”,
  “big”
}
“double”報酬加算テーブルの種類
倍率値の数値精度モードを選択します。“double” モードはほとんどのケースに適した標準的な浮動小数点数を使用します。“big” モードは最大1024桁までの文字列表現の数値を使用し、非常に大きな値の計算を必要とするゲームに対応します。
定義説明
“double”2^48 未満の浮動小数点数
“big”文字列表記で1024桁未満の浮動小数点数
ratesList<double>{mode} == “double”
✓※
1 ~ 1000 itemsグレードごとの倍率リスト(double モード)
グレード値でインデックスされた報酬倍率の配列で、倍精度浮動小数点数を使用します。インデックス 0 のエントリがグレード 0 の倍率、インデックス 1 がグレード 1 の倍率となります。mode が “double” に設定されている場合に使用されます。
※ mode が “double” であれば 必須
bigRatesList<string>{mode} == “big”
✓※
1 ~ 1000 itemsグレードごとの倍率リスト(big モード)
グレード値でインデックスされた報酬倍率の配列で、拡張精度のために文字列表現の数値を使用します。インデックス 0 のエントリがグレード 0 の倍率、インデックス 1 がグレード 1 の倍率となります。非常に大きな数値計算を必要とするゲーム向けに、mode が “big” に設定されている場合に使用されます。
※ mode が “big” であれば 必須