基本プレイ無料のタイトル、体験版、またはベータ版は、Game Pass のサブスクライバーではないプレイヤーに対してマルチプレイヤーのゲームプレイ (ID 254) を許可するように構成できます。これはサービス側の構成によって行われ、Microsoft の担当者に連絡することで開始できます。これらのタイトルでも、ペアレンタル コントロールとプレイヤーの選択が尊重されるように、マルチプレイヤー ゲームの特権を引き続き確認する必要があります。
詳細情報
[!NOTE] 技術的なガイダンスとベスト プラクティスの詳細については、XBOX サービスのユーザー特権のクライアント側での使用 のドキュメントを参照してください。サービスが XBOX network によって発行されたトークンを処理する場合は、トークン内のユーザーの “prv” クレームを調べることで、セッション内のユーザーが要求された操作を実行するための適切な特権を持っていることをサービス側で強制する必要があります。 タイトルが上の表に記載されているアクティビティを 1 つ以上提供する場合、タイトルは特定のアクティビティに関連付けられた特権を確認する必要があります。ユーザーが特権を持っていない場合、ユーザーに関連するアクティビティの使用を許可してはなりません。特権は、セッション/操作の期間、または XBOX network トークンが更新されるまでの時間のうち、いずれか短い方の間付与されます。 開発プラットフォーム (GDK、XDK、XSAPI) に応じて、ゲーム タイトルは適切な API を呼び出し、(1) ブロックされた特権をユーザーに通知するシステム UI (子どものアカウントの場合は、特定の特権について親または保護者にアクセス許可を要求する手段も含む) を呼び出すか、(2) 具体的で対処可能なエラー メッセージを表示する必要があります。 PC または XBOX 本体で GDK を使用する場合: GDK を使用してユーザーが特権を持っているかどうかを確認するには、タイトルは XUserCheckPrivilege API と XUserResolvePrivilegeWithUiAsync API を使用する必要があります。使用パターンとコンテキストの処理に関する具体的な情報は、GDK ドキュメントの XBOX サービスのユーザー特権の概要 のトピックで確認できます。 XBOX One XDK を使用する場合: XBOX One でユーザーが特権を持っているかどうかを確認するには、タイトルは Store::Product::CheckPrivilegeAsync API を使用します。特権の確認がユーザーの操作 (マルチプレイヤー ゲーム モードへの移行など) の結果として行われる場合は、attemptResolution パラメーターを true に設定する (またはまったく設定しない) 必要があります。プラットフォームが特権を確認し、ユーザーが特権を持っていない場合は、その理由の特定を試みます。 API が false を返した場合、ユーザーは特権を持っておらず、システムは問題を正常に解決していません。このような場合、タイトルは特権が必要なアクティビティをブロックする必要がありますが、ユーザーがそのアクティビティに対する適切なアクセス許可を持っていないこと、またはユーザーの特権に関する問題があることを、システムが既に適切にユーザーに通知していると想定できます。 特権の確認がユーザーの操作の結果としてではなく、たとえばバックグラウンドでのサイレントな呼び出しの一部として、または UX を装飾するために行われる場合は、attemptResolution を false に設定して API を呼び出す必要があります。その結果、ユーザーにはメッセージが表示されず、システムは特権の問題を修正するための介入を行いません。 UWP、Win32、モバイル、またはその他のプラットフォームで XSAPI を直接使用する場合: “prv” クレームに特権が存在しない場合、ユーザーはその特権を持っておらず、タイトルはユーザーが特権が必要なアクティビティを続行できないようにする必要があります。ユーザーが特権が必要なアクティビティへのアクセスを要求したこと (マルチプレイヤー セッションを開始または参加しようとしたことなど) によって確認がトリガーされた場合、タイトルは参加できないことをユーザーに知らせる情報メッセージを表示する必要があります。推奨される メッセージは次のとおりです。
実装要件
XBOX network の接続の問題: XBOX サービスに到達できないためにタイトルが (API を通じて、または XBOX Live トークンを取得できないことにより) エラーを受け取った場合、タイトルは要求された操作へのアクセスをブロックする必要があります。このような場合、タイトルは XR-074「XBOX およびパートナー サービスへの接続の喪失」で説明されているとおりに、適切にエラーを処理する必要があります。
ベスト プラクティス
追加リソース
特権とユーザー トークンの詳細については、Microsoft Game Development Kit (GDK) または XBOX Application Development Kit のドキュメントの「ユーザー トークン」を参照してください。 この XR の目的上、ソーシャル ネットワークとは、個人が既定で他のユーザーとコンテンツを共有できる、XBOX network 外部のサイトまたはサービスです。外部サイトの既定のオプションがフレンドまたは全員との共有を有効にするものである場合、この XR の目的上、外部サイトでアップロード時にユーザーが共有を制限することを選択できる必要はありません。除外
有料のトランザクション型ビデオ サービスは、ビデオ コンテンツの特権設定に関係なく、すべての XBOX ユーザーに提供できます。アプリがプレミアム コンテンツと有料のトランザクション型ビデオ サービスの両方を提供する場合、プレミアム コンテンツはこの要件に従う必要があります。 アプリが XBOX プラットフォームで提供されている国/地域の公共放送事業者である場合、非商用のコンテンツはすべて、ユーザーのビデオ コンテンツの特権設定に関係なく、その国/地域のすべての XBOX ユーザーが利用できるようにする必要があります。 XBOX One 本体と本体以外のデバイス間で非同期マルチプレイヤーを提供するタイトルは、本体以外のデバイスでのエクスペリエンスについてマルチプレイヤー特権を確認する必要はありません。認定テスト ケース
045-01 ユーザー特権の尊重テスト手順
- XBOX プロフィールにサインインし、タイトルを起動します。
- XR の注意事項で示されている各特権について、タイトルが関連するアクティビティをサポートしているかどうかを確認します。
- 手順 [2] で特定した該当する各特権の可能な設定ごとに、次の操作を実行します。
期待される結果
- タイトルを終了し、その特権に関するユーザーの設定を変更します。
- 本体を再起動します。
- 同じプロフィールにサインインし、タイトルを起動します。
- タイトルの関連するすべての領域にアクセスし、特権に関連するタイトルのすべての機能を使用して、タイトルがユーザーの現在の特権設定を尊重していることを確認します。
- シルバーの XBOX プロフィールを使用して、すべてのオフラインおよびオンラインの領域へのアクセスを試みます。
タイトルは、ユーザーの特権設定に従う必要があります。 合格例不合格例
- タイトルがユーザーの特権設定を尊重する。
- タイトルが、部分的に許可された特権設定を、特権が無効/不許可であるかのように扱う (例: ユーザー生成コンテンツ (UGC) の特権が [フレンドのみ] に設定されている場合、タイトルは特権が [ブロック] に設定されているかのように動作する)。
- XDK を使用するタイトルの場合、タイトルがシステム UI を呼び出して、特権の競合をユーザーに通知する (タイトルは Store::Product::CheckPrivilegeAsync API を使用する必要があります)。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルは参加できないことをユーザーに知らせる情報メッセージを表示する。
- GDK を使用するタイトルの場合、タイトルがシステム UI を呼び出して、特権の競合をユーザーに通知する。タイトルがシステム UI を呼び出せない場合 (252、189、247)、タイトルは参加できないことをユーザーに知らせる情報メッセージを表示する。タイトルは XUserCheckPrivilege API と XUserResolvePrivilegeWithUiAsync API を使用する必要があります。
- XSAPI を使用するタイトルの場合、タイトルが参加できないことをユーザーに知らせる情報メッセージを表示する。
- タイトルがユーザーの特権設定を保持し続け、変更後のユーザーの実際の特権を反映しない。
- タイトルが、部分的に許可された特権設定を、特権が最も制限の少ない設定になっているかのように扱う (例: ユーザー生成コンテンツ (UGC) の特権が [フレンドのみ] に設定されている場合、タイトルは特権が [許可] に設定されているかのように動作する)。
- XDK または GDK を使用するタイトルの場合、タイトルがゲーム内のメッセージを使用して特権の競合をユーザーに通知し、システム UI を表示しない。
- XSAPI を使用するタイトルの場合、タイトルが参加できないことをユーザーに知らせる情報メッセージを表示しない。
045-02 ユーザー特権の尊重 - XBOX Family
テストのセットアップと構成
次の Microsoft アカウントを含む XBOX Family:
- 管理者として指定された成人 (18 歳以上)。
- 子どもの既定 の特権設定を持つ子ども (13 歳未満):
参考資料とリンク: テスト手順
- 成人と子どもの Microsoft アカウントにサインインし、子どものアカウントでタイトルを起動します。
- XR の注意事項で示されている各特権について、タイトルが関連するアクティビティをサポートしているかどうかを確認します。
- 手順 [2] で特定した該当する各特権の可能な設定ごとに、次の操作を実行します。
- アカウントの特権に基づいて、関連するアクティビティが許可/不許可になっていることを確認します。例: タイトルがマルチプレイヤーをサポートしており、子どものアカウントのマルチプレイヤー特権がブロックされています。タイトルが子どものすべてのマルチプレイヤー アクティビティをブロックし、子どもがマルチプレイヤー アクティビティに参加しようとしたときに保護者のアクセス許可プロンプト (システム UI) が表示されることを確認します。
- タイトルを終了し、タイトルがサポートする特権アクティビティについて、ユーザーの子どもの特権設定をブロックから許可に変更します。例: マルチプレイヤーまたはユーザー生成コンテンツをブロックから許可に変更します。
- 本体を再起動します。
- 同じプロフィールにサインインし、タイトルを起動します。
- タイトルの関連するすべての領域にアクセスし、特権に関連するタイトルのすべての機能を使用して、タイトルがユーザーの現在の特権設定を尊重していることを確認します。例: タイトルがマルチプレイヤーをサポートしています。子どもはブロックされていましたが、現在はマルチプレイヤーが許可されています。タイトルは、子どもがマルチプレイヤー ゲーム モードにアクセスすることを適切に許可します。
期待される結果
- 親のアカウントが本体にサインインしていない状態で、手順 [2] から [3] を繰り返します。
タイトルは、すべての XBOX Family メンバーの特権設定を尊重する必要があります。 合格例不合格例
- タイトルが子どもの特権設定を尊重する。
- アクティビティの特権が許可されている場合、タイトルが子どもにそのアクティビティへの参加を許可する。
- アクティビティの特権がブロックされている場合、タイトルが子どもにそのアクティビティへの参加を許可しない。
- ブロックされているアクティビティについて、親が (保護者のアクセス許可 UI を通じて) そのアクティビティのアクセス許可を許可した場合、タイトルが子どもにそのアクティビティへの参加を許可する。
- ブロックされているアクティビティについて、親が (保護者のアクセス許可 UI を通じて) そのアクティビティのアクセス許可を許可しない場合、タイトルが子どもにそのアクティビティへの参加を許可しない。
- タイトルが、部分的に許可された特権設定を、特権が無効/不許可であるかのように扱う (例: ユーザー生成コンテンツ (UGC) の特権が [フレンドのみ] に設定されている場合、タイトルは特権が [ブロック] に設定されているかのように動作する)。
- XDK を使用するタイトルの場合、タイトルがシステム UI を呼び出して、特権の競合をユーザーに通知する (タイトルは Store::Product::CheckPrivilegeAsync API を使用する必要があります)。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルは参加できないことをユーザーに知らせる情報メッセージを表示する。
- GDK を使用するタイトルの場合、タイトルがシステム UI を呼び出して、特権の競合をユーザーに通知する (タイトルは XUserCheckPrivilege API と XUserResolvePrivilegeWithUiAsync API を使用する必要があります)。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルは参加できないことをユーザーに知らせる情報メッセージを表示する。
- XSAPI を使用するタイトルの場合、タイトルが参加できないことをユーザーに知らせる情報メッセージを表示する。
- タイトルが子どもの特権設定を尊重しない。
- 例: タイトルがマルチプレイヤーをサポートしており、マルチプレイヤーがブロックされている子どもにマルチプレイヤー ゲーム モードへのアクセスを許可する。
- タイトルが、特権の競合を子どもに警告して通知するための適切な UI を呼び出さない。
- 例: タイトルがマルチプレイヤーをサポートしているが、特権がブロックされているときに、子どもに保護者のアクセス許可を求めるプロンプトが一切表示されない。
- アクティビティの特権がブロックされているときに、タイトルが子どもにそのアクティビティへの参加を許可する。
- アクティビティの特権が許可されているときに、タイトルが子どもにそのアクティビティへの参加を許可しない。
- ブロックされているアクティビティについて、親が (保護者のアクセス許可 UI を通じて) そのアクティビティのアクセス許可を許可していないのに、タイトルが子どもにそのアクティビティへの参加を許可する。
- ブロックされているアクティビティについて、親が (保護者のアクセス許可 UI を通じて) そのアクティビティのアクセス許可を許可しているのに、タイトルが子どもにそのアクティビティへの参加を許可しない。
- タイトルがユーザーの特権設定を保持し続け、変更後のユーザーの実際の特権を反映しない。
- 例: タイトルがマルチプレイヤーをサポートしています。子どものアカウントはマルチプレイヤーがブロックされていますが、システム UI を通じて親からアクセス許可が付与されます。特権が付与されているにもかかわらず、タイトルがマルチプレイヤーをブロックし続ける。
- タイトルが、部分的に許可された特権設定を、特権が最も制限の少ない設定になっているかのように扱う。例: ユーザー生成コンテンツ (UGC) の特権が [フレンドのみ] に設定されている場合、タイトルは特権が [許可] に設定されているかのように動作する。
- XDK を使用するタイトルの場合、タイトルがシステム UI を呼び出して特権の競合をユーザーに通知しない (タイトルは Store::Product::CheckPrivilegeAsync API を使用する必要があります)。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルが参加できないことをユーザーに知らせる情報メッセージを表示しない。
- GDK を使用するタイトルの場合、タイトルがシステム UI を呼び出して特権の競合をユーザーに通知しない (タイトルは XUserCheckPrivilege API と XUserResolvePrivilegeWithUiAsync API を使用する必要があります)。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルが参加できないことをユーザーに知らせる情報メッセージを表示しない。
- XSAPI を使用するタイトルの場合、タイトルが参加できないことをユーザーに知らせる情報メッセージを表示しない。
