XR-115: ゲームプレイ中のユーザーまたはコントローラーの追加と削除 *
バージョン 1.1、5/1/2021
複数のユーザーをサポートするタイトルは、次のように、ユーザーの追加と削除、またはゲームプレイ中にアクティブ プレイヤーにコントローラーが割り当てられていないか、コントローラーを損失したシナリオに対応する必要があります。
コントローラーの追加: タイトルが、初期ユーザー とコントローラーを選択または提供した場合、タイトルは必要に応じて他のコントローラーからの入力を受け付けることができます。 マルチプレイヤー体験をサポートするタイトルは、追加のプレイヤーまたはコントローラーがゲーム プレイに追加される方法、および XUserAddAsync を使用してユーザーにバインドされる方法を考慮する必要がある。 たとえば、'A ボタンを押して参加する' またはコントローラーのシルエットをプレイヤー選択画面に表示します。
コントローラーの取り外し: ゲームプレイを主導しているプレイヤーのコントローラーがゲームプレイ中に取り外された場合、タイトルは新規にアクティブになったコントローラーの再設定を許可する必要があります (たとえば、有効なコントローラーを使用しているアクティブ ユーザー用に 'A ボタンを押して続行する' を表示するか、ERA で ControllerPairingChanged を受け取るか、GDK で XUserDeviceAssociationChangedCallback イベントを受け取ります)。 タイトルは、XUserFindControllerForUserWithUiAsync を使用してシステム UX を呼び出して、コントローラーとペアリングし、ゲームプレイに戻るようユーザーに確認することもできます。
ユーザーの追加: ERA または UWP を使用して新しいユーザーがサインインした場合、タイトルがマルチユーザー エクスペリエンスをサポートしていれば、そのユーザーをタイトルに追加できます。ただし、アクティブ ユーザーを新しいユーザーに自動的に切り替えたり、新しくサインインしたユーザーのイベントに基づいてアクティブ ユーザーのエクスペリエンスを中断したりすることはできません。
GDK (シンプルなユーザー モデルまたは高度なユーザー モデルを使用して) を使用している場合、タイトルが XUserAddAsync を呼び出す場合にのみ、ユーザーが追加されます。
プライマリ ユーザーの削除: ERA または GDK の高度なユーザー モデルを使用するタイトルでは、プライマリ ユーザーが (ガイド、SPOP、その他の方法で) サインアウトした場合、タイトルはそのプレイヤーをゲームから削除するか、ユーザーとアクティブなコントローラーを再設定する必要があります。
GDK のシンプルなユーザー モデルを使用しているタイトルの場合、プライマリ プレイヤーが削除されると、タイトルはシステム レベルで一時停止されます。
すべてのシナリオで、タイトルはゲームを正常な状態にして、削除/終了を処理します。 これには、接続ストレージへの書き込み、ユーザーが離れた関連する MPSD セッションへの通知、適切なサインインする場所へのユーザーの誘導 (新しいユーザーが追加されていない場合) が含まれます。
追加のユーザー/補助的なユーザーの削除: タイトルは、通常はプレイヤーをゲーム プレイから直ちに削除したり、使用されているマルチプレイヤー エクスペリエンスのコンテキストでもう一度参加するよう求めたりして、任意にこのイベントを処理できます。
実装に関するガイダンスとベスト プラクティス
アクティブなプレイヤーのコントローラーが取り外された時点でゲームプレイをポーズすることがベスト プラクティスになります。
アクティブ ユーザーがサインアウトした場合は、そのユーザーの進行状況を少しでも多く保存することがベスト プラクティスになります。これにより、そのユーザーは体験に復帰した際に、中断した場所とほとんど同じ場所から再開できます。
タイトルが複数のサインイン ユーザーに対応している状況で、1 人のアクティブ ユーザーがサインアウトし、その他のアクティブ ユーザーがまだサインインしている場合は、その他のアクティブ ユーザーが可能な限り現在のゲームを続行できるようにすることがベスト プラクティスになります。 ゲームの場合は、サインアウト ユーザーをゲームプレイ全体から削除したり、コンピューターによるプレイヤーに置き換えたりすることができます。
その他のリソース
サーティフィケーション テスト ケース
次の表は、GDK のシンプルなユーザー モデル、GDK の高度なユーザー モデル、ERA および UWP マルチ ユーザー アプリケーションを使用している場合に、XR-115 のどのテスト ケースがタイトルに適用されるかを示します。
テスト ケース | GDK のシンプルなユーザー モデルに適用可能 | GDK の高度なユーザー モデル、ERA、および UWP MUA に適用可能 |
---|---|---|
115-01 ユーザーの追加 | いいえ | はい * |
115-02 コントローラーの取り外し | はい | はい |
115-03 ユーザーの削除 | いいえ | はい |
* 115-01 ユーザーの追加は、ERA および UWP マルチ ユーザー アプリケーションにのみ適用されます。 GDK で、タイトルには意図的に追加されたユーザーだけが表示されます。 シェルを介して追加されたユーザーは GDK のタイトルには表示されません。
115-01 ユーザーの追加
テスト手順
- プロフィール A にサインインし、他のプロフィールにサインインしていないことを確認します。
- タイトルを起動し、ゲームプレイを開始します。
- タイトルの使用中にさまざまなポイントで、2 つ目のコントローラーを接続してプロフィール B にサインインします。
- プロフィール B がコントローラーを使用してタイトルへの入力を試みます。
想定される結果
ERA または UWP MUA のタイトルは、アクティブ ユーザー エクスペリエンスを自動的に中断することはできません。成功例
- アクティブ ユーザーが新しいユーザーに自動的に切り替わらず、アクティブ ユーザーのゲームも中断されません。
- 現在のコンテキストに応じてプロフィール B がゲームをコントロールすることを選択できます。
失敗例
- コンテキストが直ちに切り替わり、プロフィール B がアクティブ ユーザーになります。
115-02 コントローラーの取り外し
テスト手順
- プロフィールにサインインして、タイトルを起動します。
- タイトルの使用中のさまざまなポイントで、コントローラーからバッテリーを取り出します。
- コントローラーにバッテリーを戻し、ユーザーがタイトルを引き続き使用できることを確認します。
- 手順 [1] から [3] を繰り返しますが、今度はバッテリーを戻すのではなく 2 台目のコントローラーを接続します。
想定される結果
タイトルは、コントローラーの追加と取り外しに正しく対応する必要があります。成功例
- アクティブ ユーザーは、コントローラーを追加または取り外した後にタイトルを続行できます。
- ユーザーは、新しいアクティブなコントローラーを再設定するよう求められます (たとえば、"A ボタンを押して続行する" を表示するか、システム UX を起動する)。
失敗例
- ユーザーは、コントローラーを取り外した後にタイトルを続行できません。
115-03 ユーザーの削除
テスト手順
- プロフィール A にサインインし、他のプロフィールにサインインしていないことを確認します。
- タイトルを起動し、ゲームプレイを開始します。
- タイトルの使用中にさまざまなポイントで、プロフィール A からサインアウトします。
- タイトルがアカウント ピッカーを呼び出すか、またはユーザーをフロントエンドに戻すことを確認します。
- 可能な場合は、次の方法でタイトルを操作します。
- プロフィール A にサインインし、タイトルがユーザーのエクスペリエンスを中断しないことを確認します。
- プロフィール B にサインインし、タイトルが新しいユーザーのコンテキストに更新されることを確認します。
想定される結果
タイトルはそのプレイヤーをゲームから削除するか、ユーザーとアクティブなコントローラーを再設定する必要がある。 プレイヤーがゲームから削除された場合、タイトルは正常な状態が保たれる必要がある。 これには、接続ストレージへの書き込み、ユーザーが離れた関連する MPSD セッションへの通知、適切なサインインする場所へのユーザーの誘導 (新しいユーザーが追加されていない場合) が含まれます。成功例
- タイトルはゲームからプレイヤーを削除し、フロントエンドに戻ります。
- ユーザーは新しいユーザーを再確立し、関連するユーザー コンテキストに適切に更新することができます。
失敗例
- タイトルがユーザーの状態の変更に対応できません。
- 新しいプロフィールが選択された後も引き続きプロフィール A のユーザーの状態がタイトルで使用されます。