この記事では、ゲームにチャットを実装する手順の要約を提供します。 詳細については、記事の最後にある関連項目セクションのページを必ず確認してください。
Microsoft Azure PlayFab パーティーを使用してチャット機能を実装する
Microsoft Game Development Kit (GDK) に含まれる PlayFab パーティーは、PC/Xbox エコシステムでの同期チャットに推奨されるソリューションです。
- PlayFab パーティー SDK を設定する: PlayFab パーティー SDK は、ゲームのネットワークと音声/テキスト チャット通信を提供します。 さまざまなプラットフォームとゲーム エンジン用の PlayFab パーティー SDK があります。 必要なものを選択してダウンロードします。
- プレイヤーを認証する: Xbox および PC タイトルで PlayFab パーティーを使用している場合は、パーティー Xbox Live ヘルパー ライブラリを使用して、一貫した機能と動作を確保することをお勧めします。 このライブラリは、タイトルが Xbox サービスの要件を満たすのに役立ちます。
- ネットワークを作成する: ゲーム セッションで PlayFab パーティー ネットワークを使用する場合は、PartyManager::CreateNewNetwork() を使用して、ネットワークを作成するクライアントとプレイヤーを選択します。
-
PartyLocalChatControl オブジェクトを作成する: このオブジェクトは、特定のローカル ユーザーに関連するチャット操作の管理オブジェクトとして機能します。 入力デバイスと出力デバイス、ミュート状態、ユーザー補助の設定を選択できます。 各ローカル ユーザーは、複数のチャット コントロールはできません。 ローカル チャット コントロールが別のチャット コントロールと通信するには、次の要件を満たす必要があります。
- 2 つのチャット コントロールが同じネットワーク上にある必要があります。
- チャット コントロールをネットワークに接続する: PartyNetwork::ConnectChatControl() を呼び出します。 接続すると、ネットワーク内の他のデバイスに、チャット コントロールが PartyChatControlJoinedNetworkStateChange の状態変更でネットワークに参加したことが通知されます。 また、すでにネットワーク内にある他のすべてのチャット コントロールに対して
PartyChatControlJoinedNetworkStateChange
を受信し、すぐに通信することができます。 - オーディオの入力と出力を選択する: PlayFab パーティーを使用して、PartyLocalChatControl::SetAudioInput() と PartyLocalChatControl::SetAudioOutput() メソッドで、チャット コントロールで使用されるオーディオ デバイスを選択します。 次のメソッドの動作を変更するには、PartyAudioDeviceSelectionType 列挙型を使用します。
-
PartyAudioDeviceSelectionType::None
: このオーディオ デバイス選択の種類が既定です。 -
PartyAudioDeviceSelectionType::SystemDefault
: このオーディオ デバイス選択の種類を選択すると、チャット コントロールはシステムの既定の通信デバイスの使用を試みます。 -
PartyAudioDeviceSelectionType::PlatformUserDefault
: このオーディオ デバイス選択の種類を選択した場合、PartyLocalChatControl::SetAudioInput()
およびPartyLocalChatControl::SetAudioOutput()
では、audioDeviceSelectionContext
パラメータをプラットフォーム ユーザー ID に設定する必要があります。 PlayFab パーティーは、そのユーザーに関連付けられているプラットフォームの既定の通信デバイスの使用を試みます。 -
PartyAudioDeviceSelectionType::Manual
: このオーディオ デバイス選択の種類を選択すると、PartyLocalChatControl::SetAudioInput()
およびPartyLocalChatControl::SetAudioOutput()
では、audioDeviceSelectionContext
パラメーターを有効なオーディオ デバイス識別子として使用し、その識別子に一致するデバイスの使用を試みます。
-
- チャットのアクセス許可とミュートを実装する: PlayFab パーティーを使用すると、プレイヤー同士の通信方法を細かく制御できます。 PlayFab パーティーでは、チームやチャネルを指定するのではなく、チャット コントロールの各ペア間のアクセス許可を明示的に定義する必要があります。
- テキスト チャット、翻訳、モデレーションを実装する: PlayFab パーティーでは、他のチャット コントロールとの間でテキスト チャットを送受信することもできます。
-
PartyLocalChatControl::SendText() メソッドを使用すると、任意の数のチャット コントロールにテキスト メッセージを送信できます。 適切な
PartyChatPermissionOptions::ReceiveText
チャット アクセス許可を持つチャット コントロールのみがメッセージを受信することを保証できます。 - テキスト チャット翻訳は、PartyLocalChatControl::SetTextChatOptions() を呼び出して有効にすることもできます。
- PartyTextChatOptions::TranslateToLocalLanguage オプションを設定すると、PlayFab パーティーは受信テキスト メッセージをローカル チャット コントロールの言語に翻訳します。
-
PartyLocalChatControl::SendText() メソッドを使用すると、任意の数のチャット コントロールにテキスト メッセージを送信できます。 適切な
- アクセス可能なチャットを実装する: Azure Speech Services を利用した PlayFab パーティーは、プレイヤーのボイス チャットを書き起こし、テキストから音声を合成できます。
- オーディオ入力ノイズ抑制を実装する: PlayFab パーティーを使用すると、リモート チャット コントロールに送信される前に、キャプチャされたマイク オーディオのバックグラウンド ノイズを抑制できます。 これにより、プレーヤーの音声オーディオの品質が大幅に向上します。
関連項目
PlayFab ドキュメントは最新情報の最良のソースです。 詳細については、次の記事とサンプルを参照してください。
-
これは、ゲームで Microsoft Azure PlayFab パーティーおよび Multiplayer C++ SDK と API を使用する方法を示すシンプルなマルチプレイヤー ゲームです。 このサンプルには、ボイス チャット機能が含まれています。