GS2-Ranking マスターデータリファレンス
{
"version": "2019-09-17",
"categoryModels": [
{
"name": "[string]カテゴリ名",
"metadata": "[string?]メタデータ",
"minimumValue": "[long?]スコアの最小値",
"maximumValue": "[long?]スコアの最大値",
"orderDirection": "[string]スコアのソート方向",
"scope": "[string]ランキングの種類",
"uniqueByUserId": "[bool]ユーザID毎にスコアを1つしか登録されないようにする",
"sum": "[bool]登録を受け付けたスコアを合算し、合計値を競う",
"calculateFixedTimingHour": "[int?]スコアの固定集計開始時刻(時)",
"calculateFixedTimingMinute": "[int?]スコアの固定集計開始時刻(分)",
"calculateIntervalMinutes": "[int]スコアの集計間隔(分)",
"additionalScopes": [
{
"name": "[string]スコープ名",
"targetDays": "[long]集計対象日数"
}
],
"entryPeriodEventId": "[string?]イベントGRN",
"accessPeriodEventId": "[string?]イベントGRN",
"ignoreUserIds": [
"[string]ランキングに反映しないユーザーID"
],
"generation": "[string?]ランキングの世代"
}
]
}
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
version | ✓ | 2019-09-17 | マスターデータのフォーマットバージョン | |||
categoryModels | List<CategoryModel> |
CategoryModel
カテゴリーモデル カテゴリ毎に異なるランキングを作成できます。
カテゴリには登録できるスコアの最小値・最大値を設定でき、その範囲外のスコアは破棄されます。 ランキングを集計する際にスコアを小さいものを上位(昇順)にするか、大きいものを上位(降順)にするかを設定できます。
ランキングの種類として グローバル
と スコープ
を選択できます。
グローバルは全プレイヤーが同じ結果を参照するもので、スコープはフレンド内ランキングや、ギルド内ランキングのようなゲームプレイヤー毎に結果の異なるランキングです。
グローバルランキングはカテゴリごとにランキングの集計間隔を15分~24時間で設定できます。 スコープランキングはリアルタイムで集計結果が反映されます。
ランキングデータには世代という設定があり、世代を変更することで登録されたスコアをリセットすることができます。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
categoryModelId | string | ✓ | ~ 1024文字 | カテゴリGRN | ||
name | string | ✓ | ~ 128文字 | カテゴリ名 | ||
metadata | string | ~ 1024文字 | メタデータ | |||
minimumValue | long | ~ 9223372036854775805 | スコアの最小値 | |||
maximumValue | long | ~ 9223372036854775805 | スコアの最大値 | |||
orderDirection | enum [‘asc’, ‘desc’] | ✓ | ~ 128文字 | スコアのソート方向 | ||
scope | enum [‘global’, ‘scoped’] | ✓ | ~ 128文字 | ランキングの種類 | ||
uniqueByUserId | bool | ✓ | ユーザID毎にスコアを1つしか登録されないようにする | |||
sum | bool | {uniqueByUserId} == true | ✓ | false | 登録を受け付けたスコアを合算し、合計値を競う | |
calculateFixedTimingHour | int | -1 | ~ 23 | スコアの固定集計開始時刻(時) | ||
calculateFixedTimingMinute | int | 0 | ~ 59 | スコアの固定集計開始時刻(分) | ||
calculateIntervalMinutes | int | {scope} == “global” | ✓ | 15 ~ 1440 | スコアの集計間隔(分) | |
additionalScopes | List<Scope> | {scope} == “global” | スコープリスト | |||
entryPeriodEventId | string | ~ 1024文字 | イベントGRN | |||
accessPeriodEventId | string | ~ 1024文字 | イベントGRN | |||
ignoreUserIds | List<string> | ランキングに反映しないユーザーIDリスト | ||||
generation | string | ~ 256文字 | ランキングの世代 |
Ranking
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
rank | long | ✓ | 1 ~ 9223372036854775805 | 順位 | ||
index | long | ✓ | ~ 9223372036854775805 | 1位からのインデックス | ||
categoryName | string | ✓ | ~ 128文字 | カテゴリ名 | ||
userId | string | ✓ | ~ 128文字 | ユーザーID | ||
score | long | ✓ | ~ 9223372036854775805 | スコア | ||
metadata | string | ~ 512文字 | メタデータ | |||
createdAt | long | ✓ | 作成日時 |
Scope
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
name | string | ✓ | ~ 128文字 | スコープ名 | ||
targetDays | long | ✓ | 1 ~ 365 | 集計対象日数 |
CalculatedAt
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
categoryName | string | ✓ | ~ 128文字 | カテゴリ名 | ||
calculatedAt | long | ✓ | 集計日時 |