Azure PlayFab パーティー
このトピックでは、Microsoft Game Development Kit (GDK) で PlayFab Party を使用する方法について説明します。 PlayFab Partyは、柔軟、包括的、安全な方法で、待機時間の短いチャットとデータ通信をゲームに簡単に追加します。 Party は、クラウドでホストされる専用サーバーが不要なマルチプレイヤーの実装に最適です (ピア ツー ピア ゲームまたは P2P ゲームとも呼ばれます)。 Party は、ゲーム ホストとしてクラウド サーバーを使用している場合でも、アプリ内のソーシャル エクスペリエンス (ゲーム内スクワッドやゲーム後のロビーなど) のための音声およびテキスト通信を強化します。 Party は、Xbox One ERA Secure Sockets API の後継となる Microsoft Game Development Kit (GDK) です。
Party は、Azure Cognitive Services を使用して、ユーザーのボイス チャットを書き起こし、テキストを音声として合成します。これは、主にアクセシビリティ支援として設計されました。 PlayFab Party のボイス チャットの一般的な使用法は、分単位で請求されます。 音声分の最大 10% は、トランスクリプションと合成を無料で利用できます。 簡単操作のユーザー設定に対してこの機能を有効化することをお勧めします。
注意
Party はまた、チャットをリアルタイムで翻訳します。 匿名マッチメイキングと国際競技ゲームでは、これらのトランスクリプションおよび翻訳機能がより魅力的なマルチプレイヤー エクスペリエンスです。
PlayFab Party (およびその他のマルチプレイヤー サービス) の重要な目標は、相互運用可能なマルチプレイヤー インフラストラクチャとクロスネットワーク ゲームプレイを実現することです。 マルチプレイヤー エクスペリエンスがマルチプレイヤーとクロスネットワーク プレイヤーのアクティビティの関連するプラットフォーム ポリシーに準拠していることを確認します。
PlayFab Party の機能
- 暗号化と認証: Party では、その PlayFab ユーザー ID を使ってユーザーのデバイスが認証され、DTLS と似たプロトコルを使ってデータが暗号化されます。
- デバイス間データグラム ネットワーキング: Party の核となるのは、Azure クラウドの間でグローバルにホストされるリレーです。 ユーザーのデバイスでは、これらのリレーを使ってパーティー ネットワークが作成され、ゲーム データが相互に送信されます。 パーティーのネットワーク システムには、パケット損失の発生時の自動再試行など、構成可能なトランスポート機能が含まれています。
- ボイスとテキスト チャット: ユーザーのデバイスは、オーディオ デバイスを Party ネットワークにバインドして、リアルタイムのボイス チャットを実現できます。 Party ではユーザー間でのテキスト チャット メッセージもサポートされます。
- 音声テキスト変換と音声合成: Party は、ユーザーのボイス チャットのトランスクリプトを作成し、テキスト メッセージの言葉を合成することができます。 この機能にはいくつかの用途がありますが、主にアクセシビリティの補助として設計されました。
- リアルタイム翻訳: Party は、ユーザーのボイス チャットとテキスト チャットのリアルタイム翻訳を理解して合成することができます。
Microsoft Game Development Kit (GDK) に関する考慮事項
Xbox サービスの要件
Xbox サービス タイトルでのユーザーの通信は、ユーザーの安全性に関する複数の要件を満たす必要があります。 PlayFab Party Xbox サービス プラグインと共に PlayFab Party を使用すると、タイトルは、Xbox サービスの通信とセキュリティのすべての要件を満たすことができます。
注意
Xbox 要件 (XR) は、Xbox プラットフォームで公開する前に満たす必要があるゲームの要件です。
- XR-015: プレイヤー間の通信の管理。
- XR-045: Xbox ネットワークとアカウント特権。 Xbox サービス プラグインでは、XPRIVILEGE_COMMUNICATIONS の部分のみが適用されます。 タイトルで他の Xbox サービス機能を使用している場合は、必要な特権のチェックを実行する必要があります。
- XR-072: 音声への対応。
- XR-007: クロスネットワーク プレイ、データの利用、コンパニオン アプリケーションの対話。 PlayFab Party では、サーバーを必要とするクロスネットワーク ゲームプレイの部分のみが適用されます。 必要な権限の確認と Xbox サービスの操作は、タイトルで行う必要があります。
- XR-064: 参加可能ゲーム セッションとオンライン プレイ
- XR-067: マルチプレイヤー セッション状態の保持
- XR-124: ゲームへの招待
ネットワークの初期化
PlayFab Party は、Microsoft Game Development Kit (GDK) タイトルのネットワークの初期化を自動的に処理しません。 PlayFab Party を呼び出す前に、ネットワークが初期化されるのを待ちます。 ネットワークが初期化されるまで、Party API は失敗します。
一時停止と再開
RegisterAppStateChangeNotification
を使用して、一時停止および再開のイベントに登録する必要があります。 一時停止の場合、PartyManager::Cleanup()
を使用してパーティーをクリーンアップします。 再開時に、PartyManager::Initialize()
を呼び出す前に、ネットワークの初期化をもう一度待つ必要があります。 一時停止/再開のサイクルを通して使用しようとすると、パーティの API は失敗します。
PartyManager::Cleanup()
が完了するまでに数百ミリ秒かかる場合があります。 サスペンド タイムアウトを回避するために、他のサスペンド操作と並行してパーティーをクリーンアップすることをお勧めします。
Partymanager::Cleanup()
を非同期で呼び出す場合は、パーティのクリーンアップが返されるまで、一時停止通知を必ずブロックする必要があります。
価格情報
PlayFab Party は、Xbox サービス ID を使用して Microsoft Game Development Kit (GDK) で無料で利用できます。 価格と請求の詳細については、「Xbox サービスの無料プログラムに関するよく寄せられる質問」をご覧ください。
PlayFab ポータルでのタイトルの構成
- https://developer.playfab.com/ に移動してアカウントを作成します。
- 新しいアカウントを使用して、PlayFab Studio とタイトル ID を作成します。
- 新しく作成したタイトルに移動し、[Multiplayer] (マルチプレイヤー) セクションを選択して、[Party (Preview)] (パーティー (プレビュー)) タブを選択します。
- [Enable] (有効) を選択し、アクセス コード「Xbox Live」を入力します。 しばらくすると、パーティーが有効になります。
- [API 機能] タブで、PlayFab タイトル ID とエンティティ ICD をコピーします。
- タイトル ID とエンティティ ICD をクライアント PlayFab Party API 初期化関数に追加します。 Microsoft Game Development Kit (GDK) タイトルで PlayFab Party を使用できるようになりました。
詳細については、「クイックスタート: ゲーム マネージャー」をご覧ください。
Visual Studio を使用して PlayFab Party ライブラリを Microsoft Game Development Kit (GDK) プロジェクトに追加する
- Visual Studio ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。
- [構成プロパティ] で、[Xbox One] セクションに移動します。
- [ゲーム拡張ライブラリ] ドロップダウン リストを開き、参照を PlayFa Party と Xbox Live ヘルパーに追加します。
注意
ライブラリは、 プログラム ファイル (x86)\Microsoft GDK[Version]\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\Redist\x64 (2024 年 10 月以降) の既定の場所にインストールされます。 -or- Program Files (x86)\Microsoft GDK[Version]\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\Redist\CommonConfiguration\neutral (2024 年 6 月以前)。
PlayFab Party とサンドボックス
サンドボックス用に PlayFab Party を構成する必要はありません。 配置されるサンドボックスに関係なく、すべてのネットワーク セッションはリテール環境に割り当てられます。 テスト用に別のユーザーが必要な場合は、テスト環境用とリテール環境用に異なる PlayFab タイトル ID を作成する必要があります。 PlayFab タイトル ID は Xbox サービス タイトル ID とは独立しています。 1 つの Xbox サービス タイトル ID で複数の異なる PlayFab タイトル ID を使用できます。