GSDK をプロジェクトに追加する
この記事では、既存のプロジェクトを PlayFab Multiplayer Servers (MPS) 上でホストできるようにアップグレードする方法について説明します。この手順には、Unreal プロジェクトへの PlayFab GSDK の追加と構成が含まれます。ここでの手順は、Unreal ThirdPersonMP テンプレートプロジェクトを使用して記述されています。 Unreal プロジェクトには以下の機能が必要です:- ネットワーキング
- マルチプレイヤー
- 専用ゲームサーバー
目標
PlayFab Unreal GSDK をプロジェクトに追加および構成し、ローカルでテストして PlayFab Multiplayer Services 上で動作することを確認します。要件
- Visual Studio をダウンロードします。Community 版 は無料です。
- 必要なワークロード: .NET デスクトップ開発と C++ によるデスクトップ開発
- Unreal Engine のソースコードをダウンロードします。手順については、Unreal Engine ソースコードのダウンロード (外部) を参照してください。
- 完了済みの ThirdPersonMP サンプルプロジェクト、または同等の機能を持つプロジェクト
- PlayFab Unreal GSDK プラグイン
- [オプション] PlayFab Marketplace プラグイン または GitHub 上のソース版。このプラグインは GSDK には必要ありませんが、ログインなど多くの PlayFab サービスに必要です。
C++ 実装
プロジェクトへのプラグイン追加
以下の手順に従って Unreal GSDK をプロジェクトに追加します:- Unreal プロジェクトに移動します
- File Explorer を開き、ゲームのルートディレクトリに Plugins フォルダーを作成します。Plugins フォルダー内に PlayFabGSDK というフォルダーを作成します。
- {depot}\GSDK\gsdk\UnrealPlugin に移動します。UnrealPlugin フォルダーのすべてのファイルを Plugins/PlayFabGSDK フォルダーにドラッグします。
- 最後に、任意のテキストエディタで
{ProjectName}.uprojectファイルを開きます。plugins 配列に「PlayFabGSDK」プラグインを追加します。
モジュールへのプラグインの組み込み
- {ProjectName}.Build.cs ファイルを更新し、次のように「PlayFabGSDK」を PublicDependencyModuleNames.AddRange(); リストに追加します:
{ProjectName}.uprojectファイルを右クリックし、Switch Unreal Engine version オプションを選択します。これで、現在使用している Unreal Engine のバージョンをすばやく確認できます。以下に示すポップアップが表示されます。Unreal Engine のバージョンがすでに source build であることが確認できた場合、変更する必要はないため、Cancel をクリックします。現在の Unreal バージョンが source build でない場合は、ドロップダウンリストから選択して OK をクリックします。

-
{ProjectName}.uprojectファイルを再度右クリックし、「Generate Visual Studio Project Files」を選択します。 - 最後に、Visual Studio でプロジェクトをビルドし、Development Editor 構成を選択して Editor を起動します。

プロジェクトのセットアップ
プロジェクトでサーバーモードを有効にすると、{ProjectName}Server.Target.cs ファイルが作成されます。 結果は以下のようになります:GameInstance クラスの作成/更新
GameInstance クラスの作成
プロジェクトをゼロから作成しており、まだ GameInstance クラスがない場合は、まず以下の手順に従って GameInstance クラスを作成してください。すでに GameInstance クラスがあるプロジェクト (たとえば Unreal のサンプルライブラリの ShooterGame) を使用している場合は、GameInstance クラスを変更する セクションに進んでください。Unreal Editor で:
- Files を選択します
- Create a new C++ class を選択します
- Show all classes を選択します
- 検索フィールドに
GameInstanceと入力します- 説明どおりに直接選択することで、すべてが正しく生成され、以下で説明する関数を追加できます
- Unreal を閉じて、source build モードでもう一度 プロジェクトファイルを生成 します
- Visual Studio を使用して、新しく作成されたファイルを開き、以下の手順に従って GameInstance クラスを変更します。
GameInstance クラスの変更
プロジェクトのセットアップによっては、C++ または Blueprint を使用して GameInstance クラスを変更できます。両方の方法を以下に示していますので、ニーズに合った方を選択してください。C++ 実装
GameInstance クラスを見つけます。通常は {ProjectName}GameInstance や MyGameInstance のような名前になっています。今後、GameInstance クラスは [YourGameInstanceClassName] と表記します。GameInstance ヘッダーファイルの変更
まず、include 文を確認し、GameInstance クラスのヘッダーファイル ([YourGameInstanceClassName].h) に以下が含まれていることを確認します:GameInstance CPP ファイルの変更
次に、[YourGameInstanceClassName].cpp ファイルを見つけます。 以下が含まれていることを確認します:Init() 関数の作成
すでに Init() 関数が あった 場合は、
[YourGameInstanceClassName].cpp ファイルで、そのインスタンスが専用サーバー用かどうかを示す変数があるかを確認します。この変数が見つかった場合、Init() 関数の最後に以下を追加します:
既存の Init() 関数の変更
最後に、これらのメソッド実装を
[YourGameInstanceClassName].cpp ファイルの末尾に追加します:
Blueprint 実装
この部分は、純粋な C++ 実装ではなく Blueprint 実装で進めることを決定した場合にのみ必要です。- Unreal Editor で Content Browser ウィンドウを確認します
- 新しい Blueprint を格納するフォルダーを選択または作成します
- 右クリックして Blueprint クラスを作成します
- All classes ドロップダウンメニューで、GameInstance クラスを見つけます
- この例では、Blueprint に「MyGameInstance」という名前を付けています
- Blueprint をダブルクリックします
- 左側で function フィールドにマウスをホバーし、Override ドロップダウンを選択します
- Init 関数を選択します
- グラフ内で右クリックして、すべての register GSDK 関数を追加します
- GSDK Shutdown と Maintenance Delegate については、赤い四角から線を引き出し、「Add Custom Event」を選択します
- 「Register GSDK Health Check Delegate」については、「Event Dispatchers」の「Create Event」を選択します。
-

- 新しいノードのドロップダウンで「Create matching function」を選択します。GSDK Health Check Delegate には戻り値があるため、これは重要です。
-

- 関数内で、戻り値のブール値がチェックされていることを確認します。
-

- すべてのノードを Event Init ノードに接続することを忘れないでください。
- 最後に、「ReadyforPlayers」ノードを追加して、PlayFab の準備完了信号に応答できるようにします。
- また、GSDK が期待するポートに接続するために「SetDefaultServerHostPort」ノードを追加することも忘れないでください。
- Blueprint に追加したいすべての GSDK 関数/ノードについて、新しいノードで関数名の最初の数文字を入力し、期待される GSDK 関数が候補に表示されることを確認できます。
- 最終的に、Blueprint は以下の画像と同様になるはずです。
-

GameInstance クラスの設定
gsdk と統合するカスタム GameInstance クラスを作成した後、この新しく作成した GameInstance クラスを実際に使用するようにプロジェクトを構成する必要があります。これには、Unreal Engine エディタを使用する方法と、DefaultEngine.ini を直接編集する方法の 2 つがあります。Unreal Editor で
エディタでは、UI を通じてデフォルトの GameInstance を設定できます。エディタで Edit -> Project Settings に移動します。開いたウィンドウから、左側の Maps&Modes に移動します。一番下までスクロールし、GameInstanceClass オプションを新しい GameInstance クラスに直接設定できます (誤字を避けてください。完全一致である必要があります)。
