XR-112: 初回アクティベーションおよび再開時のユーザーとコントローラーの確立 *
バージョン 2.0、2025/11/1 タイトルは、タイトル内でプライマリユーザーとして機能する 1 人以上のアクティブユーザーを確立し、サスペンドおよび制限モードから再開する際にユーザーを処理する必要があります。GDK では、Simplified User Model または Advanced User Model のいずれかを使用してこれを行います。 GDK Simplified User Model のタイトル GDK の Simplified User Model は、タイトルに代わって既定のユーザー取得を処理します。ただし、タイトルは、ユーザーにコントローラーが割り当てられていることを確認し、そのコントローラーをゲーム入力に使用する責任を引き続き負います。既定のユーザーにコントローラーが割り当てられていない場合、タイトルはXUserFindControllerForUserWithUiAsync を使用してシステムダイアログを表示し、コントローラーを選択してプレイヤーからの入力を受け付けるようにする必要があります。
GDK Advanced User Model、ERA、および UWP マルチユーザーアプリケーション
初回アクティベーション時に、ゲームはゲームデザインと好みに基づいて、タイトルを起動したユーザーを使用するか、明示的にユーザーを促すかを選択することで、初期ユーザーを決定できます。
タイトルは、そのユーザーのプロフィールに対する最初のプロフィール関連アクション (進行状況や設定の保存など) を実行する前に、アクティブユーザーを示す必要があります。
Advanced User Model を使用するすべての XBOX Game Development Kit (GDK) タイトル、ERA、および UWP マルチユーザーアプリケーション (MUA) タイトルは、アクティブユーザーを変更するためのアカウントピッカーへのエントリポイントを提供する必要があります。
タイトルがサスペンドまたは制限モードから再開された場合、タイトルはユーザー/コントローラーのペアリングを検証し、以前のユーザーのセッションを再開するか、新しいユーザーを取得することで適切に対応する必要があります。
詳細情報
初回アクティベーション時のユーザーの確立
GDK Simplified User Model 初期ユーザーはXUserAddAsync(silent) を呼び出すことでタイトルに提供され、起動ユーザーに対して常に単一の結果を返します。
GDK Advanced User Model、ERA、および UWP マルチユーザーアプリケーション
ゲームがタイトルを起動したユーザーを使用する場合:
- GDK の場合、アクティブユーザーは
XUserAddAsync(silent)を呼び出すことで決定できます。既定のユーザーが存在しないとシステムが返した場合、タイトルは silent オプションを指定せずにXUserAddAsyncを使用してユーザーを促す必要があります。これにより、ユーザーにアカウントピッカーが表示されます。 - ERA および UWP の場合、アクティブユーザーはアプリのアクティベーションコンテキストの推奨ユーザー (
CoreApplicationContext.CurrentUser) から見つけることができます。アプリのアクティベーションコンテキストが推奨ユーザーを提供しておらず、タイトルがプロフィール関連アクションを実行する場合、タイトルはアカウントピッカーを起動し、ユーザーのプロフィール選択に基づいてアクティブユーザーを設定する必要があります。
- タイトルはエンゲージメントプロンプトを表示し、アカウントピッカーを表示する必要があります。ユーザーは選択に基づいて決定されます。
- GDK の場合、アカウントピッカーは
XUserAddAsyncを使用して呼び出されます。 - ERA および UWP の場合、アカウントピッカーは
ShowAccountPickerAsyncを使用して呼び出されます。
初回アクティベーション時のコントローラーの確立
ゲームは、サインイン済みのユーザーでゲームが起動された際、アカウントピッカーまたはプラットフォームによって設定されたコントローラーとユーザーのバインドを尊重する必要があります。XBOX プラットフォームは、ゲームプレイ中または外でアカウントピッカーでプレイヤーが選択されるたびに、コントローラーをプレイヤーにバインドします。 タイトルがタイトルを起動したユーザーを使用している場合、タイトルはそのユーザーに割り当てられた関連ゲームパッドをゲームプレイと操作に使用する必要があります。サスペンドまたは制限モードからの再開
GDK Simplified User Model XBOX プラットフォームは、最初にゲームを起動したユーザーがアクティブにサインインしたままであることを保証します。タイトルは UDA を介して変更通知を登録できます。変更がある場合は、新しくバインドされたコントローラーを使用してゲームプレイを進めます。 ゲームプレイ中の追加ユーザーについては、サスペンドまたは制限された状態から再開する際に、Advanced User Model の以下のガイダンスに従って適切に処理する必要があります。 GDK Advanced User Model、ERA、および UWP マルチユーザーアプリケーション タイトルがサスペンドから再開されたとき、または制限モードを終了したとき、タイトルはユーザー/コントローラーのペアリングを検証し、適切に対応する必要があります。- ユーザー/コントローラーのペアリングに変更がない場合、タイトルは続行する必要があります。
- ERA または UWP で、タイトルの以前のアクティブユーザーがまだサインイン中でも新しい User オブジェクト上にある場合 (通常、タイトルがサスペンドされている間にユーザーがサインアウトして再サインインしたことにより発生)、タイトルはサインアウトした User オブジェクトの代わりとして新しいサインイン User オブジェクトを使用する必要があります。ユーザーが一度もサインアウトしなかったかのように使用を継続する必要があります。
- すべての予期されたユーザーが有効だが異なるコントローラーとペアリングされている場合、タイトルは新しいシステムコントローラーのペアリングを更新して使用する必要があります。
- 予期されたユーザーに有効なコントローラーがない場合、タイトルはアカウントピッカーを使用してユーザーのアクティブコントローラーを確立する必要があります。
- 予期されたプレイヤーがサインインしていない場合、タイトルはそのプレイヤーをゲームから削除するか、ユーザーとアクティブコントローラーを再確立する必要があります。タイトルは通常、アカウントピッカーを表示することでこれを行います。ユーザーの再確立の一環として新しいユーザーが選択された場合、ゲームの状態がユーザーごとに保存されている場合、タイトルはその新しいユーザーの状態をゲームプレイに使用する必要があります。
追加リソース
GDK を使用したプレイヤーの ID に関する情報については、GDK ドキュメントの Users セクションを参照してください。認定テストケース
以下の表は、GDK Simplified User Model、または GDK Advanced User Model、ERA、UWP マルチユーザーアプリケーションを使用している場合に、XR-112 のどのテストケースがタイトルに適用されるかを示しています。112-02 初期ユーザーとコントローラー
テスト手順- プロフィール A にサインインし、タイトルを起動します。
- アクティブユーザーがタイトルを操作できることを確認します。
- サインインプロフィールなしで手順 1 を繰り返し、タイトルがアクティブユーザーを確立するように促すことを確認します。
- アクティブユーザーを確立し、ユーザーがタイトルを操作できることを確認します。
- タイトルは、タイトルを起動したコントローラー/ユーザーのペアリングにアクティブユーザーを設定します。
- タイトルは、コントローラーとユーザーを識別するためのエンゲージメントプロンプトを表示します。
- タイトルは、サインインするためのアカウントピッカーを表示します。
- タイトルは、最初に使用されたコントローラーでユーザーがタイトルを操作することを許可しません。
- ユーザーがサインインしていない状態で起動された場合、タイトルはアクティブユーザーを確立するようユーザーに促しません。
112-03 サインインユーザーなし
テスト手順- ユーザーがサインインしていないことを確認します。
- タイトルを起動し、ユーザーデータの保存をサポートするすべてのモードに入ります。
- データ損失が発生する前に、各モードがユーザーにサインインの機会を提供することを検証します。
- サインインの機会をキャンセルし、タイトルが進行状況が保存されないことを示す警告を提供することを確認します。
- サインインしていないユーザーが、通常ユーザーデータやゲームの状態を保存するタイトルモードにアクセスする際に、サインインするよう促されます。
- サインインせずに続行する場合、進行状況が保存されないことがユーザーに通知されます。
- 通常ユーザーデータやゲームの状態を保存するモードで、サインインせずに続行する場合、進行状況が保存されないことがユーザーに通知されません。
- データ損失がすでに発生した後に、ユーザーは進行状況を保存できないことを通知されます。
112-04 アクティブユーザーの表示
テスト手順- タイトルを以前見たことがなく、関連する保存データがないプロフィールにサインインします。
- タイトルを起動します。
- プロフィール関連アクションを実行する前に、タイトルが UI 内でアクティブユーザーを識別することを確認します。「プロフィール関連アクション」の例には、ユーザーの保存ゲームや設定の変更、ユーザーのプロフィールへのデータ保存、実績の付与、ユーザーの統計の書き込み、またはユーザーデータや状態のその他のローカルまたはクラウドでの使用や操作が含まれます。
- セーブを作成します。
- タイトルを再起動し、プロフィール関連アクションを実行する前に、タイトルが UI 内でアクティブユーザーを識別することを確認します。
- XBOX Live から切断します。
- タイトルを再起動し、プロフィール関連アクションを実行する前に、タイトルが UI 内でアクティブユーザーを識別することを確認します。
- タイトルは、プロフィール関連アクションを実行する前に、タイトル内でユーザーのゲーマータグやゲーマーピックを表示します。
- ユーザープロフィールを使用しないタイトルは、アクティブユーザーを示しません。
- タイトルは、複数ユーザーをサポートするゲームモード用に複数のアクティブユーザーを表示します。
- タイトルは、プロフィール関連アクションを実行する前に、タイトルのアクティブユーザーを示しません。
112-05 アカウントピッカーへのアクセス
テスト手順- プロフィールにサインインし、タイトルを起動します。
- タイトルがアクティブユーザーに対して、タイトル内のアカウントピッカーにアクセスして別のプロフィールを選択することを許可することを確認します。
- タイトルは、ユーザーがタイトル内のアカウントピッカーにアクセスすることを許可します。
- タイトルは、ユーザーがタイトル内のアカウントピッカーにアクセスすることを許可しません。
112-06 プロフィール変更の処理
テスト手順- プロフィールにサインインし、タイトルを起動します。
- アカウントピッカーにアクセスし、別のプロフィールを選択します。
- タイトルが適切に反応し、アクティブユーザーのコンテキストが新しいプロフィールに切り替わることを確認します。
- タイトル内でアカウントピッカーにアクセスできるすべての場所で、手順 1〜4 を繰り返します。
- タイトルは、アクティブユーザーの変更がデータ損失につながる可能性があることをユーザーに通知し、アカウントピッカーに進む前にユーザーに確認を促します。
- タイトルは、新しいアクティブユーザーのコンテキストに適切に更新されます。
- タイトルは、新しいアクティブユーザーのコンテキストに適切に更新されません。
112-07 制限モード中のユーザー変更
テスト手順- プロフィール A にサインインし、タイトルを起動します。
- タイトル内のさまざまな場所で、XBOX ボタンを押してタイトルを制限モードにします。
- タイトルが制限されている間に、プロフィール A からサインアウトし、プロフィール B にサインインします。
- タイトルを再開します。
- タイトルが新しいアクティブユーザーに適切に反応することを確認します。
- アプリケーションは、再開時にアクティブユーザーのコンテキストを自動的にプロフィール B に切り替えます。
- ゲームタイトルは、タイトルからプロフィール A を自動的に削除するか、新しいユーザーを再確立し、その新しいユーザーの状態をゲームプレイに使用します。
- タイトルは、アクティブユーザーとしてのコンテキストからプロフィール A を削除するように更新されません。
- 新しいプロフィールが選択された後も、ゲームはプロフィール A の状態をゲームプレイに使用し続けます。
112-08 サスペンド中のユーザー変更
小売コンソールでは、以下の条件下でゲームがサスペンドされます。- 電源モードが Instant-on に設定されている状態で本体の電源を切って接続スタンバイに入ったとき。
- ゲームが 10 分間フォーカス外のままになったとき。たとえば、設定などのアプリケーションを起動し、10 分間フォーカスを維持した場合。
- XBOX プロフィールにサインインし、ゲームを起動します。
- ゲーム全体のさまざまな場所で、ゲームをサスペンドします。
- ゲームがサスペンドされている間に、プロフィール A からサインアウトし、プロフィール B にサインインします。
- ゲームを再開し、ゲームが新しいアクティブユーザーに適切に反応することを確認します。
- 新しいアクティブユーザーでゲームプレイに入り、ユーザーが進行できることを確認します。
- ゲームは、再開時にアクティブユーザーのコンテキストを自動的にプロフィール B に切り替えます。
- ゲームは、ゲームからプロフィール A を自動的に削除するか、新しいユーザーを再確立し、その新しいユーザーの状態をゲームプレイに使用します。
- ゲームは、アクティブユーザーとしてのコンテキストからプロフィール A を削除するように更新されません。
- 新しいプロフィールが選択された後も、ゲームはプロフィール A の状態をゲームプレイに使用し続けます。
