アクティビティ
このトピックでは、参加可能なマルチプレイヤー エクスペリエンスを他のプレイヤーに宣伝することについて説明します。 その後、エクスペリエンスに参加することができます。
アクティビティの使用
プレイヤーがマルチプレイヤー エクスペリエンスを開始したり、参加したりすると、タイトルはアクティビティを作成して、マルチプレイヤー アクティビティ (MPA) でこれを公開する必要があります。 セッションベース モデルとは異なり、アクティビティはプレイヤーごとに行われます。 一緒にプレイしている場合でも、各プレイヤーが自分のアクティビティを作成する必要があります。
タイトルはプレイヤーがマルチプレイヤー エクスペリエンス状態になるとすぐに、このアクティビティを作成する必要があります。 エクスペリエンス中、プレイヤー数の増減があると、タイトルがアクティビティを変更する必要があります。 プレイヤーがマルチプレイヤー エクスペリエンスを終了する、または退出すると、タイトルはアクティビティを削除します。 万が一タイトルのクラッシュが発生した場合、またはアクティビティの削除に失敗した場合、MPA はプレイヤーがタイトルのプレイを停止していることを検出した時にアクティビティを削除しようとします。 アクティビティの更新がない場合は、24 時間後に自動的に削除されます。
アクティビティのコンテンツ
アクティビティには、以下の表のような情報が含まれます。
フィールド | 目的 | 注意事項 |
---|---|---|
xuid |
アクティビティを作成したユーザーの XboxUserId 。 |
アクティビティをクエリする場合にのみ使用されます。 プレイヤーが設定できるのは、自分のアクティビティのみです。 |
connectionString |
MPA に対して非透過である、タイトルにより定義される文字列。 タイトルが別のプレイヤーに接続するときに使用できる情報が含まれています。 | 512 文字未満にする必要があります。 |
joinRestriction |
このアクティビティで接続文字列を表示できるプレイヤーを表すことができます。 詳細については、後述のプライバシー セクションを参照してください。 | Public 、Followed 、InviteOnly である必要があります。 |
maxPlayers |
このアクティビティで許可されるプレイヤーの最大数です。 | 省略可能。 1 より大きく、100 以下の値を指定する必要があります。 |
currentPlayers |
このアクティビティ内の現在のプレイヤー数です。 | 省略可能。 0 より大きく、100 以下の値を指定する必要があります。 |
groupId |
タイトル定義 ID。 同じ groupId のプレイヤーは、MPA で一緒にプレイすると見なされます。 |
128 文字未満で、グループ ID にのみ使用する必要があります。 |
platform |
特定のプラットフォームに設定した場合、招待や参加によるクロスプレイをそのプラットフォームのみに制限します。 設定されていない場合は、すべての定義されたプラットフォームとのクロスプレイが可能になります。 | 詳細については、後述の「クロスプレイをサポートする」セクションを参照してください。 |
プライバシー
タイトルは、そのソーシャル グラフ上のユーザーのサブセットだけにプレイヤーの参加を許可することができます。 joinRestriction
フィールドでは、他のプレイヤーがこのアクティビティを表示したときに接続文字列を受信するかどうかを決定します。 値とその意味を次の表に示します。
値 | 意味 |
---|---|
Public |
すべてのプレイヤーがこのアクティビティに参加できます。 |
Followed |
アクティビティの作成者が別のプレイヤーをフォローしている場合に、そのプレイヤーが参加できます。 |
InviteOnly |
招待に返信しない限り、このアクティビティに参加できるプレイヤーはいません。 |
クロスプレイのアクティビティをサポートする
Microsoft Game Development Kit (GDK) でアクティビティを作成する場合に、タイトルで allowCrossplay
フラグが指定されることがあります。
false
の場合、Microsoft Game Development Kit (GDK) によってプラットフォーム フィールドに現在のプラットフォームが自動的に入力されます。 true
の場合、Microsoft Game Development Kit (GDK) でのプラットフォーム フィールドは null
になります。これは、招待がプラットフォームにまたがることを示します。 クロスプレイが可能なプラットフォームの一覧は、タイトル構成によって異なります。 このシナリオでは、コンソール世代はクロスプレイとみなされます。
アクティビティの取得
他のプレイヤーのアクティビティを取得する場合、接続文字列が非表示になっていることがあります。 これは、プレイヤーのこのアクティビティへの参加が許可されていないことを示します。 たとえば、アクティビティの joinRestriction
によっては、アクティビティが満員で接続文字列が表示されないことがあります。