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

# Integrating with PlayFab Multiplayer Servers

> 完了した各マッチに対して自動的に Multiplayer Server ビルドまたはビルド エイリアスを割り当てるように PlayFab マッチメイキング キューを構成する方法。

マッチメイキングには、マッチの結果に対して自動的にゲーム サーバーを作成できるオプションが含まれています。割り当てられたサーバーは、キューの構成で設定されているビルドを実行します。起動時に、サーバーには初期プレイヤーのリストとしてマッチのメンバーが渡されます。

マッチメイキング キューは、単一のマルチプレイヤー サーバー ビルドまたはビルド エイリアスに紐付けられます。

## マッチメイキングとサーバーの直接統合を使用するための要件

マッチメイキングからマルチプレイヤー サーバーを割り当てるには、まずビルドを構成してデプロイする必要があります。任意でビルド エイリアスを作成して使用することもできます。ビルド エイリアスはタイトルの使用にさらに柔軟性を提供するため、推奨されます。[Multiplayer Server ビルド](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds) および [Multiplayer Server ビルド エイリアス](/services/playfab/multiplayer/servers/allocating-with-build-alias) について詳しくは、こちらのリンクを参照してください。

マッチメイキングは、ビルドに最適なリージョンでマッチを割り当てられるように、キューにリージョン選択ルールを追加する必要もあります。リージョン選択ルールに渡すレイテンシ計測値は、ビルドがアクティブなリージョンと一致する必要があります。リージョン選択ルールに属性を渡す方法の詳細については、[リージョン選択ルール](/services/playfab/multiplayer/matchmaking/ticket-attributes#region-selection-rule) を参照してください。

## キューでのサーバー割り当てを有効にする

キューでサーバー割り当てを有効にするには、キュー構成ページで **サーバー割り当てを有効にする** のチェックボックスをオンにする必要があります。それを有効にしたら、**Build alias** または **Build Id** のいずれかを選択します。ドロップダウンからキューで使用する正しい値を選択します。この機能を有効にすると、マッチメイキングは、そのキュー内で作成されるすべてのマッチに対してサーバーの割り当てを試みます。

以下の例は、Build Id を使用したマルチプレイヤー サーバー統合を持つキューの構成のあるべき姿を示しています。

```json theme={null}
"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildId": "88b3e315-829c-4b6d-9872-74f427ad5331",
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}
```

ビルド エイリアスを使用した同じ例を以下に示します。

```json theme={null}
"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildAliasParams": {
        "AliasId": "d14e2ac7-ea51-47aa-a7ba-cc427ab74f9s"
    },
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}
```

サーバー割り当てを有効にしても、マッチメイキングへの呼び出しのフローは変わりません。マッチメイキングがマッチのためにサーバーを割り当てると、結果として得られるサーバーの詳細は、[GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch) を呼び出すことによって Match オブジェクト自体から読み取ることができます。

サーバー割り当てが有効になっているキューに対する `GetMatch` 呼び出しのサンプル応答を以下に示します。

```json theme={null}
{
    "MatchId": "7c36330d-46b5-443f-8d8f-10390bce09d5",
    "Members": [{
        "TeamId": "",
        "Entity": {
            "Id": "67282A13A1A58910",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    },
    {
        "TeamId": "",
        "Entity": {
            "Id": "6DB2B17FD21CC230",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    }],
    "RegionPreferences": ["WestUs", " EastUs"],
    "ServerDetails": {
        "IPV4Address": "40.76.31.170",
        "Ports": [{
            "Name": "game_port",
            "Num": 30003
        }]
    }
}
```

クライアントは、応答のサーバー詳細セクションの IP とポートを使用してサーバーに接続できます。クライアントをマルチプレイヤー サーバーに接続する方法の詳細については、[クライアントをサーバーに接続する](/services/playfab/multiplayer/servers/connecting-clients-to-game-servers) を参照してください。

<Note>
  ビルドのリージョンの容量が不足すると、マッチメイキングはそのリージョンでキューのマッチを割り当てることができなくなります。マッチメイキングは、チケットの有効期限が切れるまで割り当てを再試行し続けます。マルチプレイヤーの容量を増やすには、[増やされたコア制限と追加の Azure リージョンにアクセスする](/services/playfab/multiplayer/servers/identifying-and-increasing-core-limits) を参照してください。
</Note>

## ゲーム サーバーに渡される情報

マッチメイキングがサーバーに渡す情報のリストは次のとおりです。

* **SessionId** - サーバーの `SessionId` は、マッチの MatchId と等しくなります。
* **InitialPlayers** - この値はマッチのメンバーのリストに設定されます。プレイヤーのリストは、ゲーム内で [GSDK](/services/playfab/multiplayer/servers/integrating-game-servers-with-gsdk) を使用して読み取ることができます。
* **PreferredRegions** - このフィールドは、マッチの `RegionPreferences` フィールドに設定されます。ゲーム サーバー サービスは、このリストからサーバーの適切なリージョンを選択します。

マッチメイキングはチケット属性をゲーム サーバーに渡しません。ゲームがサーバー上で何らかのチケット属性にアクセスする必要がある場合、`ReturnMemberAttributes` ヘッダーを `true` にして [GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch) を呼び出すことで実現できます。

<Note>
  最近、サーバー割り当て時のキュー名の受け渡しを有効にしました。この機能はプレビュー段階であり、詳細は [こちら](https://github.com/PlayFab/MpsSamples/blob/main/MatchmakeSample/matchMakingAndMps.md) を参照してください。
</Note>


## Related topics

- [PlayFabMultiplayerServer.OnServerLobbyLeaveAsServerCompleted](/ja-jp/services/playfab/multiplayer/lobby/unity-multiplayer-api-reference/PlayFab.Multiplayer/PlayFabMultiplayer.PlayFabMultiplayerServer/OnServerLobbyLeaveAsServerCompleted.md)
- [PlayFabMultiplayer.PlayFabMultiplayerServer](/ja-jp/services/playfab/multiplayer/lobby/unity-multiplayer-api-reference/PlayFab.Multiplayer/PlayFabMultiplayer.PlayFabMultiplayerServer/PlayFabMultiplayerServer.md)
- [PlayFab Multiplayer Server 用語](/ja-jp/services/playfab/multiplayer/servers/server-terms.md)
- [PlayFabMultiplayerServer class](/ja-jp/services/playfab/multiplayer/lobby/unity-multiplayer-api-reference/PlayFab.Multiplayer/PlayFabMultiplayer.PlayFabMultiplayerServer/overview.md)
- [PlayFab Multiplayer Servers 2.0 の課金](/ja-jp/services/playfab/multiplayer/servers/billing-for-thunderhead.md)
