Skip to main content
このトピックでは、XBOX services マルチプレイヤーでプレイヤー ロールを定義する方法について説明します。一部のゲーム セッションでは、サポート、メディック、アサルトなどのゲームプレイ ロールを特定のプレイヤーに割り当てたい場合があります。特定のゲームプレイ ロールを埋めることができるプレイヤー用にゲーム スロットを予約したい場合もあります。 XBOX services ロール機能を使用すると、サービスは、各ゲームプレイ ロールに割り当てられているプレイヤーを追跡し、特定のゲームプレイ ロールを選択できるプレイヤーの最大数を強制できます。 ロールの最も一般的な使用法は、ゲーム セッションに対してゲーム固有のロールを決定することです。たとえば、1 つまたは 2 つのサポート クラス、少なくとも 1 つのタンク/ヘビー クラス、そして 5 つを超えないアサルト クラスを必要とするゲーム モードを設定できます。 別の可能なシナリオでは、ゲーム セッションに正確に 4 人のゲーム プレイヤー、最大 8 人の観戦者、そして正確に 1 人のアナウンサーが存在できるように指定したい場合があります。 また、セッション ブラウズなど、他の手段で残りのスロットを埋めながら、友達用にスロットを予約するためにロールを使用することもできます。

ロール タイプ

ロール タイプ は、ロール定義のグループを表します。各ロールは、ロール タイプの一部として定義される必要があります。ロール タイプは、マルチプレイヤー セッション ドキュメントで定義されます。 プレイヤーには、1 つのロール タイプから 1 つのロールのみを割り当てることができます。たとえば、「クラス」ロール タイプにヒーラー、タンク、ダメージが含まれる場合、プレイヤーはそれらのロールのうち 1 つだけに割り当てることができます。 複数のロール タイプを定義でき、プレイヤーは各ロール タイプから 1 つのロールを割り当てることができます。前のシナリオでは、ヒーラー ロールを選択したプレイヤーは、分隊長ロールが別のロール タイプで定義されている場合、分隊長ロールを割り当てることもできます。

ロール タイプのプロパティ

ロール タイプを定義する際は、次の情報を指定する必要があります。
  • ロール タイプの名前。名前は小文字の英数字であり、100 文字以下である必要があります。
  • ロールの定義。
  • ロールがオーナー管理されているかどうか。
  • セッションの存続期間中にロールのプロパティを変更できるかどうか。
ロール タイプがオーナー管理されている場合、セッションのオーナーであるプレイヤーのみがその型のロールを割り当てることができます。ロール タイプがオーナー管理されていない場合、プレイヤーは自分自身にロールを割り当てることができます。 ロール タイプをオーナー管理として指定できるのは、hasOwners 機能が設定されているセッションのみです。
XBOX Services API (XSAPI) は現在、オーナーが他のプレイヤーにロールを割り当てることをサポートしていません。

ロールのプロパティ

ロールを定義する際は、次の情報を指定する必要があります。
  • ロールの名前。名前は小文字の英数字であり、100 文字以下である必要があります。
  • ロールを埋めることができるプレイヤーの最大数。値はゼロより大きい必要があります。
  • ロールを埋めるべきプレイヤーの目標数。値はゼロより大きく、そのロールを埋めることができるプレイヤーの最大数以下である必要があります。
プレイヤーにセッションでロールが割り当てられると、前述の情報がマルチプレイヤー セッション ドキュメントに記録されます。 サービスは、ロールに割り当てることができるプレイヤーの最大数は強制しますが、目標数は強制しません。

ロールの作成

ロールとロール タイプは通常、セッション テンプレートで定義されます。詳細については、Multiplayer セッション テンプレート を参照してください。サービスはセッション作成中のロール タイプとロールの定義をサポートしていますが、XSAPI はサポートしていません。

セッション テンプレートでロール タイプとロールを定義する

XBOX services 構成中にセッション テンプレートを作成する際にロール タイプとロールを定義できます。 ロール タイプとロールに関する情報は、次の形式を使用してセッション テンプレートの基本レベルの roleTypes 要素として指定されます。

マルチプレイヤー セッションのロール情報を取得する

マルチプレイヤー セッションまたはマルチプレイヤー検索ハンドルから、ロール タイプ、ロール、および各ロールに割り当てられたプレイヤーの数に関する情報を取得できます。 XSAPI では、ロール タイプとロールに関する情報は配列構造で保存されます。 検索要求から返される XblMultiplayerSearchHandle オブジェクトでは、ロール タイプの名前で XblMultiplayerSessionRoleTypes データをインデックス化することにより、ロール タイプに関する情報を取得できます。 この呼び出しは、XblMultiplayerRoleType オブジェクトを返します。ロールに関する情報を取得するには、Roles 配列をインデックス化します。 XblMultiplayerRole オブジェクトには、MaxMemberCountMemberXuidsMemberCount、および TargetCount を含む、ロールに関する情報が含まれています。

プレイヤーにロールを割り当てる

現在、プレイヤーは XSAPI で自分自身のロールのみを割り当てることができます。現在のプレイヤーのロール タイプとロールを指定するには、XblMultiplayerSessionHandle オブジェクトを XblMultiplayerSessionCurrentUserSetRoles メソッドに渡します。 セッションをサービスに書き込もうとする際に、ロールが既に満杯になっている場合、MPSD は書き込みを拒否します。
最終更新日 2026年8月25日