マルチ ユーザー アプリケーションの概要
このトピックは、Xbox のマルチ ユーザー モデルの簡単な概要となるものです。
Xbox One ユーザー モデルは、複数のユーザーが単一のデバイスで互いに協力しながらゲームをプレイできるゲーム機本体の要件に合わせて調整されています。 それぞれが自分のコントローラーを持つ複数のユーザーがサインインして、同時に 1 つの対話型セッションでコンソールを使用できます。 これは、他の Windows デバイスとは異なります。 次に例を示します。
- Windows のデスクトップ PC では、同じデバイスを使用する複数のユーザーが許可されますが、各ユーザーに独自の対話型セッションがあり、各セッションはデバイス上の他のセッションから完全に独立しています。
- Windows Phone では、デバイスを使用するシングル ユーザーのみを許可します。 OOBE (Out-Of-Box Experience) 中にそのシングル ユーザーが決定され、ユーザーはサインイン後にサインアウトできません。 事実上、別のユーザーがデバイスを使用するにはデバイスをリセットする必要があります。
- Xbox One では、複数のユーザーがサインインして、単一の対話型セッションで同時にデバイスを使用できます。
Xbox One ユーザー モデル内の各ユーザーには、対応するローカル ユーザー アカウントがあります。 このローカル ユーザー アカウントは、Xbox Live アカウント (と Microsoft アカウント) に関連付けられています。 これは、Xbox のユーザー アカウントには Xbox Live アカウントおよび Microsoft アカウントとの厳密な 1 対 1 のマッピングがあることを意味します。
シングル ユーザー アプリケーション
既定では、ユニバーサル Windows プラットフォーム (UWP) アプリは、アプリケーションを起動したユーザーのコンテキストで実行されます。 これらのシングル ユーザー アプリケーション (SUA) は、その 1 人のユーザーのみを認識し、他の Windows デバイス上のユーザー モデルと互換性があるモードで実行されます。 この Xbox ユーザー モデルでは、アプリに関連付けられているユーザーが管理され、アプリの起動時にユーザーがサインインすることが保証されます。 このモデルでは、UWP アプリやゲームの作成者が Xbox 上で実行するために特別な操作をする必要はありません。
マルチ ユーザー アプリケーション
UWP ゲームでは、Xbox One のマルチ ユーザー モデルを選択できます。 これらのマルチ ユーザー アプリケーション (MUA) はシステム アカウント (既定のアカウントと呼ばれます) のコンテキストで実行され、Xbox One ユーザー モデルのパワーと柔軟性を最大限に活用できます。 この Xbox ユーザー モデルでは、ゲームに関連付けられているユーザーは管理されず、ユーザーがゲームを実行するためにサインインする必要もありません。 これは、ユーザー要件を明示的に認識および管理するように作成する必要があることを意味します (サインインしたユーザーが必要かどうか、現在のユーザーの概念を実装するかどうか、複数のユーザーからの入力を同時に許可するかどうかなど)。
マルチ ユーザー モデルを選ぶには:
- Visual Studio でプロジェクトを開きます。
- package.appxmanifest.xml ファイルを選びます。
- 右クリックして、[コードの表示] を選びます。
- 次の行を
<Properties></Properties>
セクションに追加します。
<uap:SupportedUsers>multiple</uap:SupportedUsers>
ユーザーおよび入力の識別
開発者は、KeyUp および KeyDown ルーティング イベントで使用される KeyRoutedEventArgs.DeviceId を使用して、さまざまな入力によって生成されるイベントを区別できます。 Windows.System.UserDeviceAssociation.FindUserFromDeviceId メソッドを使用すると、特定の入力に関連付けられたユーザーを特定することができます。
詳しくは、KeyRoutedEventArgs.DeviceId のトピックをご覧ください。
モデルの選択に関するガイダンス
すべての UWP アプリと、シングル ユーザーのゲームの大多数は、SUA として作成できます。 協力型のマルチ プレーヤー ゲームについてのみ、Xbox One のマルチ ユーザー モデルを選ぶことを検討するようお勧めします。