> ## 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.

# XR-007 クロス ネットワーク プレイ — マルチプレイヤー実装

> セッション ベースのマルチプレイヤー タイトルにおける XR-007 の実装ガイダンス: クロス プラットフォーム マッチメイキング、招待、音声チャット、ミュート/ブロックの適用について説明します。

# XBOX クロス ネットワーク マルチプレイヤーの実装例: マルチプレイヤー ゲーム

バージョン 2.0、2025/9/1

このシナリオ例は、伝統的なマルチプレイヤー ゲームや MOBA における推奨のクロス ネットワーク機能とフローを示すことを目的としています。設計と実装の一例を示します。

このシナリオでは、タイトルは次のマルチプレイヤー機能をサポートしています。

* **カスタム マッチメイキング** — タイトルはカスタム マッチメイキング サービスを実装します。このサービスは、まず (任意で) プレイヤーをチームにマッチングし、次にチームやプレイヤー同士をマッチングします。
* **専用サーバー** — タイトルのすべてのゲームプレイは専用サーバー上で実行されます。すべてのトラフィック (チャット トラフィックを含む) もこれらのサーバー経由でルーティングされます。
* **カスタム リーダーボード** — タイトル サービスは、プレイヤーの進行に関する詳細な情報を含むカスタム リーダーボードを実装します。
* **複数のゲーム モード/設定** — タイトルは、Co-op 対チーム ベースなど複数のゲーム モードをサポートし、プレイヤーがこれらのモードに対してマップ、ゲームの規模、ルールなどの設定を構成できるようにします。
* **ゲーム内通貨** — タイトルは、購入可能な (プレミアム) ゲーム内通貨を扱うゲーム内ストアを提供します。この通貨により、プレイヤーはチーム用のパワーアップを購入できます。プレイヤー キャラクター向けにコスメティック アイテムも購入できます。
* **DLC** — 購入可能なダウンロード コンテンツには、新しいマップと追加キャラクターが含まれます。

## タイトル サービス

この例のカスタム タイトル サービスの 1 つは認証サービスです。このサービスは、XBOX network (または他のマルチプレイヤー ネットワーク) アカウントとタイトル固有プレイヤー アカウントとのアカウント リンクに使用されます。プレイヤーが初めてこのサービスに接続すると、アカウント リンクはサイレントに実行され、新しいクロス ネットワーク プレイヤー ID が作成されます。XBOX network では、プレイヤーの XUID がタイトル固有アカウントに関連付けられる一意のプレイヤー識別子として使用されます。XUID アクセスは使用前に承認が必要で、DAM と協議する必要があります。

タイトル固有アカウントには一意の ID (GUID) があり、これによりすべてのタイトル サービスはネットワークの発信元にかかわらずプレイヤーを扱うことができ、プレイヤーに関するメタデータを保存します。この例では、マルチプレイヤー ネットワーク情報と基本ゲームプレイのプレイヤー統計がこのアカウントに保存されます。

タイトル サービスは、タイトル固有アカウントのマルチプレイヤー ネットワーク情報を利用して、マルチプレイヤー機能を XBOX network プレイヤーのみに制限できるようにします。

## タイトルのフロー

一般的なマルチプレイヤー ゲームでは、クロス ネットワーク機能の準拠フローは、プレイヤーがマルチプレイヤー モードに入った時点で始まります。

この例では、タイトルは次の手順を実行します。

1. **特権の検証** マルチプレイヤーを開始する前に、タイトルはマルチプレイヤー特権 (254 および 189) を検証します。特権が拒否されている場合、タイトルはマルチプレイヤー モードに入りません。タイトルは通信特権 (252) も確認し、必要に応じて音声およびテキスト チャットを終了または無効化してください。
2. **クロス ネットワーク特権の検証** この例では、タイトルはクロス ネットワーク ゲームプレイを既定のマッチメイキング体験に統合します。プレイヤーがマッチメイキング体験に入ると、タイトルはクロス ネットワーク プレイ特権 (185) を検証します。特権が拒否されている場合、XBOX network 内のマッチメイキングのみが可能です。プレイヤーが初めてクロス ネットワーク ゲームプレイに配置されたとき、タイトルはクロス ネットワーク ゲームプレイが有効であることを通知します。
3. **チーム マッチメイキング** タイトルのマッチメイキング サービスは、まずマッチメイキング ルールに基づいてクロス ネットワーク プレイヤーからチームを編成します。
4. **チーム/ロビー MPSD セッションの作成と参加** タイトルのマッチメイキング サービスは、XBOX サービスへのサービス間呼び出しを通じて MPSD ロビー セッションを作成します。すべての XBOX network ユーザーはこのロビー セッションに参加し、サービスはカスタム プロパティを使用してセッション内の非 XBOX network ユーザーに関するヒントを追加提供します。これらのヒントは、次の手順でセッション状態を設定するためにクライアント ロジックで使用できます。
5. **チーム/ロビー MPSD セッションの設定** XBOX network クライアントは、ロビー セッションを Activity Session に設定します。セッションの参加可否と closed 状態は、クロス ネットワーク プレイヤーのステータスに応じて適切に設定する必要があります。XBOX network プレイヤーは、クロス ネットワーク チームに留まる限りこのセッションに留まります。セッションが満員 (または後で満員) になった場合、サービスまたはロビー アービターがセッションを closed に設定する必要があります。空席のない Activity Session を joinable にしてはいけません。
6. **チーム ロビー** チーム ロビーには、XBOX network プレイヤーと他のマルチプレイヤー プラットフォームのプレイヤーが同席します。XBOX network プレイヤー間の音声チャットは、カスタム タイトル サービスを通じて有効化されます。すべてのプレイヤー間 (XBOX network/非 XBOX network) の音声チャットは、必要なプライバシーとアクセス許可のチェックを検証した後にのみ有効になります。非 XBOX network のフレンド関係については、タイトルは非 XBOX network のフレンド関係データを使用します。チーム ロビーでは、XBOX network プレイヤーと非 XBOX network プレイヤーがタイトル アカウント ID によって一意に識別されます。すべてのプレイヤー識別子は、他のマルチプレイヤー ネットワークのゲーマータグや同等のプレイヤー名も表示します。ロビー UI では、チーム リーダーが次のステップで別のチームとゲーム セッションを見つけるためのマッチ プロパティ (レベルやカスタム ルールなど) を選択し、マッチ リクエストを開始します。
7. **ゲーム セッションのマッチメイキング** この手順では、既存のクロス ネットワーク チームが、チーム リーダーが設定した追加マッチ プロパティとともにマッチメイキングに送信されます。これらのプロパティは最適なマッチの識別に使用され、結果としてマッチ用の 2 チームの新しいセットが得られます。この時点でマッチ サービスは、両チームの専用サーバーも決定します。
8. **ゲーム MPSD セッションの作成と参加** 匿名ゲーム セッション マッチメイキングの結果として、マッチ サービスまたは専用サービスから XBOX サービスへのサービス間呼び出しにより MPSD ゲーム セッションが作成されます。すべての XBOX network ユーザーはこのゲーム セッションに参加し、サービスはカスタム プロパティを使用してセッション内の非 XBOX network ユーザーに関するヒントを追加提供します。これらのヒントは、セッション状態の設定のためにクライアント ロジックで使用できます。
9. **専用サーバーへの接続** 最終ステップとして、すべてのクライアントは専用サーバーにセキュアに接続し、クロス ネットワーク ゲームプレイを開始します。マルチプレイヤー ネットワーク間のすべてのトラフィックは専用サーバー経由でルーティングされる必要があり、ピアツーピア接続は許可されません。
10. **ゲームプレイの完了** ゲームプレイ マッチが完了した後、チームは次のいずれかを選択できます。
    * **マッチを再プレイ** — プレイヤーはサーバーへの接続と MPSD ゲーム セッションを維持します。プレイヤーは新しいゲームプレイ マッチを開始します。
    * **新しい対戦相手を探す** — プレイヤーはサーバーとの接続を切断し、MPSD ゲーム セッションから退出します。プレイヤーはロビー セッションに留まり、次のマッチメイキングのためにロビー画面に戻ります。

## セッション管理

すべての XBOX 要件を遵守するために、タイトルは XBOX network プレイヤー向けに 2 つの MPSD セッションを作成します。

* **ロビー セッション** — このセッションはマッチメイキング サービスから XBOX サービスへのサービス間呼び出しで作成されます。作成時にはチーム内の全 XBOX network プレイヤーの予約を含みます。プレイヤーはこのセッションに対して招待を送信したり、途中参加したりできます。招待と途中参加は XBOX network システムを使用する必要があり、ネットワークをまたぐことはできません。したがって、すべての XBOX network プレイヤーはこのセッションを自分の activity session に設定します。
* **ゲーム セッション** — このセッションはマッチメイキング サービスから XBOX サービスへのサービス間呼び出しで作成されます。ゲーム セッション内 (チームをまたぐ) 全 XBOX network プレイヤーの予約を含みます。XBOX network プレイヤーのマルチプレイヤー アクティビティの追跡に使用されます。

非 XBOX network プレイヤーは MPSD セッション上で直接メンバーとして表現されません。タイトルは彼らの存在をカスタム セッション プロパティでのみ追跡します。

```text theme={null}
{{"name":"jackplayer"},{"name":"johnplayer"},{"name":"joeplayer"}}
```

このリストと XBOX network セッション メンバーは、セッションが満員かどうかの判定に使用できます。満員の場合、正しい動作のために XBOX network の招待と途中参加の機能を無効化する必要があります。プレイヤー (またはサーバー) がセッションの closed プロパティを設定してこれらの機能を無効化します。

ゲームプレイ中のプレイヤーを追跡する MPSD セッションは、XBOX 要件を遵守するために **gameplay** capability を有効化する必要があります。

## プレイヤー通信のブロック/報告

プレイヤーのブロックはタイトル レベルでサポートされます。

* **XBOX network プレイヤーのブロック** — タイトルは、他の XBOX network プレイヤーとのマルチプレイヤーおよびチャットに関する特権と、非 XBOX network プレイヤー/非 XBOX network フレンドのプレイヤー クラスを確認するために `check_multiple_permissions_with_multiple_target_users` を使用します。タイトルは `ShowProfileCardAsync` を通じて他プレイヤーのプロファイルへのアクセスも提供します。ブロックはプレイヤーのプロファイル UI で実行できます。
* **非 XBOX network プレイヤーのブロック** — タイトルは、非 XBOX network プレイヤーとの通信のブロックをサポートするために、タイトル内ブロック リストを使用します。このリストはタイトル サービスで維持され、マルチプレイヤー権限のチェックに使用されます。クロス ネットワーク チャットは既定では利用できません。非 XBOX network プレイヤーは、カスタム タイトル UI を通じてタイトル内でブロックできます。
* **XBOX network プレイヤーの報告** — タイトルはプレイヤーの報告も許可します。XBOX network での報告は、プロファイル UI を通じてプレイヤーが行います。XBOX network のエンフォースメントがプレイヤー報告を処理します。
* **非 XBOX network プレイヤーの報告** — 非 XBOX network ユーザーについては、タイトルはカスタムの報告 UI フローを提供します。タイトルは、自タイトルおよび/または他のマルチプレイヤー ネットワークのガイドラインに基づいて、プレイヤー報告を適切に処理します。

## マーケットプレース

XBOX network や他のマルチプレイヤー ネットワークにおけるゲーム内通貨の購入はタイトル サービスで追跡されます。タイトルは、すべてのタイトル バージョン間で共有される仮想通貨ウォレットとゲーム内アイテム インベントリを提供します。

非 XBOX network のタイトル バージョンには、次の制限が適用されます。

* **プレイヤー スキン** — プレイヤー スキンはゲーム内通貨でのみ購入できます。ゲーム内通貨は、すべてのネットワークで利用可能な統合されたゲーム内ウォレットで管理されます。すべてのプレイヤー スキンは、すべてのタイトル バージョンで同一です。
* **消耗品** — 消耗品はゲーム内通貨でのみ購入できます。通貨と同様に、消耗品アイテムも統合されたゲーム内インベントリで管理されます。
* **ダウンロード コンテンツ** — XBOX network プラットフォームでは、ダウンロード コンテンツ (新しいマップとキャラクター タイプ) は Microsoft Store で管理されます。他ストアのエンタイトルメントは共有されません。同じマップで一緒にプレイするには、すべてのプレイヤーがそれぞれのストアで有効なエンタイトルメントを持っている必要があります。購入していないキャラクター タイプは表示されますが、対応するエンタイトルメントを持たないプレイヤーには使用できません。

## 実績

タイトルには、プレイしたマルチプレイヤー ゲーム数を含むマルチプレイヤー アクションに基づく複数の実績があります。これら (および同種) の実績の進行状況には、クロス ネットワークのマルチプレイヤー ゲーム セッションが含まれます。

タイトルには、クロス ネットワーク ゲームプレイのみに限定された実績はありません。XBOX タイトルの実績の進行は、他のタイトル バージョンでのゲームプレイでも可能です。

## プレイヤーの進行

プレイヤーの進行はすべてのタイトル バージョン間で共有されます。カスタム タイトル アカウントはプレイヤー進行の一部を保持します。

## Game DVR/配信

タイトルは、クロス ネットワーク マルチプレイヤー マッチにおける Game DVR、スクリーンショット、および配信をサポートします。

## リーダーボード

タイトルのリーダーボードは、XBOX network のリーダーボードを超える広範なリーダーボード機能を提供するタイトル サービスで実装されています。このサービスは複数の下位リーダーボードを作成し、それらを並列に更新します。マルチプレイヤー ネットワークごとに 1 つのリーダーボードと、すべてのマルチプレイヤー ネットワークの結果を統合した 1 つのマージ済みリーダーボードです。

クロス ネットワーク マルチプレイヤーが有効な場合、マージ済みリーダーボードが表示されます。すべてのプレイヤーはマルチプレイヤー ロビーと同じ方法で表示されます。

XBOX network 専用のリーダーボードは、プレイヤーがクロス ネットワーク ゲームプレイ機能を無効化した場合に表示されます。

タイトル固有アカウントは、リーダーボード サービス内部ですべてのプレイヤーを識別するために使用されます。XBOX network プレイヤーの外部識別子は、クエリ元のタイトル インスタンスに依存します。XBOX network タイトル インスタンスでは XUID が返され、クライアントはプレイヤーのゲーマータグ文字列を判定するためのルックアップを行います。非 XBOX network のタイトル インスタンスでは、プレイヤーのゲーマータグまたは DisplayName 文字列が直接返されます。サービスはこの文字列を XBOX サービスへのサービス間呼び出しから取得し、最大 4 時間キャッシュします。

## 関連

* [XR-007 クロス ネットワーク プレイ、データ使用、およびコンパニオン アプリの相互作用](/publishing/certification/xr/xr-007)
* [XR-007 MMO の例](/publishing/certification/xr/xr-007-mmo)
* [XR-015 プレイヤー通信の管理](/publishing/certification/xr/xr-015)
* [XR-045 XBOX network とアカウント特権](/publishing/certification/xr/xr-045)


## Related topics

- [XR-007 クロスネットワーク プレイ、データ使用、およびコンパニオン アプリ](/ja-jp/publishing/certification/xr/xr-007.md)
- [クロスネットワークマルチプレイヤーの実装例](/ja-jp/services/xbox-services/multiplayer/concepts/live-console-xr007-multiplayer-example.md)
- [XR-007 クロス ネットワーク プレイ — MMO 実装例](/ja-jp/publishing/certification/xr/xr-007-mmo.md)
- [クロスネットワークマルチプレイヤーの実装例: MMO](/ja-jp/services/xbox-services/multiplayer/concepts/live-console-xr007-mmo-example.md)
- [XBOX の要件](/ja-jp/services/playfab/multiplayer/networking/xbox-requirements.md)
