> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XR-112 アクティベーション時のユーザーとコントローラーの確立

> タイトルは、アクティベーション時にアクティブユーザーとペアリングされたコントローラーを確立し、サスペンドまたは制限モードから再開する際のユーザー/コントローラーの変更を処理する必要があります。

# 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 のどのテストケースがタイトルに適用されるかを示しています。

| テストケース                 | GDK Simplified User Model に適用 | GDK Advanced User Model、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 制限モード中のユーザー変更

**テスト手順**

1. プロフィール A にサインインし、タイトルを起動します。
2. タイトル内のさまざまな場所で、XBOX ボタンを押してタイトルを制限モードにします。
3. タイトルが制限されている間に、プロフィール A からサインアウトし、プロフィール B にサインインします。
4. タイトルを再開します。
5. タイトルが新しいアクティブユーザーに適切に反応することを確認します。

**期待される結果**

タイトルが制限モードから再開された場合、タイトルは以前にエンゲージされたすべてのユーザーがまだ本体にサインインしているかどうかを確認する必要があります。

**合格の例**

1. アプリケーションは、再開時にアクティブユーザーのコンテキストを自動的にプロフィール B に切り替えます。
2. ゲームタイトルは、タイトルからプロフィール A を自動的に削除するか、新しいユーザーを再確立し、その新しいユーザーの状態をゲームプレイに使用します。

**不合格の例**

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

### 112-08 サスペンド中のユーザー変更

小売コンソールでは、以下の条件下でゲームがサスペンドされます。

* 電源モードが Instant-on に設定されている状態で本体の電源を切って接続スタンバイに入ったとき。
* ゲームが 10 分間フォーカス外のままになったとき。たとえば、設定などのアプリケーションを起動し、10 分間フォーカスを維持した場合。

このテストケースの目的では、両方の方法を手順 2 で検証する必要があります。

**テスト手順**

1. XBOX プロフィールにサインインし、ゲームを起動します。
2. ゲーム全体のさまざまな場所で、ゲームをサスペンドします。
3. ゲームがサスペンドされている間に、プロフィール A からサインアウトし、プロフィール B にサインインします。
4. ゲームを再開し、ゲームが新しいアクティブユーザーに適切に反応することを確認します。
5. 新しいアクティブユーザーでゲームプレイに入り、ユーザーが進行できることを確認します。

**期待される結果**

ゲームがサスペンドから再開された場合、ゲームは以前にエンゲージされたすべてのユーザーがまだ本体にサインインしているかどうかを確認する必要があります。

**合格の例**

1. ゲームは、再開時にアクティブユーザーのコンテキストを自動的にプロフィール B に切り替えます。
2. ゲームは、ゲームからプロフィール A を自動的に削除するか、新しいユーザーを再確立し、その新しいユーザーの状態をゲームプレイに使用します。

**不合格の例**

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


## Related topics

- [FMA XR-112: 起動時および再開時のユーザーとコントローラー](/ja-jp/publishing/certification/fma/xr-112.md)
- [ユーザー](/ja-jp/build/core-features/common/user/user-toc.md)
- [XR-115 プレイ中のユーザーまたはコントローラーの追加と削除](/ja-jp/publishing/certification/xr/xr-115.md)
- [FMA XR-115: プレイ中のユーザーおよびコントローラーの追加と削除](/ja-jp/publishing/certification/fma/xr-115.md)
- [ユーザーとコントローラーの関連付けが発生するのはいつか?](/ja-jp/build/core-features/common/user/users-timing-of-user-to-device-association.md)
