XR-112 最初のアクティブ化と再開時のユーザーとコントローラーの設定 *

バージョン 1.1、5/1/2021

タイトルは、タイトル内でプライマリ ユーザーとして機能する 1 人または数人のアクティブ ユーザーを設定し、一時停止状態および制限モードから再開するときにユーザーを処理しなければならない。 タイトルは、GDK でシンプルなユーザー モデルまたは高度なユーザー モデルのいずれかを使用してこれを実行します。

GDK のシンプルなユーザー モデルのタイトル

GDK のシンプルなユーザー モデルは、タイトルに代わって既定のユーザー獲得を取り扱います。 ただし、コントローラーがユーザーに割り当てられていることを確認し、ユーザーがそのコントローラーをゲーム入力に使用することを確認する責任は引き続きタイトルにあります。 既定のユーザーにコントローラーが割り当てられていない場合、タイトルは XUserFindControllerForUserWithUiAsync を使用してシステム ダイアログを操作し、コントローラーを選択してプレイヤーからの入力を受け入れ始める必要があります。

GDK の高度なユーザー モデル、ERA、および UWP のマルチユーザー アプリケーション

最初のアクティブ化時に、ゲームでは、ゲームのデザインおよび設定に基づいて、タイトルを起動したユーザーを使用するか、またはユーザーに明示的にプロンプトを表示することによって初期ユーザーの決定方法を選択できます。

タイトルは、ユーザーのプロフィールで最初のプロフィール関連の操作 (進行や設定の保存など) が実行される前に、アクティブなユーザーを示す必要があります。

高度なユーザー モデルを使用するすべての Microsoft Game Development Kit (GDK) タイトル、ERA、および UWP のマルチユーザー アプリケーション (MUA) タイトルは、アクティブ ユーザーを変更するアカウント ピッカーへのエントリ ポイントを提供する必要があります。

一時停止から再開されたタイトルや制限モードから出たタイトルは、ユーザーとコントローラーのペアリングを確認し、前のユーザーのセッションを再開するか、または新しいユーザーを取得することで適切に対処する必要がある。

その他の情報

最初のアクティブ化時のユーザーの設定

GDK のシンプルなユーザー モデル

最初のユーザーは XUserAddAsync(silent) を呼び出すことでタイトルに提供され、起動ユーザーに対して単一の結果を常に返します。

GDK の高度なユーザー モデル、ERA、および UWP のマルチユーザー アプリケーション

ゲームがタイトルを起動したユーザーを使用している場合:

  • GDK の場合、アクティブ ユーザーは XUserAddAsync(silent) を呼び出すことで特定できます。 システムが既定値がないことを返した場合、タイトルは、サイレント オプションなしで XUserAddAsync を使用してユーザーに入力を求める必要があります。 これにより、ユーザーにアカウント ピッカーが表示されます。

  • ERA および UWP の場合、アクティブ ユーザーをアプリ アクティベーション コンテキストの推奨ユーザー (CoreApplicationContext.CurrentUser) で確認できます。 アプリケーション アクティベーション コンテキストで推奨ユーザーが設定されていない状態でプロフィール関連の操作を実行する場合、タイトルはアカウント ピッカーを起動し、ユーザーのプロフィール選択に基づいてアクティブ ユーザーを設定する必要があります。

ユーザーの入力を求める場合:

  • タイトルはエンゲージ プロンプトを表示し、アカウント ピッカーを表示する必要があります。 ユーザーは選択に基づきます。

  • GDK の場合、アカウント ピッカーは XUserAddAsync を使用して呼び出されます。

  • ERA と UWP の場合、アカウント ピッカーは ShowAccountPickerAsync を使用して呼び出されます。

ユーザーがサインインを取り消した場合、タイトルは進行状況を保存せずに続行することをユーザーに通知する必要があります。

起動してユーザーが選択または識別されたら、タイトルは、プロフィール関連の操作を実行する前にゲーマータグを表示します。 タイトルでアクティブ ユーザーが表示される方法と場所に関する要件はありません。 アプリのメイン画面やゲームのタイトル メニューに、ユーザーのゲーマーアイコンと表示名を表示することがベスト プラクティスになります。

最初のアクティブ化時のコントローラーの設定

サインインしたユーザーがゲームを起動した場合、ゲームはアカウント ピッカーまたはプラットフォームによって設定されたコントローラーとユーザー バインドを尊重する必要があります。 Xbox プラットフォームは、ゲームのプレイ中またはゲームプレイ外においてアカウント ピッカーでプレイヤーが選択されたときはいつでも、コントローラーをプレイヤーにバインドします。

タイトルを起動したユーザーをタイトルが使用している場合、タイトルはそのユーザーに割り当てられている関連付けられたゲームパッドを使用して、ゲームのプレイと操作を進める必要があります。

一時停止状態や制限モードからの再開

GDK のシンプルなユーザー モデル

Xbox プラットフォームでは、最初にゲームを開始したユーザーが引き続きアクティブにサインインしているかどうかを確認します。 新しくバインドされたコントローラーを使用してゲームプレイを行うように変更があった場合、タイトルは UDA 経由で変更通知に登録できます。

一時停止状態または制限状態から再開する場合、ゲームプレイの追加のユーザーは、次に示す高度なユーザー モデルのガイダンスに従って適切に処理する必要があります。

GDK の高度なユーザー モデル、ERA、および UWP のマルチユーザー アプリケーション

一時停止から再開されたタイトルや制限モードから出たタイトルは、ユーザーとコントローラーのペアリングを確認し、その結果に応じて以下のように対処する必要があります。

  • ユーザーとコントローラーのペアリングに変更がない場合、タイトルはプレイを進めなければならない。
  • ERA または UWP では、タイトルの直前のアクティブ ユーザーがまだサインインしているものの、新しい User オブジェクトに関連付けられている場合 (これは通常、タイトルの一時停止中にユーザーがいったんサインアウトしてから再びサインインした場合に発生する)、タイトルは新たにサインインした User オブジェクトをサインアウトした User オブジェクトの代わりに使用する必要がある。 そのユーザーがサインアウトしなかったかのように、タイトルが続行されなければならない。
  • すべての予想されるユーザーが有効な異なるコントローラーとペアになっている場合、タイトルはシステム コントローラーのペアリングを更新して使用する必要がある。
  • 予想されるユーザーが有効なコントローラーを使用していない場合、タイトルはアカウント ピッカーを使用してそのユーザー用のアクティブなコントローラーを設定しなければならない。
  • 予想されるプレイヤーがサインインしていない場合、タイトルはそのプレイヤーをゲームから削除するか、ユーザーとアクティブなコントローラーを再設定する必要がある。 通常、タイトルはアカウント ピッカーを表示してこれを行う。 ユーザーの再設定の一環として新しいユーザーが選択された場合、タイトルは新たに選択されたユーザーの状態をゲームプレイに使用しなければならない (ユーザーごとにゲームの状態が保存される場合)。

その他のリソース

GDK を使用したプレイヤー ID の詳細については、「ユーザー」セクションをご覧ください

サーティフィケーション テスト ケース

次の表は、GDK のシンプルなユーザー モデル、GDK の高度なユーザー モデル、ERA および UWP マルチ ユーザー アプリケーションを使用している場合に、XR-112 のどのテスト ケースがタイトルに適用されるかを示します。

テスト ケース GDK のシンプルなユーザー モデルに適用可能 GDK の高度なユーザー モデル、ERA、および UWP MUA に適用可能
112-02 起動直後のユーザーとコントローラー いいえ はい
112-03 サインインしていないユーザーの確認 いいえ はい
112-04 アクティブ ユーザーの表示 はい はい
112-05 アカウント ピッカーへのアクセス いいえ はい
112-06 プロフィール切り替えの処理 いいえ はい
112-07 制限モードに入っている状態でのユーザー変更 いいえ はい
112-08 一時停止状態でのユーザー変更 いいえ はい

112-02 起動直後のユーザーとコントローラー

テスト手順

  1. プロフィール A にサインインして、タイトルを起動します。
  2. アクティブなユーザーがタイトルを制御できることを確認します。
  3. サインインしていないユーザーのプロフィールで手順 [1] を繰り返し、アクティブなユーザーを確立するよう求めるタイトル プロンプトを確認します。
  4. アクティブなユーザーを確立し、ユーザーがタイトルを制御できることを確認します。

想定される結果
タイトルは、アクティブなユーザーをタイトルを起動したコントローラー/ユーザーの組み合わせに設定するか、エンゲージ プロンプトを表示してコントローラーとユーザーを識別するか、またはサインインするためのアカウント ピッカーを表示する必要があります。

成功例

  1. タイトルが、アクティブなユーザーをタイトルを起動したコントローラー/ユーザーの組み合わせに設定する。
  2. タイトルは、エンゲージ プロンプトを表示してコントローラーとユーザーを識別する。
  3. タイトルは、サインインするためのアカウント ピッカーを表示します。

失敗例

  1. タイトルで、ユーザーが最初に使用したコントローラーを使用してタイトルを制御できない。
  2. ユーザーがサインインしていないときに、タイトルがアクティブなユーザーを確立するようユーザーに求めるプロンプトを表示しない。

112-03 サインインしていないユーザーの確認

テスト手順

  1. ユーザーがサインインしていないことを確認します。
  2. タイトルを起動し、ユーザー データの保存に対応しているすべてのモードに入ります。
  3. データの消失が発生する前に、各モードでサインインする機会がプレイヤーに提供されることを確認します。
  4. サインインする機会をキャンセルし、進行状況が保存されないことを示す警告が表示されることを確認します。

想定される結果
通常であればユーザー データやゲームの状態が保存されるモードにある場合、サインインする機会がユーザーに提供されなければなりません。 ユーザーがサインインしないでゲームプレイを続行した場合は、進行状況が保存されないことがユーザーに通知されなければなりません。

成功例

  1. 通常であればユーザー データやゲームの状態が保存されるタイトル モードにアクセスすると、サインインしていないプレイヤーにサインインを求めるメッセージが表示されます。
  2. ユーザーがサインインしないでモードを続行した場合は、進行状況が保存されないことがユーザーに通知されます。

失敗例

  1. 通常であればユーザー データやゲームの状態が保存されるモードで、プレイヤーがサインインしないでそのモードを続けても、進行状況が保存されないことがプレイヤーに通知されません。
  2. 既にプレイの状態が失われた後に、進行状況を保存できないことがプレイヤーに通知される。

112-04 アクティブ ユーザーの表示

テスト手順

  1. 以前にタイトルを表示したことがなく、セーブ データが関連付けられていないプロフィールにサインインします。
  2. タイトルを起動します。
  3. プロフィール関連の操作を実行する前に、タイトルが UI 内でアクティブ ユーザーを特定できることを確認します。 "プロフィール関連の操作" の例には、ユーザーのセーブ データや設定の変更、ユーザーのプロフィールへのデータの保存、実績の付与、ユーザーの統計情報の書き込みなど、ローカルまたはクラウドでユーザー データやユーザーの状態を使用または操作するあらゆる操作が含まれます。
  4. セーブ データを保存します。
  5. タイトルを再起動し、プロフィール関連の操作を実行する前に、タイトルが UI 内でアクティブ ユーザーを特定できることを確認します。
  6. Xbox Live から切断します。
  7. タイトルを再起動し、プロフィール関連の操作を実行する前に、タイトルが UI 内でアクティブ ユーザーを特定できることを確認します。

想定される結果
最初のプロフィール関連の操作を実行する前に、タイトルに現在のユーザー コンテキストが表示されなければなりません。

成功例

  1. プロフィール関連の操作を実行する前に、ユーザーのゲーマータグまたはゲーマーアイコン (あるいはその両方) がタイトル内に表示される。
  2. ユーザー プロフィールを使用しないタイトルでは、アクティブ ユーザーが表示されない。
  3. 複数のユーザーに対応しているゲーム モードでは、タイトルに複数のアクティブ ユーザーが表示されます。

失敗例

  1. プロフィール関連の操作を実行する前に、タイトルのアクティブ ユーザーが表示されません。

112-05 アカウント ピッカーへのアクセス

テスト手順

  1. プロフィールにサインインして、タイトルを起動します。
  2. アクティブ ユーザーがタイトルのアカウント ピッカーにアクセスして、別のプロフィールを選択できることを確認します。

想定される結果
タイトルは、アクティブ ユーザーを変更するために、ユーザーがタイトルのアカウント ピッカーにアクセスできるようにする必要があります。

成功例

  1. ユーザーがタイトルのアカウント ピッカーにアクセスできる。

失敗例

  1. ユーザーがタイトルのアカウント ピッカーにアクセスできない。

112-06 プロフィール切り替えの処理

テスト手順

  1. プロフィールにサインインして、タイトルを起動します。
  2. アカウント ピッカーにアクセスして別のプロフィールを選択します。
  3. タイトルが適切に対応し、アクティブ ユーザーのコンテキストが新しいプロフィールに切り替わったことを確認します。
  4. タイトル内のアカウント ピッカーにアクセスできるすべての場所で、手順 [1] ~ [4] を繰り返します。

想定される結果
タイトルは、ユーザーが別のユーザーのコンテキストにシームレスに切り替えられるようにする必要があります。

成功例

  1. タイトルは、アクティブ ユーザーの変更によってデータが失われる可能性があることをユーザーに通知し、アカウント ピッカーにアクセスする前にユーザーに確認を求めます。
  2. タイトルが新しいアクティブ ユーザーのコンテキストに適切に更新されます。

失敗例

  1. タイトルが新しいアクティブ ユーザーのコンテキストに適切に更新されません。

112-07 制限モードに入っている状態でのユーザー変更

環境設定: タイトルをインストールし、「xbapp list」を使用してタイトルのアプリケーション ユーザー モデル ID (AUMID) とパッケージ フルネーム (PFN) を取得します。

テスト手順

  1. プロフィール A にサインインして、タイトルを起動します。
  2. タイトル内のさまざまな場所で、Xbox ボタンを押してタイトルを制限モードにします。
  3. ‘xbapp query [PFN]’ を実行して、タイトルが制限状態になったことを確認します。
  4. タイトルが制限モードに入っている間に、プロフィール A からサインアウトして、プロフィール B にサインインします。
  5. [Home (ホーム)] からタイルを選択してタイトルを再開します。
  6. タイトルが新しいアクティブ ユーザーに適切に対応していることを確認します。

想定される結果 制限モードから再開されたタイトルは、既に参加しているすべてのユーザーがまだ本体にサインインしていることを確認しなければなりません。

成功例

  1. アプリケーションでは、再開したときにアクティブ ユーザーのコンテキストがプロフィール B に自動的に切り替わります。
  2. ゲームでは、タイトルからプロフィール A が自動的に削除されるか、新しいユーザーが再設定されて新しいユーザーの状態がゲームプレイに使用される。

失敗例

  1. アクティブ ユーザーのコンテキストからプロフィール A が削除されません。
  2. 新しいプロフィールが選択された後も引き続きプロフィール A の状態がゲームプレイに使用される。

112-08 一時停止状態でのユーザー変更

環境設定: タイトルをインストールし、「xbapp list」を使用してタイトルのアプリケーション ユーザー モデル ID (AUMID) とパッケージ フルネーム (PFN) を取得します。

テスト手順

  1. プロフィール A にサインインして、タイトルを起動します。
  2. タイトル内のさまざまな場所で、‘xbapp suspend [PFN]’ を使用してタイトルを一時停止します。
  3. タイトルが完全に一時停止し、一時停止によってすべての HTTP 要求が中断されるまで、少なくとも 30 秒待ちます。
  4. ‘xbapp query [PFN]’ を実行して、タイトルが一時停止状態になったことを確認します。
  5. タイトルが一時停止している間に、プロフィール A からサインアウトして、プロフィール B にサインインします。
  6. [Home (ホーム)] からタイルを選択してタイトルを再開します。
  7. タイトルが新しいアクティブ ユーザーに適切に対応していることを確認します。
  8. 新しいアクティブ ユーザーでゲームプレイに入り、ユーザーがゲームを進行できることを確認します。

想定される結果

  1. 一時停止から再開されたタイトルは、サインインしていたすべてのユーザーがまだ本体にサインインしているかどうかを確認しなければなりません。

成功例

  1. アプリケーションでは、再開したときにアクティブ ユーザーのコンテキストがプロフィール B に自動的に切り替わります。
  2. ゲームでは、タイトルからプロフィール A が自動的に削除されるか、新しいユーザーが再設定されて新しいユーザーの状態がゲームプレイに使用される。

失敗例

  1. アクティブ ユーザーのコンテキストからプロフィール A が削除されません。
  2. 新しいプロフィールが選択された後も引き続きプロフィール A の状態がゲームプレイに使用されます。