ブループリントを使用した統合
Use the Matchmaker Blueprint API to add matchmaking functionality to your Unreal Engine game without writing code.
読み終わるまでの所要時間 4 分最終更新 7ヶ月前
以下のセクションでは、Unreal Engine のブループリント を使用して Matchmaker SDK を統合する方法を示します。
Unity Gaming Services SDK 内では、次の 2 つの Matchmaker インターフェースを操作できます。
Matchmaker SDK プラグインのインストール
先に進む前に、 をモジュールのパブリック依存関係として追加し、以下に示すようにプラグインのヘッダーファイルをクラスに加えます。
MatchmakerSDKMatchmakerServerMatchmakerClientYourProjectName.Build.csPublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });PublicDependencyModuleNames.AddRange(new string[] { "MatchmakerClient", "MatchmakerServer" });PublicDependencyModuleNames.AddRange(new string[] { "Json", "JsonUtilities" });
Matchmaker Client Blueprint API
Matchmaker クライアントサブシステムが、マッチメイキングとマッチ検出のクライアント部分を制御します。これには、マッチメイキングチケットの作成、削除、ポーリングが含まれています。
UMatchmakerClientBlueprintApiCreateTicket
CreateTicket以下の例では、1 人のプレイヤーとキューを渡してチケットを作成する方法を示しています。また、応答を処理して の 出力を取得するイベントも示しています。
TicketIdFString


応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinCreateTicketResponseDeleteTicket
DeleteTicket以下は、Delete Ticket の使用方法と応答の処理方法を示す簡単な例です。

応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinDeleteTicketResponseGetTicketStatus
GetTicketStatusTicketIdポーリングが成功または失敗して完了した後、またはユーザーがマッチメイキングを手動でキャンセルした場合には、 ブループリントを使用して、プレイヤーをマッチメイキングの対象と認識することを停止します。
DeleteTicket
応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinGetTicketStatusResponse]上の画像は、 ノードを使用したマッチメイキングチケットのポーリングの例を示しています。このノードは、ループ条件が true の場合に、Time 変数で設定された頻度でイベントを継続的にトリガーします。この例では Time が 5 に設定されているため、このイベントは、タイマーハンドラーがキャンセルされるまで 5 秒ごとに発生します。戻り値は、 によるタイマーのキャンセルに使用できるタイマーハンドラーです。
Set Timer by EventClear and Invalidate Timer by Handle
タイマーハンドルは、Set Timer by Event ノードから Clear and Invalidate Timer by Handle ノードに渡されます。Clear and Invalidate Timer by Handle をトリガーするには、何らかの条件付きロジックが必要です。マッチが返される前に、 への最多連続呼び出しを実行する必要があります。InProgress のステータスが返されなくなったら、ポーリングを停止してチケットを削除しても問題ありません。
GetTicketStatus以下の画像は、ポーリング応答を処理して Clear and Invalidate Timer をトリガーする方法の基本的な例を示しています。

Matchmaker Server Blueprint API
Matchmaker サーバーサブシステムが、マッチメイキングのサーバー部分を制御します。これには、バックフィルチケットの作成、承認、削除、更新が含まれています。
UMatchmakerServerBlueprintApi- サーバーでのバックフィルを開始するために、バックフィルチケットを作成する。
- 新しいプレイヤーがサーバーに参加できるように、バックフィルチケットを承認する。
- プレイヤーがサーバーから退出した場合とマッチメイキングプロセスの外部からサーバーに参加した場合にマッチメーカーに通知するために、バックフィルチケットを更新する。
- サーバーが新しいプレイヤーの受け入れを停止した後に、バックフィルチケットを削除する。
CreateBackfillTicket
あるプレイヤー (または複数のプレイヤー) が満員のマッチから退出した後には、新しいバックフィルチケットを作成する必要があります。また、サーバーは空のスロットを埋める必要があります。Create Backfill Ticket ブループリントを使用して、サーバーに新しいバックフィルチケットを作成します。



応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinCreateBackfillTicketResponseApproveBackfillTicket
Approve Backfill Ticket ブループリントを使用し、バックフィルチケットを定期的に承認して新しいプレイヤーがサーバーに参加できるようにします。
バックフィルチケットの承認は、最速でも 1 秒に 1 回までにすることをお勧めします。チケットが承認されない状態が 20 秒続くと、そのチケットは Matchmaker サービスによって削除されます。

上の例では、承認がループで毎秒実行されます。バックフィルチケットを削除した後に Clear and Invalidate Timer by Handle ノードを使用してください。
応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinApproveBackfillTicketResponseUnity では、応答から値をキャッシュし、それらの値を での のビルドに使用することをお勧めしています。
UpdateBackfillTicketBackfillTicketUpdateBackfillTicket
バックフィルチケットは次の場合に更新します。
- プレイヤーがサーバーを退出した場合
- プレイヤーが対戦相手探しのロジックの外からサーバーに参加した場合
これには、パーティの招待、直接接続、友人の招待などが含まれますが、これらに限りません。
Update Backfill Ticket ブループリントを使用して、サーバーの現在のバックフィルチケットを更新します。

応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinUpdateBackfillTicketResponseこれは、3 秒に 1 回よりも少ない頻度で呼び出す必要があります。または、 がバックフィルチケットの変更を認識した後に呼び出す必要があります。そうすることで、マッチメイキングサイクルの経過を保証します。
ApproveBackfillTicketUnity では、最初に を呼び出し、 から返された を使用して必要に応じて修正し、 に渡すことをお勧めします。
ApproveBackfillTicketApproveBackfillTicketBackfillTicketUpdateBackfillTicketDeleteBackfillTicket
マッチが満員になり、サーバーが新しいプレイヤーを受け付ける必要がなくなった後は、バックフィルチケットを削除できます。これはマッチが終了した後にも行う必要があります。
Delete Backfill Ticket ブループリントを使用して、サーバーでのバックフィルを停止します。

応答ハンドラーにカスタムイベントを設定できます。イベントの 構造体のピンを右クリックして を選択し、 の個々の値すべてにアクセスします。
ResponseSplit Struct PinDeleteBackfillTicketResponseブループリントのユーティリティ関数
ブループリントに制限があるため、JSON データ型 ( や など) はネイティブな互換性を備えておらず、直接の操作に対応していません。API の一部として JSON データを管理できる一連のユーティリティ関数が、SDK によって実装されます。
FJsonObjectFJsonValue- の一部としての
MatchmakerServerMatchmakerServerBlueprintUtil - の一部としての
MatchmakerClientMatchmakerClientBlueprintUtil
MatchmakerClientMatchmakerServerMatchmakerCoreMatchmakerClient
プレイヤーのカスタムデータ
MatchmakerClientMatchmakerClientBlueprintUtilPlayerCustomDataAddStringData(FMatchmakerPlayer& Player, FString Key, FString Value)
このブループリントを使用して、プレイヤーの CustomData オブジェクトに文字列データフィールドを追加できます。
これは、データが正常に設定されている場合に true を返し、そうでない場合に false を返します。
PlayerCustomDataAddNumberData(FMatchmakerPlayer& Player, FString Key, float Value)
このブループリントを使用して、プレイヤーの CustomData オブジェクトに数値データフィールドを追加できます。
これは、データが正常に設定されている場合に true を返し、そうでない場合に false を返します。
PlayerCustomDataRemoveData(FMatchmakerPlayer& Player, FString Key)
このブループリントを使用して、プレイヤーの CustomData オブジェクトからデータフィールドを削除できます。
これは、プレイヤーの CustomData に が含まれていて、それが削除された場合に true を返します。 が見つからなかった場合は false を返します。
KeyKeyAttributes
MatchmakerClientMatchmakerClientBlueprintUtilCreateTicketOptionsAddStringAttribute(FCreateTicketOptions& Options, FString Key, FString Value)
このブループリントを使用して、文字列ベースの属性を オブジェクトに追加します。これは、属性が正常に設定されている場合に true を返し、そうでない場合に false を返します。
CreateTicketOptionsCreateTicketOptionsAddNumberAttribute(FCreateTicketOptions& Options, FString Key, float Value)
このブループリントを使用して、数値ベースの属性を オブジェクトに追加します。これは、属性が正常に設定されている場合に true を返し、そうでない場合に false を返します。
CreateTicketOptionsCreateTicketOptionsRemoveAttribute(FCreateTicketOptions& Options, FString Key)
このブループリントを使用して、 オブジェクトから属性を削除します。
CreateTicketOptionsこれは、 に属性が含まれていて、それが削除された場合に true を返します。属性が見つからなかった場合は false を返します。
CreateTicketOptionsMatchmakerServer
MatchmakerServerMatchmakerServerBlueprintUtilCreateBackfillTicketOptionsAddStringAttribute(FCreateBackfillTicketOptions Options, FString Key, FString Value)
このブループリントを使用して、文字列ベースの属性を オブジェクトに追加できます。これは、属性が正常に設定されている場合に true を返し、そうでない場合に false を返します。
CreateBackfillTicketOptionsCreateBackfillTicketOptionsAddNumberAttribute(FCreateBackfillTicketOptions& Options, FString Key, float Value)
このブループリントは、数値ベースの属性を オブジェクトに追加するために使用されます。
CreateBackfillTicketOptionsこれは、属性が正常に設定されている場合に true を返し、そうでない場合に false を返します。
CreateBackfillTicketOptionsRemoveAttribute(FCreateBackfillTicketOptions Options, FString Key)
このブループリントを使用して、 オブジェクトから属性を削除します。これは、 に属性が含まれていて、それが削除された場合に true を返します。また、属性が見つからなかった場合に false を返します。
CreateBackfillTicketOptionsCreateBackfillTicketOptions