メインコンテンツへスキップ
Game Chat 2 を使用して、ユーザーのプライバシー設定を尊重しつつ、音声およびテキストによるチャットコミュニケーションをアプリに追加できます。また、XBOX コンソール GDK タイトルの音声およびテキスト チャットに関する要件も満たすことができます。Game Chat 2 は、ネットワークトランスポートの提供を GDK タイトルに依存します。チャット音声とトランスポートの両方を含むオールインワンソリューションをお探しの場合は、Microsoft Azure PlayFab Party をご検討ください。 API 固有のリファレンスの詳細については、API 内容 (Game Chat 2) を参照してください。
Game Chat 2 と PlayFab Party API は同じ内部プラットフォーム機能を使用しており、タイトル内で並行して使用することはできません。
Game Chat 2 は、ゲームのコミュニケーションを管理するために次の表に示す機能を提供します。 アプリは、共にチャットすることが想定されるローカルデバイスのユーザーとリモートデバイスのユーザーをライブラリに通知します。次に、アプリは各ユーザー間の関係を構成します。 Game Chat 2 は、ローカルユーザーのマイクから音声をポーリングし、自動ゲイン制御とボイスアクティビティ検出を実行し、データをエンコードし、chat_manager::start/finish_processing_data_frames を介して Game Chat 2 のリモートインスタンスに配信される音声データを公開します。 アプリは、game_chat_state_change オブジェクトに含まれるデータを、同じオブジェクトで指定された Game Chat 2 のリモートインスタンスに配信します。 データを受信すると、リモートインスタンスのアプリは chat_manager::process_incoming_data を介して自身の Game Chat 2 のインスタンスにデータを送信します。Game Chat 2 は受信データをデコードし、ローカルユーザーのオーディオデバイスにレンダリングします。

コミュニケーション特権とプライバシー

Game Chat 2 は XBOX services の特権およびプライバシー要件を強制します。コミュニケーション特権のないユーザーからは音声データは生成されません。プライバシー設定でブロックされたユーザーからの音声データはレンダリングされません。

ネットワーク初期化

Game Chat 2 ライブラリを初期化する前にネットワーク初期化を待つ必要はありません。ただし、Game Chat 2 パケットを送受信するためのソケットを作成する前には、ネットワーク初期化を待つ必要があります。Game Chat 2 は、ネットワークが初期化されるまで送信するパケットを生成しません。ネットワーク初期化の詳細については、ネットワーク初期化と接続性 を参照してください。

サスペンド/レジューム

RegisterAppStateChangeNotification を介してサスペンドおよびレジュームイベントを登録する必要があります。サスペンド時には、chat_manager::cleanup() を呼び出して Game Chat 2 をクリーンアップする必要があります。この呼び出しは完了までに数百ミリ秒かかる場合があるため、サスペンドハンドラーのタイムアウトを避けるために、他のサスペンドロジックと並行または非同期で実行する必要があります。cleanup 呼び出しはサスペンドハンドラーが戻る前に完了する必要はありません。 レジューム時、cleanup 呼び出しが完了したら、chat_manager::singleton_instance().initialize(...) を呼び出して Game Chat 2 を再初期化する必要があります。サスペンド/レジュームの状態変化で cleanup および initialize の呼び出しに失敗すると、Game Chat 2 の使用を続行するとタイトルがクラッシュします。

ユニバーサル Windows プラットフォーム (UWP) および XBOX One ERA から GDK への API 変更

Game Chat 2 をサポートするために、API に次の変更が加えられました。
  • game_chat_audio_encoding_type_and_bitrate は game_chat_audio_encoding_bitrate に更新されました。
  • set_audio_encoding_type_and_bitrate は set_audio_encoding_bitrate に更新されました。
  • audio_encoding_type_and_bitrate は audio_encoding_bitrate に更新されました。
  • game_chat_communication_relationship_adjuster::privilege はタイトルで解決可能な特権の問題を示すように更新されました。
  • game_chat_communication_relationship_adjuster::privilege_check_failed が追加されました。
  • chat_manager::set_legacy_era_uwp_compat_mode_enabled() API が Game Chat 2 の許可された GDK バージョンに追加され、UWP および ERA バージョンの Game Chat 2 と相互運用できるようになりました。
  • Game Chat 2 は、XGameRuntimeIsFeatureAvailable で示されるとおり、XGameRuntimeFeature::XNetworking 機能が利用可能な場合にのみ利用できます。
  • ユーザーは Game Chat 2 インスタンスに追加される前に、XUserAddAsync で Microsoft Game Development Kit に追加されます。
  • オーディオフォーカス検出のサポートは今後の GDK プレビューで提供される予定です。

UWP および ERA から GDK への機能変更

  • タイトル起動時とレジューム後、Game Chat 2 のためにパケットを送信する前に、ネットワーク初期化 を待ちます。Game Chat 2 はネットワークが初期化される前に初期化されます。
  • RegisterAppStateChangeNotification を介してサスペンドおよびレジュームイベントを登録します。サスペンド後には、chat_manager::cleanup() で Game Chat 2 をクリーンアップします。レジューム後には、Game Chat 2 を再初期化します。サスペンド/レジュームサイクルをまたいで使用するとクラッシュする可能性があります。

リファレンス API ドキュメント

関連項目

API 内容 (GameChat2) Game Chat 2 C++ API の使用 リアルタイム音声操作 Microsoft Game Development Kit
最終更新日 2026年10月9日