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

# XR-052 ユーザー状態、タイトル セーブの場所、ローミング、および依存関係

> タイトルが保存された進行状況と報酬を正しいユーザーに関連付け、ユーザーの変更を処理し、SDK ごとに XBOX 本体と PC 間でゲームのセーブをローミングする方法。

バージョン 2.0、11/01/2025

タイトルは、進行状況、保存された状態、設定、実績、およびその他の報酬を、その進行状況を記録した、その設定を選択した、またはその報酬を獲得したユーザーに関連付ける必要があります。タイトルは、ユーザー変更の通知を適切に処理することでこれを実現します。タイトルは、サインインしていないユーザーの状態を保存しないようにする必要があります。ゲーム セーブ データは、共有コンテンツやローカル ストレージに依存してはなりません。

プラットフォーム、デバイス、本体の世代間で同じ TitleID を使用するゲームでは、ユーザーが XBOX network にサインインしているときに、ゲーム セーブの進行状況が次のようにローミングされる必要があります。

* 同じプラットフォーム内 (XBOX 本体)。
* 同じプラットフォーム上のデバイス間 (例: XBOX One と XBOX One S)。
* デバイス プラットフォームの世代間 (例: XBOX One と XBOX Series X|S)。
* Windows プラットフォームの PC 間 (例: 2 台の異なる PC 間)。
* ゲームが XPA の場合は、Windows プラットフォームの PC と XBOX 本体プラットフォーム間 (例: Windows と XBOX Series X|S)。
* XPA 以外のゲームでは、Windows プラットフォームの PC と XBOX 本体プラットフォーム間 (例: Windows と XBOX Series X|S) のローミングは必須ではありませんが、プレイヤーのエクスペリエンスをサポートするために推奨されます。
* Microsoft 以外のプラットフォーム (例: iOS、Android、Switch、PlayStation®) では、ゲーム セーブのローミングは必須ではありませんが、プレイヤーのエクスペリエンスをサポートするために推奨されます。

## 詳細情報

共有コンテンツとは、ゲーム セーブを読み込んだときに、ローミング先の本体に存在しない可能性があるコンテンツ (ゲームのアドオンなど) のことです。現在サインインしているユーザーがコンテンツをダウンロードしていない、または所有していないために、コンテンツを利用できない場合があります。

プレイヤー データを保存するための API とサービスは、SDK によって異なります。

| GDK/SDK | ローミング セーブは必須か | サポートする API |
| - | - | - |
| GDK | 必須 | xgamesave.h の `XGameSave` API |
| XDK を使用する ERA | 必須 | `Windows.Xbox.Storage` 名前空間の ConnectedStorage API |
| Windows SDK - UWP | 必須 | `Windows.Gaming.XboxLive.Storage` 名前空間の GameSaveProvider API |

* GDK を使用したゲームの状態の保存については、[ゲーム セーブの概要](https://docs.xbox.com/ja-jp/build/core-features/common/game-save/game-saves-overview.md) を参照してください。
* GDK を使用したゲームの状態の管理とデータの保存については、[XBOX ゲームのライフ サイクル](https://docs.xbox.com/ja-jp/build/console-features/console-workflows/xbox-game-life-cycle.md) を参照してください。

この要件の重要な点は、タイトルがアクティブ、中断、または終了している間に、タイトルのプライマリ ユーザーが変更される状況への対処に関するものです。タイトルの "プライマリ ユーザー" は、最後にタイトルをアクティブ化したユーザーとは別のユーザーのホーム画面からタイトルがアクティブ化されたときに変更されます。また、本体上の他のユーザーは、タイトルの有効期間中いつでもサインインまたはサインアウトできます。タイトルは、プライマリ ユーザーと本体上の他のユーザーに適したエクスペリエンスを提供し、各ユーザーのタイトル状態の情報を保存する必要があります。ユーザーは特定のタイトルのコンテキスト外で XBOX network にサインイン (およびサインアウト) できるため、タイトルはユーザーが変更された場合にも堅牢である必要があります。たとえば、タイトルは、サインインしていないユーザーのトークンや識別子を使用しないようにする必要があります。

タイトルは、意図しないユーザー データの損失を引き起こしてはなりません。

## 認定テスト ケース

次の表は、GDK 簡易ユーザー モデル、または GDK 高度なユーザー モデル、ERA および UWP マルチ ユーザー アプリケーションを使用する場合に、どのテスト ケースがタイトルに適用されるかを示しています。簡易ユーザー モデルと高度なユーザー モデルの使用に関する詳細については、[XR-112](https://docs.xbox.com/ja-jp/publishing/certification/xr/xr-112.md) を参照してください。

| テスト ケース | GDK 簡易ユーザー モデルに適用 | GDK 高度なユーザー モデル、ERA および UWP MUA に適用 |
| - | - | - |
| 052-01 ユーザーのサインインとサインアウト | いいえ | はい |
| 052-02 中断、スリープ、休止状態中のユーザー変更 | いいえ | はい |
| 052-05 正しいユーザーの関連付け | はい | はい |
| 052-06 クラウド ストレージ: ローミング | はい | はい |

### 052-01 ユーザーのサインインとサインアウト

**構成**\
このテスト ケースは本体にのみ適用されます。

**テスト手順**

1. プロフィール A とプロフィール B で本体がホームに設定されていることを確認します。
2. プロフィール A に、ゲームの進行状況とユーザー設定を含むセーブ データがあることを確認します。
3. プロフィール B にセーブ データがないことを確認します。
4. プロフィール A にサインインし、タイトルを起動します。次のような (ただし、これらに限定されない) タイトルのすべての領域にアクセスして、すべてのセーブ データと設定が保持されていることを確認します。
   * シングル プレイヤーまたはマルチプレイヤーのゲーム セッション
   * メニュー
   * ビデオまたはオーディオの再生
5. プロフィール A からサインアウトし、プロフィール B にサインインします。
6. 手順 4 で検証したタイトルのすべての領域に再度アクセスし、タイトルがプロフィール B のユーザーの進行状況、保存された状態、設定、実績、またはその他の報酬を正しく更新することを確認します。
7. ゲームプレイを開始してセーブの進行状況を作成し、プロフィール B のユーザー設定を変更します。
8. タイトルを終了して再起動し、手順 7 のセーブ データが正確に反映されていることを確認します。
9. プロフィール B からサインアウトします。
10. プロフィール A からセーブ データを "すべての場所" で削除し、手順 4 から 8 を繰り返します。

**期待される結果**\
タイトルは、プライマリ ユーザーの変更を適切に処理する必要があります。

**合格例**

1. ユーザーの変更後、ユーザーの進行状況、保存された状態、設定、実績、またはその他の報酬が正しいユーザーに関連付けられる。

**不合格例**

1. ユーザーの変更後、タイトルがユーザーの進行状況、保存された状態、設定、実績、またはその他の報酬をユーザーに誤って関連付ける。
2. タイトルが引き続き最初のユーザーにセーブ データを付与する。
3. 以前のユーザーがサインアウトした後に、新しいユーザーがそのユーザーのセーブ データ、状態、またはプロフィールを変更できる。

### 052-02 中断、スリープ、休止状態中のユーザー変更

XBOX 本体では、次の条件下でゲームが中断されます。

* 電源モードが \[クイック起動] に設定された状態で電源をオフにして、本体がコネクト スタンバイに入ったとき。
* ゲームが 10 分間フォーカスされていない状態が続いたとき。たとえば、設定などのアプリケーションを起動し、10 分間フォーカスを維持した場合です。

PC では、手順 2 でシステムをスリープまたは休止状態にします。

**テスト手順**

1. XBOX プロフィールにサインインし、ゲームを起動します。
2. ゲーム全体のさまざまな場所で、次の操作を行います。
   * XBOX 本体では、設定アプリを起動して 10 分間フォーカスを維持することで、ゲームを中断します。
   * PC では、システムをスリープ状態または休止状態にします。
3. ゲームが中断、スリープ、または休止状態にある間に、アクティブなユーザーを変更します。XBOX 本体では、プロフィール A からサインアウトし、プロフィール B にサインインします。PC では、別の Windows ユーザー アカウントに切り替えます。
4. デバイスの電源を再度オンにした状態で、新しいユーザーを使用してタイトルを起動し、以前のユーザーの場所から続行を試みます。
5. タイトルのすべての領域について、手順 1 から 4 を繰り返します。

**期待される結果**\
ゲームが中断、スリープ、または休止状態から再開されたとき、タイトルは、以前に参加していたすべてのユーザーがまだゲーム デバイスにサインインしているかどうかを確認する必要があります。タイトルは、プライマリ ユーザーの変更を適切に処理する必要があります。

**合格例**

1. 再開時に、タイトルがアクティブなユーザー コンテキストを新しいユーザーに自動的に切り替える。
2. タイトルが以前のユーザーをゲームから自動的に削除するか、新しいユーザーを再確立し、その新しいユーザーの状態をゲームプレイに使用する。
3. ユーザーの変更後、ユーザーの進行状況、保存された状態、設定、実績、またはその他の報酬が正しいユーザーに関連付けられる。

**不合格例**

1. ユーザーの変更後、タイトルがユーザーの進行状況、保存された状態、設定、実績、またはその他の報酬をユーザーに誤って関連付ける。
2. タイトルが引き続き最初のユーザーにセーブ データを付与する。
3. 以前のユーザーがサインアウトした後に、新しいユーザーがそのユーザーのセーブ データ、状態、またはプロフィールを変更できる。
4. 新しいプロフィールが選択された後も、タイトルが以前のユーザーの状態を使用し続ける。

### 052-05 正しいユーザーの関連付け

**テスト手順**

1. プロフィールにサインインし、タイトルを起動します。
2. ゲームプレイを進め、ゲームの進行状況を保存します。
3. タイトルを終了します。
4. 手順 1 のプロフィールからサインアウトし、新しいプロフィールにサインインします。
5. タイトルを起動し、保存された進行状況へのアクセスを試みます。

**期待される結果**\
元のユーザーについて保存された進行状況が、新しいプロフィールに表示されたり、新しいプロフィールからアクセス可能になったりしてはなりません。

**合格例**

1. 手順 5 では、手順 4 の新しいプロフィールに関連付けられた保存済みの進行状況のみが表示される。

**不合格例**

1. タイトルが、新しいプロフィールで別のプロフィールの保存済みの進行状況を読み込むことを許可する。

### 052-06 クラウド ストレージ: ローミング

**必要なデバイス**

* XBOX One
* XBOX One S
* XBOX One X
* XBOX Series X Dev Kit (XBOX Series X|S 製品版本体モードを使用)
* PC 2 台

**テスト手順**

1. デバイス A で XBOX プロフィールにサインインし、タイトルを起動します。
2. ゲームプレイを開始してセーブの進行状況を作成します (可能であれば、設定構成を変更または追加して、設定のセーブを作成します)。
3. タイトルを終了します。
4. 手順 1 で使用したものと同じプラットフォーム/世代の 2 台目のデバイス (例: XBOX Series S と XBOX Series X、XBOX One と XBOX One S、2 台目の PC) で、手順 1 で使用したものと同じプロフィールでサインインします。
   * 手順 1 と同じタイトルを起動し、保存されたすべてのゲームと、すべての設定ファイルや構成ファイルにアクセスして正しく読み込めること、およびそれらが共有コンテンツに依存していないことを確認します。
5. 同じプラットフォームの世代間で同じ TitleID を使用するゲーム (例: XBOX One と XBOX Series X|S) の場合は、手順 4 を繰り返します。
6. Windows プラットフォームで同じ TitleID を使用する PC ゲームの場合は、手順 4 を繰り返します。
7. サポートされている場合、プラットフォーム間で同じ TitleID を使用するゲーム (例: Windows と XBOX Series X|S) では、次の操作を行います。
   * サポートされている他のプラットフォームで手順 1 と同じタイトルを起動し、保存されたすべてのゲームと、すべての設定ファイルや構成ファイルにアクセスして正しく読み込めること、およびそれらが共有コンテンツに依存していないことを確認します。

**期待される結果**\
タイトル セーブの進行状況はユーザー プロフィールに関連付けられ、ユーザーが XBOX サービスにサインインしているときに、同様のデバイス/プラットフォーム間でローミングされる必要があります。同じプラットフォームの世代間で同じ TitleID を使用するゲームでは、ゲーム セーブ データがそれらのプラットフォーム間でローミングされる必要があります。Windows プラットフォームで同じ TitleID を使用する PC ゲームでは、ゲーム セーブ データが異なる PC 間でローミングされる必要があります。ゲーム セーブ データは、共有コンテンツに依存してはなりません。

**合格例**

1. 同じ本体プラットフォーム/世代の 2 台目の本体 (例: XBOX Series S と XBOX Series X、または XBOX One と XBOX One S) で、ゲーム セーブと関連する設定ファイルを正常にダウンロードできる。
2. Windows プラットフォームの 2 台目の PC で、ゲーム セーブと関連する設定ファイルを正常にダウンロードできる。
3. 同じプラットフォームの世代間で同じ TitleID を共有する本体ゲーム (例: XBOX One と XBOX Series X|S) では、セーブと関連する設定ファイルをそれらのデバイス間でローミングできる。
4. ゲーム セーブ データが共有コンテンツに依存していない。

**不合格例**

1. 同じプラットフォーム/世代の 2 台目の本体 (例: XBOX Series S と XBOX Series X、または XBOX One と XBOX One S) で、ゲーム セーブと関連する設定ファイルを正常にダウンロードできない。
2. Windows プラットフォームの 2 台目の PC で、ゲーム セーブと関連する設定ファイルを正常にダウンロードできない。
3. 同じプラットフォームの世代間で同じ TitleID を共有する本体ゲーム (例: XBOX One と XBOX Series X|S) で、セーブと関連する設定ファイルをそれらのデバイス間でローミングできない。
4. 初回起動時にクラウド内のセーブがタイトルによって認識されず、ユーザーの操作なしに、その後 2 台目のデバイスで上書きされる。
5. ゲーム セーブ データが共有コンテンツに依存している。


## Related topics

- [XR052 ユーザーの状態、セーブ場所、ローミング、および依存関係](https://docs.xbox.com/ja-jp/publishing/certification/fma/xr-052.md)
- [XBOX ゲーム向け認定テスト対象 XBOX 要件](https://docs.xbox.com/ja-jp/publishing/certification/console-cert-tested-requirements.md)
- [XBOX ゲーム向け XBOX 要件](https://docs.xbox.com/ja-jp/publishing/certification/xbox-requirements.md)
- [Game Saves 開発者ガイド](https://docs.xbox.com/ja-jp/build/core-features/common/game-save/game-saves-developer-guide.md)
- [XBOX Requirements とポリシーのサポート コンテンツ](https://docs.xbox.com/ja-jp/publishing/certification/xr/overview.md)
