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

# PartyDirectPeerConnectivityOptions

> ネットワーク内のデバイス間での直接ピアツーピア接続の使用試行を制御するフラグ。

ネットワーク内のデバイス間での直接ピアツーピア接続の使用試行を制御するフラグ。

## 構文

```cpp theme={null}
enum class PartyDirectPeerConnectivityOptions  : int32_t  
{  
    None = 0x0,  
    SamePlatformType = 0x1,  
    DifferentPlatformType = 0x2,  
    AnyPlatformType = SamePlatformType | DifferentPlatformType,  
    SameEntityLoginProvider = 0x4,  
    DifferentEntityLoginProvider = 0x8,  
    AnyEntityLoginProvider = SameEntityLoginProvider | DifferentEntityLoginProvider,  
    OnlyServers = 0x10,  
}  
```

## 定数

| 定数                           | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |                                           |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| None                         | フラグは指定されていません。<br /><br /> フラグがないということは、直接ピア接続の試行が許可されていないことを意味します。デバイス間のすべてのエンドポイント メッセージとチャット データは、常に透過的クラウド リレー サーバー経由で送信され、IP アドレス情報が交換されることはありません。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |                                           |
| SamePlatformType             | 同じプラットフォーム タイプのデバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> 一対のデバイスは、それぞれが使用する特定の Party ライブラリに関連付けられているハードウェアや OS プラットフォーム (例: Windows PC、XBOX ゲーム機、iOS ベースのモバイル デバイス) が同じ種類であると識別された場合、直接ピアツーピア接続の確立を試みます。<br /><br /> このフラグは単独では直接ピアツーピア接続の試行を許可しないことに注意してください。`SameEntityLoginProvider` フラグと `DifferentEntityLoginProvider` フラグのいずれか、または両方と組み合わせる必要があります。   <br /><br /> このフラグは [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体内では `OnlyServers` フラグと組み合わせることはできません。[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) 値の一部としては `OnlyServers` と組み合わせられます。                                                                                                                                                                                                                                                                    |                                           |
| DifferentPlatformType        | 異なるプラットフォーム タイプのデバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> 一対のデバイスは、それぞれが使用する特定の Party ライブラリに関連付けられているハードウェアや OS プラットフォーム (例: Windows PC、XBOX ゲーム機、iOS ベースのモバイル デバイス) が異なる種類であると識別された場合、直接ピアツーピア接続の確立を試みます。<br /><br /> このフラグは単独では直接ピアツーピア接続の試行を許可しないことに注意してください。`SameEntityLoginProvider` フラグと `DifferentEntityLoginProvider` フラグのいずれか、または両方と組み合わせる必要があります。   <br /><br /> このフラグは [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体内では `OnlyServers` フラグと組み合わせることはできません。[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) 値の一部としては `OnlyServers` と組み合わせられます。                                                                                                                                                                                                                                                                  |                                           |
| AnyPlatformType              | プラットフォーム タイプに関係なくデバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> このフラグは \`\`\`SamePlatformType                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | DifferentPlatformType\`\`\` と等価です。        |
| SameEntityLoginProvider      | 同じプロバイダーを使用してログインされた認証済みユーザー PlayFab エンティティ ID を持つデバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> ローカル ユーザーをネットワークに最初に認証しているデバイスは、新たに認証しているユーザーと同じプロバイダー (例: XBOX Live、Facebook、iOS、Google) を使用してログインされた認証済みユーザー PlayFab エンティティ ID を少なくとも 1 つ持つリモート デバイスとの直接ピアツーピア接続の確立を試みます。<br /><br /> このフラグは単独では直接ピアツーピア接続の試行を許可しないことに注意してください。`SamePlatformType` フラグと `DifferentPlatformType` フラグのいずれか、または両方と組み合わせる必要があります。   <br /><br /> このフラグは [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体内では `OnlyServers` フラグと組み合わせることはできません。[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) 値の一部としては `OnlyServers` と組み合わせられます。<br /><br />                                                                                                                                                                                                       |                                           |
| DifferentEntityLoginProvider | 異なるプロバイダーを使用してログインされた認証済みユーザー PlayFab エンティティ ID を持つデバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> ローカル ユーザーをネットワークに最初に認証しているデバイスは、新たに認証しているユーザーと同じプロバイダー (例: XBOX Live、Facebook、iOS、Google) を使用してログインされた認証済みユーザー PlayFab エンティティ ID を持たないリモート デバイスとの直接ピアツーピア接続の確立を試みます。<br /><br /> このフラグは単独では直接ピアツーピア接続の試行を許可しないことに注意してください。`SamePlatformType` フラグと `DifferentPlatformType` フラグのいずれか、または両方と組み合わせる必要があります。   <br /><br /> このフラグは [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体内では `OnlyServers` フラグと組み合わせることはできません。[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) 値の一部としては `OnlyServers` と組み合わせられます。                                                                                                                                                                                                                         |                                           |
| AnyEntityLoginProvider       | 認証済みユーザー PlayFab エンティティ ID のログインに使用されたプロバイダーに関係なく、デバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> このフラグは \`\`\`SameEntityLoginProvider                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | DifferentEntityLoginProvider\`\`\` と等価です。 |
| OnlyServers                  | いずれかのデバイスに PlayFab エンティティ タイプが `game_server` の認証済みユーザーが少なくとも 1 人存在する場合、デバイス間で直接ピアツーピア接続が試行されることがあります。<br /><br /> ローカル ユーザーをネットワークに最初に認証しているデバイスは、[PartyManager::CreateLocalUserWithEntityType()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createlocaluserwithentitytype) で指定されたように、ローカル ユーザーまたはリモート デバイス上のユーザーが `game_server` の PlayFab エンティティ タイプである場合、リモート デバイスとの直接ピアツーピア接続の確立を試みます。つまり、プレイヤーのデバイスが互いに直接接続することはなく、サーバー デバイスにのみ接続します。サーバー デバイスは、すべてのプレイヤーおよび他のサーバー デバイスに直接接続を試みます。<br /><br /> このフラグは [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体内では `SamePlatformType`、`DifferentPlatformType`、`SameEntityLoginProvider`、または `DifferentEntityLoginProvider` のいずれのフラグとも組み合わせることはできません。[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) 値の一部としてはそれらのフラグと組み合わせられます。 |                                           |

## 注釈

最初のユーザーをネットワークに正常に認証する過程で、ネットワークの [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体で宣言されたこれらのフラグによって許可されている場合、デバイスは既にネットワークに参加している他のデバイスと直接ピアツーピア接続を確立しようとする場合があります。試行が成功した場合、これらの直接接続を使用してデバイス間でエンドポイント メッセージとチャット データが送信されます。デバイス間の環境的な非互換性のために試行が失敗した場合、それらのデバイス間のすべての通信は代わりに透過的クラウド リレー サーバー経由で送信されます。これらのフラグによってデバイスが直接ピア接続を試行することが許可されていない場合、IP アドレス情報を交換することはなく、エンドポイント メッセージとチャット データは常に透過的クラウド リレー サーバー経由で送信されます。<br /><br /> ローカル デバイスが特定のリモート デバイスに対して実際に直接ピアツーピア接続を確立したかどうかは、[PartyNetwork::GetDeviceConnectionType()](/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype) を呼び出して判別できます。   <br /><br /> 直接ピア接続が成功すると、一部のデバイス間でより低いレイテンシーが得られる可能性がありますが、それを確立するにはユーザーがデバイスの IP アドレスを他者に開示する必要があります。これはプライバシー上の懸念や、悪意のあるユーザーがタイトルの外部でピアのデバイスやインターネット接続を攻撃する可能性を有効化するといった懸念があります。また、ポリシー上の理由により特定のプラットフォームでは許可されない場合もあります。パフォーマンスおよびセキュリティ目標に応じて適切なフラグを使用してください。   <br /><br /> 特定のネットワークの [PartyNetworkConfiguration::directPeerConnectivityOptions](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 値に加えて、[PartyManager::SetOption()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption) を使用して [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) を設定することにより、認証するすべてのネットワークに対して、デバイスによってこれらのフラグをさらに制約することが任意で可能です。すべてのフラグはビット単位 AND 操作を使用して評価されます。つまり、特定のフラグが特定のネットワークのデバイスのペアに対して有効になるのは、それが 3 つの場所で有効になっている場合のみです。すなわち、ネットワークの [PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration) 構造体、および *両方* のデバイスのそれぞれのローカル マスク オプションです。Party ネットワークが該当する形式の直接ピア接続を許可していても、いずれかのデバイスがフラグを有効にしないことで、IP アドレスの開示およびその間の直接接続の試行を一方的にオプトアウトできます。[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption) 値は、ネットワークによって有効化されたすべての直接ピア接続を許可する既定に設定されているため、デバイス固有の要件でその関与する直接ピア接続の一部またはすべてを防止する必要がある場合のみ、これを構成すればよいということになります。   <br /><br /> 過剰なリソース消費を回避するため、Party ライブラリは、これらのフラグによって許可されている場合でも、現在参加しているすべてのネットワーク全体で、あるデバイスが構成された最大数を超える直接ピア接続を確立しようとしないよう、内部的に防止します。これは、より多くのリモート デバイスを持つ大規模または複数のネットワークにデバイスが参加する機能には影響しません。追加のデバイスとの通信は、単に透過的クラウド リレー サーバー経由で送信されるだけです。この直接ピア接続の最大数を変更するには、[PartyManager::SetOption()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption) を使用して [PartyOption::LocalDeviceMaxDirectPeerConnections](/services/playfab/multiplayer/networking/reference/enums/partyoption) を設定します。   <br /><br /> 使用中の特定の基盤となる送信方法が全体的な論理的な通信能力を変更するわけではないため、特定のデバイスのペアに対して直接ピアツーピア接続の可用性を積極的に強制しないこと (つまり、[PartyNetwork::GetDeviceConnectionType()](/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype) が [PartyDeviceConnectionType::DirectPeerConnection](/services/playfab/multiplayer/networking/reference/enums/partydeviceconnectiontype) 以外の値を報告する場合に [PartyNetwork::LeaveNetwork()](/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_leavenetwork) を呼び出さないこと) をお勧めします。ゲーム デザインに直接ピア接続を奨励する最大メッセージ レイテンシーに関する厳格な要件がある場合は、送信メカニズムに基づく抽象的な仮定を行うのではなく、[PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds](/services/playfab/multiplayer/networking/reference/enums/partyendpointstatistic) 統計によって報告されるそのレイテンシーの現在の具体的な観察に対して行動することをお勧めします。そうでない場合、環境要因が制御外にあるために近くの透過的クラウド リレー サーバーを常に使用する必要がある同じフレンド グループとプレイしようとしているユーザーを、継続的に妨げる可能性があります。

## 要件

**ヘッダー:** Party.h

## 関連項目

[Party メンバー](/services/playfab/multiplayer/networking/reference/party_members)\
[PartyNetworkConfiguration](/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration)\
[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](/services/playfab/multiplayer/networking/reference/enums/partyoption)\
[PartyManager::SetOption](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption)\
[PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds](/services/playfab/multiplayer/networking/reference/enums/partyendpointstatistic)\
[PartyLocalEndpoint::GetEndpointStatistics](/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics)


## Related topics

- [PartyOption](/ja-jp/services/playfab/multiplayer/networking/reference/enums/partyoption.md)
- [PartyNetworkConfiguration](/ja-jp/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md)
- [PlayFab Party リリース ノート](/ja-jp/services/playfab/multiplayer/networking/release-notes.md)
- [Party C/C++ API の概要](/ja-jp/services/playfab/multiplayer/networking/reference/party_members.md)
- [DirectPeerConnectivityOptions](/ja-jp/services/playfab/multiplayer/networking/unity-party-api-reference/enums/partyunitydirectpeerconnectivityoptions.md)
