クイックスタート: PlayFab Online Subsystem
この記事は、Unreal Engine 4 または Unreal Engine 5 で構築されたゲーム用の Lobby、Matchmaking、Party などの PlayFab マルチプレイヤー機能をセットアップして使用するのに役立ちます。Unreal Engine 4 または Unreal Engine 5 でサポートされているプラットフォームとバージョンの完全な一覧については、サポートされているプラットフォーム を参照してください。 このページで対象プラットフォームに関する関連手順に従うと、PlayFab Online Subsystem (PF OSS) の使用を開始する準備が整います。認証、ネットワーキング、VOIP、ロビーへのグループ化、およびマッチメイキングは、他の変更を必要とせずにお客様に代わって処理されます。PlayFab Online Subsystem のダウンロードとインストール
PlayFab Online Subsystem にアクセスして、PF OSS ソースをダウンロードまたはクローンします。ダウンロードまたはクローンしたリポジトリ名は PlayFabMultiplayerUnreal です。このリポジトリの名前を OnlineSubsystemPlayFab に変更する必要があります。必要なもの
- PlayFab TitleID: PlayFab Party および Multiplayer ソフトウェア開発キット (SDK) 用の TitleID を構成していない場合は、PlayFab Party の有効化 を参照してください。
Microsoft Game Development Kit (GDK)、PC、Switch、PlayStation®5、および PlayStation®4
- 特定のプラットフォームの PlayFab Party、Lobby、Matchmaking ライブラリ: PlayFab Party および Multiplayer ライブラリの取得 を参照してください。
初期セットアップ
Unreal Engine コード ベース
- OnlineSubsystemPlayFab フォルダーとその内容を Unreal Engine ディレクトリの Engine\Plugins\Online の下にコピーします。
GenerateProjectFiles.batを実行してエンジンのプロジェクト ファイルを作成します。- 新しい
UE5.slnファイルを選択してプロジェクトを Visual Studio に読み込みます。 - ソリューション構成を Development Editor に、ソリューション プラットフォームを Win64 に設定します。Unreal Engine 5 ターゲットを選択してから、Build を選択します。
ゲーム コード ベース
- プラグイン リストに OnlineSubsystemPlayFab を追加するには、プロジェクト ファイルの Plugins セクションに次の変更を適用します。
- 出荷しないプラットフォームは削除します
- Unreal Engine 4 を使用している場合は XB1 の代わりに XboxOneGDK を使用します。Unreal Engine 5 では XboxOneGDK は非推奨です
{ProjectName}.uprojectファイルを選択してから、Switch Unreal Engine Version を Unreal Engine コード パスに選択して、ゲーム ソリューション ファイルを生成します。
ゲームの構成
- どのプラットフォームを対象としていても、ゲームは対象プラットフォームの INI ファイル ([yourGameDirectory]/Platforms/[yourPlatform]/Config にあります) で特定の PlayFab 固有の値を構成する必要があります。
- XBOX Series X GDK: XSXEngine.ini
- PC GDK: WinGDKEngine.ini
- XBOX One GDK: XB1Engine.ini (Unreal Engine 4 を使用している場合は XboxOneGDKEngine.ini)
- PC Steam: WindowsEngine.ini ([yourGameDirectory]/Config/Windows にもあります)
- Nintendo Switch: SwitchEngine.ini
- PS4™: PS4Engine.ini
- PS5™: PS5Engine.ini
- 構成の INI セクションが既に存在する場合 (例: Engine.GameEngine) は、次のセクションに示されているものに置き換えます。
- すべての <REPLACE ME> フィールドをデータで置き換えるようにしてください:
- UE 5.6 以降では、
DriverClassNameパラメーターに「/Script/」プレフィックスが必要です。たとえば、"OnlineSubsystemPlayFab.PlayFabNetDriver"の代わりに"/Script/OnlineSubsystemPlayFab.PlayFabNetDriver"を使用します。
プラットフォーム固有の考慮事項
これらすべてが完了したら、ほとんど終わりです。設定する必要のあるプラットフォーム固有のキー パラメーターがいくつかあります。GDK
GDK でゲームを開発する場合は、プラットフォーム サービスをセットアップします。Steam
Steam を使用して Win64 用のゲームを開発する場合は、プラットフォーム サービスを定義します。Switch
Switch の詳細については、Switch PlayFab OSS に付属している ReadMe.md ファイルを参照してください。アクセス権がない場合は、プライベート リポジトリへのアクセスをリクエスト できます。PS5™ および PS4™
PS5™ および PS4™ の詳細については、PS5™ および PS4™ PlayFab OSS に付属している ReadMe.md ファイルを参照してください。アクセス権がない場合は、プライベート リポジトリへのアクセスをリクエスト できます。クロスプラットフォーム
ゲームが PlayFab のクロスプラットフォーム ネットワーキング サポートを使用する場合は、接続を許可するプラットフォームを定義します。ゲーム コードでの使用
PlayFab Online Subsystem は、Game Session の名前として
NAME_GameSession のみをサポートしますPublicDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils" }); を追加してから、他のゲーム プラグインと同じ方法で使用します。
GameSession.cpp のコード例:
トラブルシューティング
問題のトラブルシューティングに役立つ方法です。Unreal Engine Installed Builds
ユーザーは、GDK ビルド フレーバー上で OnlineSubsystemPlayFab を使用して Unreal Engine Installed Build を作成しようとするときに問題に直面する可能性があります。より完全な解決策が提供されるまで、この問題を正常に克服するための以下のガイダンスを提供します。 Unreal Engine 5.4、5.5、5.6、または 5.7 を使用している場合:- 次のランタイム エラーが発生する可能性があります:
Runtime dependency Party.dll is configured to be staged from C:\Program Files (x86)\Microsoft GDK\<version>\Party.dll and Engine\Plugins\Online\OnlineSubsystemPlayFab\Platforms\GDK\Redist\Party.dll - Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\ に移動します
- OnlineSubsystemGDK.uplugin を開き、
PlayFabPartyを無効に設定します:
- Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\Source\ に移動します
- OnlineSubsystemGDK.Build.cs を開き、
PlayFabPartyのインクルージョンをコメント アウトします:
- マシン上で Unreal Engine がインストールされているディレクトリを特定します。
- Engine\Platforms\GDK\Plugins\Online\PlayFabParty に移動します
- PlayFabParty.uplugin を開き、PlatformDenyList で Modules 構成を更新します:
- Installed Build にこれらのプラットフォームが必要な場合は、XB1 (PlayFabParty_XB1.uplugin) と XSX (PlayFabParty_XSX.uplugin) についてもこのプロセスを繰り返します。Installed Build に Win64 も必要なプラットフォームである場合は、PlatformDenyList の配列に Win64 を追加します。
- マシン上で Unreal Engine がインストールされているディレクトリを特定します。
- Engine\Platforms\GDK\Plugins\Online\PlayFabParty に移動します
- PlayFabParty.uplugin を開きます
- キー WhitelistPlatforms を BlacklistPlatforms に置き換えます
- Installed Build にこれらのプラットフォームが必要な場合は、XboxOneGDK (PlayFabParty_XboxOneGDK.uplugin) と XSX (PlayFabParty_XSX.uplugin) についてもこのプロセスを繰り返します。Installed Build に Win64 も必要なプラットフォームである場合は、BlacklistPlatforms の配列に Win64 を追加します。
Steam でのハンドシェイク失敗
ハンドシェイクの失敗が発生している場合 (例:LogHandshake: IncomingConnectionless: Error reading handshake packet)、設定を確認するためにこの Unreal Engine フォーラムの投稿 を参照してください。
OnlineSubsystemPlayFab のワークフロー
プラットフォーム固有の考慮事項 セクションで説明されている手順では、次のものを含めるように求められます:FOnlineSubsystemPlayFab::Init() で初期化されます。ここでは、Party と Multiplayer SDK の両方が PlayFab TitleID で初期化されます (この titleID は ゲームの構成 ファイル内で定義されます)。初期化中、メイン オンライン サブシステムとして CreatePlayFabSocketSubsystem() を使用します。
Multiplayer SDK のワークフロー: FOnlineSubsystemPlayFab::Init() はタイトルに対して InitializeMultiplayer() マルチプレイヤー SDK シングルトンを初期化します。PlayFabLobby.cpp では、FPlayFabLobby::DoWork() が Multiplayer API によってトリガーされる状態変更を処理します (API については Platforms/GDK/Include/PFLobby.h を参照してください)。
Party SDK のワークフロー: FOnlineSubsystemPlayFab::Init() はタイトルに対して InitializeParty() マルチプレイヤー SDK シングルトンを初期化します。OnlineSubsystemPlayFab.cpp では、FOnlineSubsystemPlayFab::DoWork() が Party API によってトリガーされる状態変更を処理します (API については Platforms/GDK/Include/Party.h を参照してください)。
「PlayStation」は Sony Interactive Entertainment Inc. の登録商標または商標です。
「PS4」は Sony Interactive Entertainment Inc. の登録商標または商標です。
「PS5」は Sony Interactive Entertainment Inc. の登録商標または商標です。