> ## 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-115 プレイ中のユーザーまたはコントローラーの追加と削除

> XR-115 では、マルチユーザータイトルがゲームプレイ中のコントローラーおよびユーザーの追加/削除イベントを処理し、状態を保持してプレイヤーをプレイに戻すことを要求します。

# XR-115: ゲームプレイ中のユーザーまたはコントローラーの追加と削除 \*

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

複数ユーザーをサポートするタイトルは、ユーザーの追加や削除、アクティブプレイヤーにコントローラーが割り当てられていないシナリオ、またはゲームプレイ中にコントローラーが失われたシナリオに、以下のように対応する必要があります。

**コントローラーの追加:** タイトルが初期のユーザーとコントローラーを選択または提供された後、タイトルはオプションで他のコントローラーからの入力を受け付けることができます。マルチプレイヤー体験をサポートするタイトルは、追加のプレイヤーやコントローラーがどのようにゲームプレイに追加され、`XUserAddAsync` でユーザーにバインドされるかを検討する必要があります。たとえば、「A を押して参加」や、プレイヤー選択画面でコントローラーのシルエットを表示するなどです。

**コントローラーの削除:** ゲームプレイを進めているプレイヤーのコントローラーがゲームプレイ中に取り外された場合、タイトルは新しいアクティブコントローラーの再確立を許可する必要があります (たとえば、「A を押して続行」や、ERA での `ControllerPairingChanged` イベントの受信、または GDK で有効なコントローラーを持つアクティブユーザーの `XUserDeviceAssociationChangedCallback` イベントを受信するなど)。タイトルは `XUserFindControllerForUserWithUiAsync` を使用してシステム UX を呼び出し、ユーザーにコントローラーをユーザーにペアリングするよう促し、ゲームプレイに戻すこともできます。

**ユーザーの追加:** ERA または UWP を使用する場合、新しいユーザーがサインインしたときに、タイトルがマルチユーザー体験をサポートしていれば、タイトルにそのユーザーを追加できます。ただし、タイトルは新しいサインインユーザーイベントに基づいてアクティブユーザーを新しいユーザーに自動的に切り替えたり、アクティブユーザーの体験を中断したりしてはなりません。

GDK を使用する場合 (Simplified または Advanced User Model のいずれかを使用)、タイトルが `XUserAddAsync` を呼び出したときにのみユーザーが追加されます。

**プライマリユーザーの削除:** ERA または GDK Advanced User Model を使用するタイトルの場合、プライマリユーザーがサインアウト (ガイド、SPOP、またはその他の手段で) されると、タイトルはそのプレイヤーをゲームから削除するか、ユーザーとアクティブコントローラーを再確立する必要があります。

GDK Simplified User Model を使用するタイトルの場合、プライマリプレイヤーが削除されると、タイトルはシステムレベルでサスペンドされます。

すべてのシナリオで、タイトルはゲームを良好な状態に置くことで削除/クローズを処理します。これには、コネクテッドストレージへの書き込み、関連する MPSD セッションへのユーザーが退出したことの通知、および新しいユーザーが追加されていない場合はサインインのための適切な場所にユーザーを移動することが含まれます。

**追加/セカンダリユーザーの削除:** タイトルはこのイベントを裁量で処理でき、通常はプレイヤーを直ちにゲームプレイから削除するか、使用中のマルチプレイヤー体験のコンテキストで再参加するようにプレイヤーに促します。

## 実装ガイダンスとベストプラクティス

ベストプラクティスは、アクティブプレイヤーのコントローラーが取り外されたときにゲームプレイを一時停止することです。

アクティブユーザーがサインアウトしたときは、ユーザーが体験に戻ったときにほぼ中断した場所に戻れるように、できるだけ多くのユーザーの進行状況を保存することがベストプラクティスです。

タイトルが複数のサインインユーザーをサポートし、アクティブユーザーがサインアウトしても他のアクティブユーザーがサインインしたままである場合、他のアクティブユーザーが現在の体験を可能な限り継続できるようにすることがベストプラクティスです。ゲームの場合、サインアウトしたユーザーをゲームプレイから完全に削除するか、コンピューター制御のプレイヤーに置き換えることができます。

## 追加リソース

## 認定テストケース

以下の表は、GDK Simplified User Model、または GDK Advanced User Model、ERA、UWP マルチユーザーアプリケーションを使用している場合に、XR-115 のどのテストケースがタイトルに適用されるかを示しています。

| テストケース            | GDK Simplified User Model に適用 | GDK Advanced User Model、ERA、UWP MUA に適用 |
| ----------------- | ----------------------------- | --------------------------------------- |
| 115-01 ユーザーの追加    | いいえ                           | はい \*                                   |
| 115-02 コントローラーの削除 | はい                            | はい                                      |
| 115-03 ユーザーの削除    | いいえ                           | はい                                      |

\* **115-01 ユーザーの追加** は、ERA および UWP マルチユーザーアプリケーションにのみ適用されます。GDK では、タイトルは意図的に追加したユーザーのみを表示できます。シェル経由で追加されたユーザーは、GDK タイトルには認識されません。

### 115-01 ユーザーの追加

**テスト手順**

1. プロフィール A にサインインし、他のプロフィールがサインインしていないことを確認します。
2. タイトルを起動し、ゲームプレイに進みます。
3. タイトルの使用中のさまざまな時点で、2 つ目のコントローラーを接続し、プロフィール B にサインインします。
4. プロフィール B がタイトルにコントローラー入力を提供しようとします。

**期待される結果**

ERA または UWP MUA タイトルは、アクティブユーザーの体験を自動的に中断してはなりません。

**合格の例**

1. タイトルは、アクティブユーザーを新しいユーザーに自動的に切り替えたり、アクティブユーザーの体験を中断したりしません。
2. ゲームタイトルは、現在のコンテキストに応じて、プロフィール B がタイトルを操作することを許可することを選択できます。

**不合格の例**

1. タイトルは、アクティブユーザーとして即座にコンテキストをプロフィール B に切り替えます。

### 115-02 コントローラーの削除

**テスト手順**

1. プロフィールにサインインし、タイトルを起動します。
2. タイトルの使用中のさまざまな時点で、コントローラーからバッテリーを取り外します。
3. コントローラーのバッテリーを交換し、ユーザーがタイトルを引き続き使用できることを確認します。
4. バッテリーを交換する代わりに 2 つ目のコントローラーを接続して、手順 1〜3 を繰り返します。

**期待される結果**

タイトルは、コントローラーの取り外しと追加に正しく応答する必要があります。

**合格の例**

1. アクティブユーザーは、コントローラーの取り外しまたは追加後もタイトルを引き続き使用できる必要があります。
2. ユーザーは、新しいアクティブコントローラーを再確立するよう促されます (たとえば、「A を押して続行」やシステム UX を呼び出すなど)。

**不合格の例**

1. コントローラーの取り外し後、ユーザーがタイトルを使い続けることができません。

### 115-03 ユーザーの削除

**テスト手順**

1. プロフィール A にサインインし、他のプロフィールがサインインしていないことを確認します。
2. タイトルを起動し、ゲームプレイに進みます。
3. タイトルの使用中のさまざまな時点で、プロフィール A からサインアウトします。
4. タイトルがアカウントピッカーを呼び出すか、ユーザーをフロントエンドに戻すことを確認します。
5. 可能な場合は、次の方法でタイトルとやり取りします。
   * プロフィール A にサインインし、タイトルがユーザーの体験をさらに中断しないことを確認します。
   * プロフィール B にサインインし、タイトルが新しいユーザーのコンテキストに更新されることを確認します。

**期待される結果**

タイトルは、プレイヤーをゲームから削除するか、ユーザーとアクティブコントローラーを再確立する必要があります。プレイヤーがゲームから削除された場合、タイトルは良好な状態のままにする必要があります。これには、コネクテッドストレージへの書き込み、関連する MPSD セッションへのユーザーが退出したことの通知、および新しいユーザーが追加されていない場合はサインインのための適切な場所にユーザーを移動することが含まれます。

**合格の例**

1. タイトルは、プレイヤーをゲームから削除し、フロントエンドに戻します。
2. タイトルは、ユーザーが新しいユーザーを再確立することを許可し、関連するユーザーコンテキストに正しく更新します。

**不合格の例**

1. タイトルは、ユーザーの状態の変化に反応しません。
2. 新しいプロフィールが選択された後も、タイトルはプロフィール A のユーザーの状態を使用し続けます。


## Related topics

- [FMA XR-115: プレイ中のユーザーおよびコントローラーの追加と削除](/ja-jp/publishing/certification/fma/xr-115.md)
- [XR-112 アクティベーション時のユーザーとコントローラーの確立](/ja-jp/publishing/certification/xr/xr-112.md)
- [FMA XR-112: 起動時および再開時のユーザーとコントローラー](/ja-jp/publishing/certification/fma/xr-112.md)
- [ユーザーとコントローラーの関連付けが発生するのはいつか?](/ja-jp/build/core-features/common/user/users-timing-of-user-to-device-association.md)
- [コントローラー損失への対処](/ja-jp/build/core-features/common/user/users-dealing-with-controller-loss.md)
