PlayFab Party チャットの仕組みを理解する

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

PlayFab Party チャットには、以下のようなものがあります。

  • 柔軟性: プレイヤーがどのようにコミュニケーションをとるかを自由にコントロールできます。
  • 強力: サポート対象のプラットフォームでハードウェア コーデック アクセラレーションを使用します。
  • アクセス可能: Azure Cognitive Services に対応し、音声変換機能、音声合成機能、翻訳機能が組み込まれて簡単に利用できます。
  • 効率性: チャット システムがネットワーク層と密接に統合され、音声データは最も効率的な方法で必要な場所に送信されます。

チャットの基本

ゲームに音声とテキストによるコミュニケーションを追加するには、まず PartyLocalChatControl オブジェクトを作成する必要があります。 この PartyLocalChatControl オブジェクトは、特定のローカル ユーザーに関するチャット操作の管理オブジェクトとして機能し、入出力デバイス、ミュート状態、アクセシビリティの環境設定などを選択することができます。 各ローカル ユーザーは、複数のチャット コントロールはできません。 ローカル チャット コントロールで他のチャット コントロールと通信するためには、以下の要件を満たす必要があります。

  1. 2 つのチャット コントロールが同じネットワーク上にある必要があります。
  2. 2 つのチャット コントロールの間のチャットのアクセス許可は、音声や文字によるコミュニケーションが取れる必要があります。

ローカル チャット コントロールを手に入れたら、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 ユーザー ID を入力する必要があります。

PartyAudioDeviceSelectionType::Manual

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

プラットフォーム 使用対象
Windows 10 IMMDevice または Windows.Media.Devices
Xbox Xbox XDK ドキュメントを参照してください

注意

Xbox One では PartyAudioDeviceSelectionType::PlatformUserDefault を、Windows プラットフォームでは PartyAudioDeviceSelectionType::SystemDefault を使用することを強くお勧めします。

チャットのアクセス許可とミュート

Party では、プレイヤーどうしのコミュニケーション方法をきめ細かく制御できます。 Party では、チームやチャネルを指定するのではなく、各ペアのチャット コントロール間のアクセス許可を明示的に定義する必要があります。 チャット権限、ミュート、一般的なチャット シナリオの作成方法の詳細については、チャット権限の概要ページを参照してください。

テキスト チャット、翻訳、モデレート

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

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

テキスト チャットでもテキスト モデレーションが利用可能です。 この機能の詳細については、テキスト モデレーションの使用ページを参照してください。

アクセシビリティ対応のチャット

Azure Speech Services を搭載した Party は、プレイヤーのボイス チャットの文字起こしを行ったり、文字から音声を合成したりすることができます。 この機能にはいくつかの用途がありますが、主にアクセシビリティの補助として設計されました。 簡単操作のプレイヤー設定に対してこの機能を有効化することをお勧めします。 当事者が提供するユーザー補助機能の使用方法の詳細については、テキスト読み上げのガイドラインおよびテキスト読み上げのガイドラインをご覧ください。

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

Party を使用すると、リモート チャット コントロールに送信される前に、キャプチャされたマイク音声のバックグラウンド ノイズを抑制できます。 これにより、プレーヤーの音声オーディオの品質が大幅に向上します。 ノイズ抑制を有効にする方法の詳細については、ノイズ抑制の使用ページを参照してください。

注意

ノイズ抑制は現在、iOS と Android でのみ使用できます。

次の手順