> ## 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 チャットの仕組みを理解する

> PartyLocalChatControl、ネットワーク、ハードウェア コーデック、組み込みの音声認識と翻訳機能を含む、PlayFab Party のボイスおよびテキスト チャットの概要。

PlayFab Party を使用すると、ゲームにボイスおよびテキスト コミュニケーションを簡単に追加できます。

PlayFab Party チャットは:

* **柔軟**: プレイヤーがどのようにコミュニケーションするかを完全に制御できます。
* **強力**: サポートされているプラットフォームでハードウェア コーデック アクセラレーションを使用します。
* **アクセシブル**: Azure Cognitive Services を活用し、音声認識、テキスト読み上げ、翻訳機能が組み込まれており、簡単に有効化できます。
* **効率的**: チャット システムがネットワーク層と密接に統合されているため、音声データは可能な限り効率的な方法で送信されます。

## チャットの基本

ゲームにボイスおよびテキスト コミュニケーションを追加するには、まず `PartyLocalChatControl` オブジェクトを作成する必要があります。この
`PartyLocalChatControl` オブジェクトは、特定のローカル ユーザーに関連するチャット操作の管理オブジェクトとして機能し、
入力および出力デバイス、ミュート状態、アクセシビリティ設定を選択できます。各ローカル ユーザーは、1 つのチャット コントロールしか
持てません。ローカル チャット コントロールが別のチャット コントロールと通信するには、次の要件を満たす必要があります:

1. 2 つのチャット コントロールが同じネットワークに存在する必要があります。
2. 2 つのチャット コントロール間の [チャット許可](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting) が、
   オーディオまたはテキストの通信を許可する必要があります。

ローカル チャット コントロールを取得したら、`PartyNetwork::ConnectChatControl()` を呼び出してネットワークに接続できるようになります。
接続すると、ネットワーク内の他のデバイスに `PartyChatControlJoinedNetworkStateChange` 状態変更で
チャット コントロールがネットワークに参加したことが通知されます。また、既にネットワーク内にある他のすべてのチャット コントロールに対して `PartyChatControlJoinedNetworkStateChange`
を受信し、すぐにそれらと通信できるようになります。

## オーディオ入力と出力

Party では、`PartyLocalChatControl::SetAudioInput()` および `PartyLocalChatControl::SetAudioOutput()` メソッドを使用して、
チャット コントロールが使用するオーディオ デバイスを選択できます。これらのメソッドの動作を変更するには、`PartyAudioDeviceSelectionType` 列挙型を使用します:

### `PartyAudioDeviceSelectionType::None`

このオーディオ デバイス選択タイプが選択されると、チャット コントロールはオーディオ デバイスを使用しません。このオーディオ デバイス選択タイプがデフォルトです。

### `PartyAudioDeviceSelectionType::SystemDefault`

このオーディオ デバイス選択タイプが選択されると、チャット コントロールはシステムの既定の通信デバイスの使用を試みます。
Windows では、プレイヤーはいつでも Windows のサウンド コントロール パネルからこのデバイスを変更でき、Party はそれらの変更に自動的に応答します。この選択タイプは XBOX One ではサポートされておらず、複数のローカル ユーザーが同時にチャットに参加している場合には一般的に推奨されません。

### `PartyAudioDeviceSelectionType::PlatformUserDefault`

このオーディオ デバイス選択タイプが選択されると、`PartyLocalChatControl::SetAudioInput()` および `PartyLocalChatControl::SetAudioOutput()`
は `audioDeviceSelectionContext` パラメーターにプラットフォーム ユーザー ID を設定する必要があります。Party はその後、
そのユーザーに関連付けられているプラットフォームの既定の通信デバイスを使用しようとします。XBOX One では、`audioDeviceSelectionContext`
はチャット コントロールに現在紐付けられているユーザーに関連付けられている XBOX User ID である必要があります。

### `PartyAudioDeviceSelectionType::Manual`

このオーディオ デバイス選択タイプが選択されると、`PartyLocalChatControl::SetAudioInput()` および `PartyLocalChatControl::SetAudioOutput()`
は `audioDeviceSelectionContext` パラメーターを有効なオーディオ デバイス識別子として使用し、その識別子と一致する任意のデバイスの
使用を試みます。PlayFab Party がサポートする識別子の種類については、次の表を参照してください:

| **プラットフォーム** | **使用するもの**                                                                                                                                                                                                               |
| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Windows 10   | [`IMMDevice`](https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-getid) または [`Windows.Media.Devices`](https://learn.microsoft.com/en-us/uwp/api/windows.media.devices.mediadevice) |
| XBOX         | XBOX GDK のドキュメントを参照                                                                                                                                                                                                      |

<Note>
  XBOX One では `PartyAudioDeviceSelectionType::PlatformUserDefault` を、Windows プラットフォームでは `PartyAudioDeviceSelectionType::SystemDefault` を使用することを強く推奨します。
</Note>

## チャット許可とミュート

Party を使用すると、プレイヤーが互いにどのようにコミュニケーションできるかをきめ細かく制御できます。チームやチャネルを指定するのではなく、
Party では各チャット コントロール ペア間の許可を明示的に定義する必要があります。
チャット許可、ミュート、および一般的なチャット シナリオの構築方法の詳細については、
[チャット許可の概要](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting) ページを参照してください。

## テキスト チャット、翻訳、およびモデレーション

Party では、他のチャット コントロールとの間でテキスト チャットを送受信することもできます。`PartyLocalChatControl::SendText()`
メソッドを使用すると任意の数のチャット コントロールにテキスト メッセージを送信できますが、適切な `PartyChatPermissionOptions::ReceiveText` チャット許可を持つ
チャット コントロールのみがメッセージを受信することを保証できます。

`PartyLocalChatControl::SetTextChatOptions()` を呼び出すことで、テキスト チャットの翻訳を有効にすることもできます。
`PartyTextChatOptions::TranslateToLocalLanguage` オプションを設定すると、Party は受信テキスト メッセージをローカル
チャット コントロールの言語に翻訳します。チャット コントロールの言語はチャット コントロールの作成時にオプションで構成でき、
`PartyLocalChatControl::GetLanguage()` を呼び出してアクセスできます。翻訳は受信音声認識文字起こしにも適用されます。

テキスト チャットにはテキスト モデレーションも利用可能です。この機能の詳細については、[テキスト モデレーションの使用](/services/playfab/community/voice-communications/concepts-text-moderation) ページを参照してください。

## アクセシブルなチャット

Azure Speech Services を活用して、Party はプレイヤーのボイス チャットを文字起こしし、テキストから音声を合成できます。
この機能にはいくつかの用途がありますが、主にアクセシビリティ支援として設計されました。この機能の有効化を
アクセシビリティ プレイヤー設定に関連付けることを推奨します。Party が提供するアクセシビリティ機能の使用方法の詳細については、[テキスト読み上げのガイドライン](/services/playfab/community/voice-communications/party-text-to-speech-ux-guidelines) および [音声認識のガイドライン](/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines) を参照してください。

## オーディオ入力のノイズ抑制

Party を使用すると、キャプチャされたマイク オーディオをリモート チャット コントロールに送信する前に、背景ノイズを抑制できます。これにより、プレイヤーのボイス オーディオの品質を大幅に向上させることができます。ノイズ抑制の有効化方法の詳細については、[ノイズ抑制の使用](/services/playfab/community/voice-communications/concepts-noise-suppression) ページを参照してください。

<Note>
  ノイズ抑制は現在、iOS および Android でのみ使用できます。
</Note>

## 次のステップ

* [PlayFab Party のチャット許可とミュートの詳細を確認する](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)


## Related topics

- [テキスト モデレーションの使用](/ja-jp/services/playfab/community/voice-communications/concepts-text-moderation.md)
- [Microsoft Azure PlayFab Party を使用したチャットの追加](/ja-jp/services/xbox-services/multiplayer/chat/playfab-party-intro-chat.md)
- [チャット](/ja-jp/services/xbox-services/multiplayer/chat/index.md)
- [クイックスタート (Windows) - Party とマルチプレイヤー](/ja-jp/services/playfab/sdks/unified-sdk/quickstart-windows-party.md)
- [PlayFab Party objects and their relationships](/ja-jp/services/playfab/multiplayer/networking/concepts-objects.md)
