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

# Multiplayer Manager API の概要

> 最も重要な XBOX Multiplayer Manager API メソッドおよびクラスの概要。ロビー セッション、ゲーム セッション、メンバー、およびマルチプレイヤー イベントを含みます。

このトピックでは、Multiplayer Manager API の最も重要なメソッドについて説明します。

詳細な API 情報については、[リファレンス ドキュメント](https://docs.xbox.com/ja-jp/reference/live/gc-reference-live-toc.md) を参照してください。

これらの API をアプリケーションで使用する方法の例については、[NetRumble サンプル (NDA トピック)](https://learn.microsoft.com/gaming/gdk/docs/services/gdk-dev/development-downloads/gdk-samples-list) を参照してください。

## 名前空間

Multiplayer Manager は、以下の名前空間に含まれています。

| 言語 | 名前空間 |
| - | - |
| C | `XblMultiplayerManager*` プレフィックス |
| C++ | `xbox::services::multiplayer::manager` |

以下の主要なクラスを理解しておく必要があります。

* [Multiplayer Manager API の概要]()
  * [名前空間](#namespace)
  * [Multiplayer Manager クラス](#multiplayer-manager-class)
  * [Multiplayer Event クラス](#multiplayer-event-class)
  * [Multiplayer Member クラス](#multiplayer-member-class)
  * [Multiplayer Lobby Session クラス](#multiplayer-lobby-session-class)
  * [Multiplayer Game Session クラス](#multiplayer-game-session-class)

## Multiplayer Manager クラス&#x20;

Multiplayer Manager は、1 つのロビー セッション オブジェクトと 1 つのゲーム セッション オブジェクトを含むシングルトン クラスです。

Multiplayer Manager を動作させるには、少なくともこのクラスの [XblMultiplayerManagerInitialize](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize.md) メソッドと [XblMultiplayerManagerDoWork](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) メソッドを呼び出す必要があります。

以下の表では、より一般的に使用されるメソッドとプロパティの一部を説明しています (すべてではありません)。メンバーの完全な説明一覧については、[リファレンス ドキュメント](https://docs.xbox.com/ja-jp/reference/live/gc-reference-live-toc.md) を参照してください。

| C | C++ | 説明 |
| - | - | - |
| **メソッド** | | |
| [XblMultiplayerManagerInitialize](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize.md) | `initialize()` | Multiplayer Manager を初期化します。Multiplayer Manager を使用する前に、このメソッドを呼び出す必要があります。 |
| [XblMultiplayerManagerDoWork](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) | `do_work()` | アプリから見えるセッション状態を更新します。このメソッドはフレームごとに少なくとも 1 回は呼び出す必要があります。ゲームは、このメソッドから返されるマルチプレイヤー イベントを処理する必要があります。 |
| [XblMultiplayerManagerJoinLobby](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoinlobby.md) | `join_lobby()` | ユーザーが参加したいロビーを一意に識別する `handleId` を通じて、または招待を承諾した結果としてタイトルがプロトコル アクティベーションされる場合に、フレンドのロビー セッションに参加する方法を提供します。 |
| [XblMultiplayerManagerJoinGameFromLobby](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby.md) | `join_game_from_lobby()` | ロビーのゲーム セッションが存在し空きがある場合、そのセッションに参加します。セッションが存在しない場合は、既存のロビー メンバーを含む新しいゲーム セッションを作成します。これは既存のロビー セッションのプロパティをゲーム セッションに移行しません。参加後は、`*SetSynchronizedProperties` API を介してプロパティやホストを設定できます。タイトルは、ゲーム セッションに参加したいすべてのクライアントでこの API を呼び出す必要があります。 |
| [XblMultiplayerManagerJoinGame](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame.md) | `join_game()` | グローバルにユニークなセッション名 (通常はサードパーティのマッチメイキング サービスを通じて見つかる) を指定して既存のゲーム セッションに参加します。ゲームに参加させたい XBOX ユーザー ID のリストを渡すことができます。 |
| [XblMultiplayerManagerFindMatch](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch.md) | `find_match()` | XBOX services マッチメイキングを使用してゲームを見つけて参加します。 |
| [XblMultiplayerManagerLeaveGame](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerleavegame.md) | `leave_game()` | ゲームを離脱し、メンバーとすべてのローカル メンバーをロビーに戻します。 |
| **プロパティ** | | |
| `LobbySession` | `lobby_session()` | ロビー セッションを表すオブジェクトへのハンドル。 |
| `GameSession` | `game_session()` | ゲーム セッションを表すオブジェクトへのハンドル。 |

## Multiplayer Event クラス&#x20;

| 言語 | クラス |
| - | - |
| C | [XblMultiplayerEvent](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent.md) |
| C++ | `multiplayer_event` |

[XblMultiplayerManagerDoWork](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) を呼び出すと、Multiplayer Manager は、前回 `XblMultiplayerManagerDoWork` を呼び出したときからのセッションへの変更を表すイベントのリストを返します。これらのイベントには、メンバーがセッションに参加した、メンバーがセッションを離れた、メンバー プロパティが変更された、またはホスト クライアントが変更された、などの変更が含まれます。

すべての可能なイベントの種類の一覧については、[XblMultiplayerEventType](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype.md) 列挙型を参照してください。

返された各 [XblMultiplayerEvent](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent.md) には、`EventArgsHandle` が含まれます。これを使用して、イベントの種類に対して適切な `args` を取得する必要があります。たとえば、[XblMultiplayerEventType](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype.md) が `MemberJoined` の場合は、[XblMultiplayerEventArgsMembersCount](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmemberscount.md) と [XblMultiplayerEventArgsMembers](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmembers.md) を呼び出します。

ゲームは、[XblMultiplayerManagerDoWork](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) を呼び出した後、必要に応じて各イベントを処理する必要があります。

## Multiplayer Member クラス&#x20;

| 言語 | クラス |
| - | - |
| C | [XblMultiplayerManagerMember](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayermanagermember.md) |
| C++ | `multiplayer_member` |

このクラスは、ロビーまたはゲーム セッションのプレイヤーを表します。プレイヤーの XBOX ユーザー ID、プレイヤーのネットワーク接続アドレス、および各プレイヤーのカスタム プロパティなど、メンバーに関するプロパティを含みます。

## Multiplayer Lobby Session クラス&#x20;

| 言語 | クラス |
| - | - |
| C | `XblMultiplayerManagerLobbySession*` プレフィックス |
| C++ | `multiplayer_lobby_session` |

このクラスは、このデバイスに対してローカルなユーザーと、一緒にプレイしたい招待されたフレンドを管理するために使用される永続的なセッションを作成します。Multiplayer Manager がマルチプレイヤー アクションを実行するには、ロビー セッションに少なくとも 1 人のメンバーが含まれている必要があります。[XblMultiplayerManagerLobbySessionAddLocalUser](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser.md) メソッドを呼び出すことで、最初に新しいロビー セッションを作成できます。

以下の表では、このクラスのより一般的に使用されるメソッドとプロパティの一部を説明しています (すべてではありません)。クラス メンバーの完全な説明一覧については、[リファレンス ドキュメント](https://docs.xbox.com/ja-jp/reference/live/gc-reference-live-toc.md) を参照してください。

| C | C++ | 説明 |
| - | - | - |
| **メソッド** | | |
| [XblMultiplayerManagerLobbySessionAddLocalUser](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser.md) | `add_local_user()` | ローカル ユーザー (ローカル デバイスでサインインしているプレイヤー) をロビー セッションに追加します。これがロビー セッションに追加される最初のメンバーである場合、このメソッドは新しいロビー セッションを作成します。 |
| [XblMultiplayerManagerLobbySessionRemoveLocalUser](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionremovelocaluser.md) | `remove_local_user()` | 指定されたメンバーをロビーおよびゲーム セッションから削除します。 |
| [XblMultiplayerManagerLobbySessionInviteFriends](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninvitefriends.md) | `invite_friends()` | プレイヤーがフレンド リストからフレンドを選択できるようにする標準的な XBOX UI を開き、選択されたプレイヤーをゲームに招待します。 |
| [XblMultiplayerManagerLobbySessionInviteUsers](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninviteusers.md) | `invite_users()` | 指定した XBOX プレイヤーをゲームに招待します。 |
| [XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberconnectionaddress.md) | `set_local_member_connection_address()` | ローカル メンバーのネットワーク アドレスを設定します。ゲームはこのネットワーク アドレスを使用してメンバー間のネットワーク通信を確立できます。 |
| [XblMultiplayerManagerLobbySessionSetLocalMemberProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberproperties.md) | `set_local_member_properties()` | ローカル メンバーのカスタム プロパティを設定します。プロパティは JSON 文字列で保存されます。 |
| [XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessiondeletelocalmemberproperties.md) | `delete_local_member_properties()` | ローカル メンバーのカスタム プロパティを削除します。 |
| [XblMultiplayerManagerLobbySessionSetProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties.md) / [XblMultiplayerManagerLobbySessionSetSynchronizedProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetsynchronizedproperties.md) | `set_properties()` / `set_synchronized_properties()` | ロビー セッションのカスタム プロパティを設定します。プロパティは JSON 文字列で保存されます。プロパティがデバイス間で共有され、複数のデバイスから同時に更新される可能性がある場合は、同期版のメソッドを使用してください。 |
| [XblMultiplayerManagerGameSessionIsHost](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost.md) | `is_host()` | 現在のデバイスがロビー ホストとして動作しているかどうかを示します。 |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost.md) | `set_synchronized_host()` | ロビーのホストを設定します。 |
| **プロパティ** | | |
| [XblMultiplayerManagerLobbySessionLocalMembers](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionlocalmembers.md) | `local_members()` | ローカル デバイスでサインインしているメンバーのコレクション。 |
| [XblMultiplayerManagerLobbySessionMembers](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionmembers.md) | `members()` | ロビー セッションにいるメンバーのコレクション。 |
| [XblMultiplayerManagerLobbySessionSetProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties.md) | `properties()` | ロビー セッションのプロパティのコレクションを表す JSON オブジェクト。 |
| [XblMultiplayerManagerLobbySessionHost](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionhost.md) | `host()` | ロビーのホスト メンバー。 |

## Multiplayer Game Session クラス&#x20;

| 言語 | クラス |
| - | - |
| C | `XblMultiplayerManagerGameSession*` プレフィックス |
| C++ | `multiplayer_game_session` |

ゲーム セッションは、実際のゲーム プレイのインスタンスに参加している XBOX services メンバーのグループを表します。これには、マッチメイキング サービスを介してマッチングされたプレイヤーが含まれることがあります。

ロビー セッションのメンバーを含む新しいゲーム セッションを開始するには、[XblMultiplayerManagerJoinGameFromLobby](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby.md) を呼び出します。XBOX services マッチメイキングを使用する場合は、[XblMultiplayerManagerFindMatch](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch.md) を呼び出します。サードパーティのマッチメイキング サービスを使用する場合は、[XblMultiplayerManagerJoinGame](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame.md) を呼び出します。

以下の表では、Multiplayer Manager でより一般的に使用されるメソッドとプロパティの一部を説明しています (すべてではありません)。クラス メンバーの完全な説明一覧については、このクラスの API リファレンスを参照してください。

| C | C++ | 説明 |
| - | - | - |
| **メソッド** | | |
| [XblMultiplayerManagerGameSessionSetProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetproperties.md) / [XblMultiplayerManagerGameSessionSetSynchronizedProperties](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedproperties.md) | `set_properties()` / `set_synchronized_properties()` | ゲーム セッションのカスタム プロパティを設定します。プロパティは JSON 文字列で保存されます。プロパティがデバイス間で共有され、複数のデバイスから同時に更新される可能性がある場合は、同期版のメソッドを使用してください。 |
| [XblMultiplayerManagerGameSessionIsHost](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost.md) | `is_host()` | 現在のデバイスがゲーム ホストとして動作しているかどうかを示します。 |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost.md) | `set_synchronized_host()` | ゲームのホストを設定します。 |
| **プロパティ** | | |
| [XblMultiplayerManagerGameSessionMembers](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionmembers.md) | `members()` | ゲーム セッションにいるメンバーのコレクション。 |
| [XblMultiplayerManagerGameSessionPropertiesJson](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionpropertiesjson.md) | `properties()` | ゲーム セッションのプロパティのコレクションを表す JSON オブジェクト。 |
| [XblMultiplayerManagerGameSessionHost](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionhost.md) | `host()` | ゲームのホスト メンバー。 |


## Related topics

- [Multiplayer Manager の概要](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpm/live-multiplayer-manager-overview.md)
- [Multiplayer Manager の概念](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpm/concepts/live-mm-concepts-nav.md)
- [XBOX Achievements Manager API の概要](https://docs.xbox.com/ja-jp/services/xbox-services/player-data/achievements/achievements-manager/live-achievements-manager-overview.md)
- [Multiplayer Session Directory の概要](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview.md)
- [Multiplayer 概念の概要](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/concepts/live-multiplayer-concepts.md)
