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

# PlayFab Party QoS measurements

> PlayFab Party がネットワーク セッションのリージョンを選択するために QoS レイテンシ計測をどのように使用するか、およびタイトルがボイスとデータのリージョン選択にどのように影響を与えることができるか。

PlayFab Party は、タイトルがリモートの Azure リソースに低レイテンシでアクセスできるように、バックグラウンドの Quality of Service (QoS) 測定を実行します。ここでは、タイトルが Party の QoS 機能に遭遇することが予想される中核シナリオの概要を示します。

## QoS が測定されるタイミングの理解

Party ライブラリは、Party が初期化されるとすぐに QoS の測定を開始します。Party が正常に QoS を測定すると、これらの測定値をリフレッシュする唯一の方法は Party ライブラリをクリーンアップして再初期化することです。QoS の測定が失敗した場合、Party ライブラリは次回 [PartyManager::CreateNewNetwork](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork) を呼び出したときに測定を再試行します。

## Party ネットワークのリージョン選択

PlayFab Party が QoS を測定する主な理由は、タイトルが Party ネットワークがホストされる Azure リージョンを選択するときにレイテンシ データを使用できるようにするためです。

QoS 測定結果を検査するのを待たずに、タイトルは空の推奨リージョン リストを指定して [PartyManager::CreateNewNetwork](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createnewnetwork) を呼び出すことで、現在最も低レイテンシのリージョンにネットワークを割り当てることができます。

```cpp theme={null}
uint32_t regionCount = 0;
const PartyRegion* regionList = nullptr;

PartyError error = PartyManager::GetSingleton().CreateNewNetwork(
    localUser,
    &networkConfiguration,
    regionCount,
    regionList,
    nullptr,
    nullptr,
    nullptr,
    nullptr);
```

あるいは、タイトルは Party ライブラリの QoS 測定結果を検査し、タイトル固有の基準に基づいて推奨リージョンのリストを選択することもできます。

QoS 測定結果を検査するには、[PartyManager::StartProcessingStateChanges](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_startprocessingstatechanges) から成功した [PartyRegionsChangedStateChange](/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) を受け取るのを待ちます。

```cpp theme={null}
switch (stateChange->stateChangeType)
{
    case PartyStateChangeType::RegionsChanged:
    {
        auto regionsChanged = static_cast<PartyRegionsChangedStateChange*>(stateChange);
        if (regionsChanged.result == PartyStateChangeResult::Succeeded)
        {
            m_qosResultsReady = true;
        }
    }

    // ...
}
```

次に [PartyManager::GetRegions](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions) を呼び出して、現在のリージョンとレイテンシのリストを検査および評価します。

```cpp theme={null}
if (m_qosResultsReady)
{
    uint32_t regionCount;
    const PartyRegion* regionList;

    PartyError error = PartyManager::GetSingleton().GetRegions(
        &regionCount,
        &regionList);
    if (PARTY_FAILED(error))
    {
        DEBUGLOG("PartyManager::GetRegions failed: %s\n", PartyManager::GetErrorMessage(error));
        return;
    }

    // Prevent Party from using Azure regions above some latency threshold.
    // The game is unplayable in those scenarios.
    std::vector<PartyRegion> filteredRegionList = OmitRegionsAboveMaxLatency(regionCount, regionList, maxLatency);

    error = PartyManager::GetSingleton().CreateNewNetwork(
        localUser,
        &networkConfiguration,
        filteredRegionList.size(),
        filteredRegionList.data(),
        nullptr,
        nullptr,
        nullptr,
        nullptr);
    if (PARTY_FAILED(error))
    {
        DEBUGLOG("PartyManager::CreateNewNetwork failed: %s\n", PartyManager::GetErrorMessage(error));
        return;
    }
```

### リージョンごとの価格差

すべての Party リージョンが同じように課金されるわけではないことに注意してください。リージョンごとの価格差についての情報は、[価格ページ](https://playfab.com/pricing/) を参照してください。

## アクセシブルなチャット機能に最適なリージョンの使用

PlayFab Party が QoS を測定するもう 1 つの理由は、テキストから音声への合成、音声からテキストへの文字起こし、および翻訳などのより応答性の高いチャット アクセシビリティ機能を実現するためです。これらのアクセシビリティ機能はリージョンの Azure Cognitive Services リソースを使用しており、QoS を測定することで異なるリージョンの最適な使用が可能になります。

## QoS の測定失敗の理解

ネットワーク作成とチャット アクセシビリティ機能は QoS 測定に依存するため、[PartyRegionsChangedStateChange](/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) の結果とエラーの詳細を検査することは価値があります。この状態変更の失敗は、後の失敗に役立つデバッグ コンテキストを提供する場合があります。


## Related topics

- [PlayFab Party features](/ja-jp/services/playfab/multiplayer/networking/party-features.md)
- [PlayFab Party リリース ノート](/ja-jp/services/playfab/multiplayer/networking/release-notes.md)
- [PlayFab Party の概要](/ja-jp/services/playfab/multiplayer/networking/index.md)
- [XblMultiplayerPerformQoSMeasurementsArgs](/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerperformqosmeasurementsargs.md)
- [XblMultiplayerEventArgsPerformQoSMeasurements](/ja-jp/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsperformqosmeasurements.md)
