> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# イベントベースのリーダーボードの概要

> XBOX Live のイベントベースのリーダーボードが、XBOX 全体のグローバル ランキングまたはプレイヤーのフレンド間のソーシャル ランキングによってプレイヤーを比較する方法。

このトピックでは、ゲームの選択された統計を表示することで、リーダーボードがプレイヤーを比較する方法について説明します。

リーダーボードは、プレイヤーを引き付け、プレイヤー間の競争を促進する楽しい方法です。XBOX services は、ハードコア プレイヤー向け (XBOX の全プレイヤーに対する *グローバル* ランキング) およびカジュアル プレイヤー向け (プレイヤーのフレンドに対する *ソーシャル* ランキング) に適した機能を提供します。

利用できるリーダーボードには、グローバルとソーシャルの 2 種類があります。
これらは非常に似た概念を持ちますが、構成と目的の面で根本的な違いがあります。

## グローバル リーダーボードとソーシャル リーダーボードの比較

### グローバル リーダーボード

* グローバル リーダーボードは、XBOX の全ユーザー ベースをランク付けし、構成する必要があります。

* グローバル リーダーボードは、取り込み時 (タイトルのリリース前またはリリース後の任意の時点) にサービスで構成する事前定義されたビューです。

### ソーシャル リーダーボード

* ソーシャル リーダーボードは動的に生成され、プレイヤーのフレンドをランク付けします。

* ソーシャル リーダーボードには、プレイヤーのソーシャル グラフに含まれるプレイヤーのみが含まれます。

* ソーシャル リーダーボードは、サービスが既存のユーザー統計に基づいて実行時に動的に生成するため、取り込み時に事前定義する必要はありません。

## リーダーボードについて

リーダーボードには 2 つの主要な要素があります。

* ランク付けの対象となる値 (XBOX services では、これは常にプレイヤーの[統計インスタンス](/services/xbox-services/player-data/stats-leaderboards/event-based/live-stats-eb-overview#defining-stat-instances)です)。

* 並べ替え順序 (値が高い方が良いか、低い方が良いか)。

### ランキング値としての統計

リーダーボードはプレイヤーの統計から派生します。必要なものに合わせて適切な統計ルールを定義することが重要です。ゲームを設計する際は、プレイヤーをどのリーダーボードでランク付けするかを念頭に置いてください。

## グローバル リーダーボード

グローバル リーダーボードは、XBOX コミュニティ全体のプレイヤーが記録した最高スコアを追跡します。グローバル リーダーボードの主な特徴は、取り込み時にリーダーボード識別名、ランク付け対象の統計、並べ替え順序 (昇順または降順) を指定することで事前定義される点です。

タイトルは無制限の数のグローバル リーダーボードを定義でき、サービス構成を介していつでもリーダーボードを追加できます。1 つのグローバル リーダーボードあたりのレコードの最大数は、現在 10,000 エントリに制限されています。つまり、"最高" スコアが上位 10,000 位以内にランクインしていないプレイヤーのスコアは、リーダーボードに表示されません。

一度に最大 100 件のリーダーボード エントリ (プレイヤーの XUID、ゲーマータグ、グローバル ランク、スコア) の "ページ" を読み取り、ページの開始ランクを指定するか、指定したゲーマータグを中心としたリーダーボード エントリを取得できます。結果は常に全期間を対象としており、日、週、月ごとのビューはまだサポートされていません。

グローバル リーダーボードには、XBOX Services API (XSAPI) または REST API を使用して `GET (/scids/{scid}/leaderboards/{leaderboardname})` でアクセスできます。

以下は、レーシング ゲーム用のリーダーボードの構成例のスクリーンショットです。

<img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/leaderboard-details.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=f469c97316bfc9c769c7b968e0fd6f79" alt="リーダーボード名が FastestLap になっているリーダーボード詳細 UI のスクリーンショット。並べ替え順序では、低い値の方が良いことが示されています。" width="1104" height="655" data-path="images/gdk/services/leaderboard-details.png" />

## ソーシャル リーダーボード

ソーシャル リーダーボードは、カジュアル プレイヤーがフレンドと自分を比較し、ランク付けするための優れたインセンティブになります。コミュニティで最上位にランクインしていなくても、知り合いのプレイヤーに勝つという意欲を維持できます。ソーシャル リーダーボードは、既存の任意のユーザー統計に基づいて動的に作成されます。そのため、取り込み時に事前定義する必要はなく、特定のプレイヤーのソーシャル グラフに含まれるプレイヤーのみが含まれます。

ソーシャル リーダーボードの主な利点は、事前定義されていないことです。ゲームの任意の統計に対してソーシャル リーダーボードを作成できます。呼び出し元は、ソーシャル リーダーボードを要求するときに 2 つの項目 (統計インスタンスと並べ替え順序 (既定は評価による降順)) を指定できます。結果は常に全期間を対象としており、日、週、月ごとのビューはサポートされていません。

グローバル リーダーボードと同様に、呼び出し元は一度に最大 100 件のリーダーボード エントリ (プレイヤーの XUID、ゲーマータグ、グローバル ランク、スコア) の "ページ" を読み取り、ページの開始ランクを指定できます。

ソーシャル リーダーボードには、XSAPI または REST API を使用して `GET (/users/xuid({xuid})/scids/{scid}/stats/{statname)/people/{all|favorite})` でアクセスします。

## ソーシャル ビューを持つグローバル リーダーボード

ソーシャル リーダーボードは動的に作成されるため、グローバル リーダーボードよりも取得に時間がかかります。共通の条件セットに基づいてタイトルが頻繁にソーシャル リーダーボードを取得するシナリオでは、グローバル リーダーボードを作成し、そのリーダーボードのうちプレイヤーのソーシャル グラフに関連するエントリのみを取得できます。

これにより、リーダーボードは既に XBOX services サーバー上に存在しているため、ソーシャル リーダーボードよりも取得時間が短縮されます。また、結果がユーザーのソーシャル グラフに限定されるため、ペイロードも小さくなります。この種類のリーダーボードはグローバル リーダーボードです。したがって、タイトルのサービス構成で定義する必要があります。

ソーシャル ビューを持つグローバル リーダーボードには、通常のグローバル リーダーボード要求 `GET (/scids/{scid}/leaderboards/{leaderboardname})` を使用し、URL に次のクエリ `&viewTarget=people&view=people` を追加してアクセスします。

複数列のリーダーボード ビューをサポートするために、統計メタデータを使用できます。タイトルは、リーダーボードの統計に対してメタデータ フィールドを定義でき、これらはリーダーボード ランクをクエリするときに返すことができます。プライバシー設定によって統計へのアクセスが妨げられる可能性があるため、タイトルは同じ動作を実現するためにバッチ ユーザー統計 URI を使用すべきではありません。

## 複数列のリーダーボード

統計により多くの情報を提供するために、リーダーボードに追加の列が必要になる場合があります。たとえば、最も倒した敵の数を示すリーダーボードでは、プレイヤーが使用した武器、発生したマップ、最も倒した敵の種類、キル/デス比率を追加したい場合があります。

XBOX リーダーボードには、複数列のサポートが組み込まれています。これらの種類のランキングは簡単に取得できます。唯一の前提条件は、リーダーボードで使用される統計に統計コンテキストが定義されていることです。これが追加のメタデータとして使用されます。たとえば、FastestLap 統計の場合、これらの追加プロパティを統計コンテキストとして構成できます。以下は、それらがどのように見えるかのスクリーンショットです。

<img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/stat-context.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=75db3b9e9e58dfe4af99d48269be49fb" alt="統計コンテキスト名が CarModel、WeatherCondition、TrackId になっている統計コンテキスト UI のスクリーンショット。" width="1113" height="572" data-path="images/gdk/services/stat-context.png" />

これで、統計はコンテキストとともに永続化されるようになるため、複数列のリーダーボードを取得すると、次の表のようになります。

| 演算子     | 値 (FastestLap) | CarModel | WeatherCondition | TrackId |
| ------- | -------------- | -------- | ---------------- | ------- |
| SUM     | 定数またはフィールド     | Model A  | Rainy            | 9       |
| MIN     | フィールド          | Model A  | Sunny            | 9       |
| MAX     | フィールド          | Model B  | Sunny            | 2       |
| REPLACE | 定数またはフィールド     | Model C  | Cloudy           | 1       |

複数列のリーダーボードは、現在、グローバル リーダーボードおよびソーシャル ビューを持つグローバル リーダーボードでサポートされています。ただし、複数列の *ソーシャル* リーダーボードを作成したい場合は、バッチ ユーザー統計呼び出しを使用してすべての統計をコンテキストと共に取得し、手動でリーダーボードを作成できます。

複数列のリーダーボードは、REST API を使用してのみアクセスできます。通常のグローバル リーダーボード要求 `GET (/scids/{scid}/leaderboards/{leaderboardname})` を使用し、URL に次のクエリ `&include=valuemetadata` を追加します。

## 特集統計を含むリーダーボードが表示される場所

リーダーボードは、ゲームの選択された統計を表示することで、プレイヤーを比較します。

リーダーボードは、プレイヤー間の競争を促進する優れた方法です。リーダーボードにより、プレイヤーは以前の自己ベスト スコアやフレンドのスコアを更新しようと引き付けられ続けます。

* 特集統計のリーダーボードは、常にタイトルの公式クラブに表示されます。

* 特集統計のリーダーボードは、プレイヤーのプロフィール内の実績ビューなど、その他の XBOX エクスペリエンスに表示される場合があります。

* 構成済みの特集統計を使用して、タイトル内でリーダーボードを作成することもできます。

## 適切なリーダーボードの選択

リーダーボードは、定義した統計に対応します。
プレイヤーが向上させるために取り組める達成事項に対応するリーダーボードを選択する必要があります。

たとえば、レーシング ゲームのベスト ラップ タイムは、プレイヤーが自分のベスト ラップ タイムを向上させようと取り組みたくなるため、良いリーダーボードです。
その他の例としては、シューティング ゲームのキル/デス比率や、格闘ゲームの最大コンボ数などがあります。

## リーダーボードを表示するタイミング

タイトル内でリーダーボードは任意のタイミングで表示できます。
リーダーボードがゲームプレイやタイトルの流れを妨げないタイミングを選択する必要があります。
たとえば、ラウンドの間や試合の後は、リーダーボードを表示するのに適したタイミングです。

## プログラミング ガイド

リーダーボードの現在の状態を取得するために使用できるリーダーボード API がいくつかあります。
すべての API は非同期で、ブロックしません。

リーダーボード データを取得する要求を行い、通常のゲーム処理を続行します。
サービスからリーダーボードの結果が返されたら、適切なタイミングで結果を表示できます。

表示したいタイミングよりも少し前に、サービスからリーダーボード データを要求します。これにより、リーダーボードの表示を待つ間、プレイヤーがブロックされることを防ぎます。

## 関連項目

[イベントベースとタイトル管理の統計の比較](/services/xbox-services/player-data/stats-leaderboards/live-stats-eb-vs-tm#update-frequency)。


## Related topics

- [イベントベースの統計とリーダーボード](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/live-statslb-eb-nav.md)
- [イベントベース リーダーボードのサンプル コード](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-leaderboards-eb-howto.md)
- [イベントベース統計 & リーダーボードのサンプル コード](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-statslb-eb-howto-nav.md)
- [イベント ベースのリーダーボードのポータル構成](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/config/live-eb-leaderboards-portal.md)
- [イベントベースのプレイヤー データの概要](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/live-how-data-platform-works.md)
