クイックスタート: PlayFab オンライン・サブシステム (OSS)
このクイックスタート ガイドでは、Unreal Engine 4 または Unreal Engine 5 を使用して構築された Xbox、PC、Nintendo Switch、PlayStation®5、PlayStation®4 ゲームのロビー、マッチメイキング、パーティーなどのマルチプレイヤー機能の設定と使用方法について説明します。 UE4 または UE5 のサポート対象であるプラットフォームとバージョンの完全なリストについては、「サポート対象のプラットフォーム」を参照してください。
このページで説明されているターゲット プラットフォームに関連する手順を実行すると、OSS の使用を開始できるようになります。 認証、ネットワーク、VoIP、ロビーへのグループ化、マッチメイキングはお客様の代わりに処理され、他に変更する必要はありません。
PlayFab オンライン サブシステムのダウンロードとインストール
PlayFab オンライン サブシステムに移動して、PlayFab オンライン サブシステム ソースをダウンロードまたは複製します。 ダウンロードまたは複製されたリポジトリ名は PlayFabMultiplayerUnreal です。 リポジトリの名前を OnlineSubsystemPlayFab に変更する必要があります。
必要なもの
- PlayFab タイトル ID: PlayFab パーティおよびマルチプレイヤー SDK 用にタイトル ID が構成されていない場合は、PlayFab パーティの有効化を参照してください。
GDK、PC、Switch、PlayStation®5、PlayStation®4
- 特定のプラットフォームの PlayFab パーティー、ロビー、マッチメイキング ライブラリ:PlayFab パーティーとマルチプレイヤー ライブラリの取得をご覧ください。
初期セットアップ
- OnlineSubsystemPlayFab フォルダーとそのコンテンツを、UE ディレクトリから Engine\Plugins\Online の UE ディレクトリにコピーします。
- 以下の変更を ".uproject" ファイルの [プラグイン] セクションに適用し、OnlineSubsystemPlayFab をプラグイン リストに追加します。
- ユーザーは、配送されていないプラットフォームを削除することができます。
- UE5 では XboxOneGDK が廃止されるため、UE4 を使用している場合は XB1 の代わりに XboxOneGDK を使用してください。
{
"Name": "OnlineSubsystemPlayFab",
"Enabled": true,
"WhitelistPlatforms": [
"XB1",
"WinGDK",
"XSX",
"Win64",
"Switch",
"PS4",
"PS5"
],
"SupportedTargetPlatforms": [
"XB1",
"WinGDK",
"XSX",
"Win64",
"Switch",
"PS4",
"PS5"
]
}
ゲームの構成
- 対象のプラットフォームに関係なく、ゲームでは、目的のプラットフォーム ターゲットの INI ファイル ([yourGameDirectory]/Platforms/[yourPlatform]/Config にあります) で特定の PlayFab 固有の値を構成する必要があります。
- Xbox Series X GDK: XSXEngine.ini
- PC GDK: WinGDKEngine.ini
- Xbox One GDK: XB1Engine.ini (UE4 を使用している場合は XboxOneGDKEngine.ini)
- PC Steam: WindowsEngine.ini (または [yourGameDirectory]/Config/Windows で見つけます)
- Nintendo Switch SwitchEngine.ini
- PS4™ PS4Engine.ini
- PS5™ PS5Engine.ini
- 構成内の INI セクション (Engine.GameEngine など) が既に存在する場合は、次のセクションに示されているセクションに置き換えます。
- すべての <REPLACE ME> フィールドを自分のデータに置き換えてください。
[OnlineSubsystemPlayFab]
bEnabled=true
PlayFabTitleID=<REPLACE ME with your PlayFab title ID>
MaxDeviceCount=<REPLACE ME with your max player count (note: split screen is still 1 device). In the example of an 8 player game, this would be 8.>
MaxDevicesPerUserCount=<REPLACE ME with your max player count per box (note: split screen is still 1 device) In the example of an 8 player game, this would be 1.>
MaxEndpointsPerDeviceCount=<REPLACE ME with your max player count per box (note: split screen is still 1 device) In the example of an 8 player game, this would be 1.>
MaxUserCount=<REPLACE ME with your max player count (note: split screen is still 1 device) In the example of an 8 player game, this would be 8.>
MaxUsersPerDeviceCount=<REPLACE ME with your max player count per box (note: split screen is still 1 device) In the example of an 8 player game, this would be 1.>
DirectPeerConnectivityOptions=<REPLACE ME with your connectivity options, in the form of an array of strings. The default case corresponds to the following:
+DirectPeerConnectivityOptions=AnyPlatformType
+DirectPeerConnectivityOptions=AnyEntityLoginProvider>
bHasPlayFabVoiceEnabled=<REPLACE ME with true/false>
[/Script/OnlineSubsystemPlayFab.PlayFabNetDriver]
NetConnectionClassName="OnlineSubsystemPlayFab.PlayFabNetConnection"
ReplicationDriverClassName="<REPLACE ME with your existing replication driver class name>" . Generally, it could be found in MyGame/Config/DefaultEngine.ini file,
the value should looks like: ReplicationDriverClassName="/Script/MyGame.MyReplicationGraph".
ConnectionTimeout=15.0
InitialConnectTimeout=30.0
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemPlayFab.PlayFabNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
プラットフォーム固有の考慮事項
これでほぼ完了です。 設定する必要がある主要なプラットフォーム固有のパラメーターは残りわずかです。
GDK
GDK を使用してゲームを開発する場合は、プラットフォーム サービスを定義し、必要に応じて GDK サンドボックスを設定します。
[OnlineSubsystem]
DefaultPlatformService=PlayFab
NativePlatformService=GDK
[OnlineSubsystemPlayFab]
Sandbox=<Optional, REPLACE ME with the sandbox Id used for the title under development >
Steam
Steam を使用して Win64 用のゲームを開発する場合は、プラットフォーム サービスを定義します:
[OnlineSubsystem]
DefaultPlatformService=PlayFab
NativePlatformService=Steam
Switch
Switch の詳細については、Switch PlayFab OSS に付属する ReadMe.md ファイルを参照してください。 アクセス権がない場合は、プライベート リポジトリへのアクセスをリクエストできます。
PS5™ と PS4™
PS5™ と PS4™ の詳細については、PS5™ および PS4™ PlayFab OSS に付属する ReadMe.md ファイルを参照してください。 アクセス権がない場合は、プライベート リポジトリへのアクセスをリクエストできます。
クロス プラットフォーム
最後に、ゲームで PlayFab のクロスプラットフォーム ネットワーク サポートを使用する場合は、接続を許可するプラットフォームを定義します:
[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]
!CompatibleUniqueNetIdTypes=ClearArray
+CompatibleUniqueNetIdTypes=STEAM
+CompatibleUniqueNetIdTypes=GDK
+CompatibleUniqueNetIdTypes=SWITCH
+CompatibleUniqueNetIdTypes=PS4
+CompatibleUniqueNetIdTypes=PS5
既定では、すべてのプラットフォームで VoIP が許可されます。 特定のプラットフォームの VoIP を無効にするには、次の例のように、プラットフォーム モデル名を UE 構成ファイルに追加します。
[OnlineSubsystemPlayFabVoiceChatDisabledPlatforms]
!Platforms=ClearArray
+Platforms=WIN64
+Platforms=STEAM
+Platforms=SWITCH
+Platforms=PS4
+Platforms=PS5
これらの手順で、ゲームで使用するために必要な OSS のセットアップが完了します。 幸運をお祈りします!
トラブルシューティング: Unreal Engine のインストール済みビルド
GDK ビルド フレーバーで OnlineSubsystemPlayFab を使用して Unreal Engine のインストール済みビルドを作成しようとすると、問題が発生する可能性があります。 より完全な解決策が見つかるまで、この問題をうまく解決するための次のガイダンスを提供します。
UE4.27 以降を使用している場合は、
Unreal Engine がマシンにインストールされているディレクトリを見つけます。
Engine\Platforms\GDK\Plugins\Online\PlayFabParty に移動します
PlayFabParty.uplugin を開く
WhitelistPlatforms キーを BlacklistPlatforms に置き換えます
インストール済みビルドにこれらのプラットフォームが必要な場合は、XboxOneGDK (PlayFabParty_XboxOneGDK.uplugin) と XSX (PlayFabParty_XSX.uplugin) のプロセスを繰り返します。 インストールされたビルドに Win64 も必要なプラットフォームである場合は、 BlacklistPlatforms の配列に Win64 を追加します。
UE4.27 以降の PlayFabParty.uplugin でのモジュール構成の例::
"Modules": [
{
"Name": "PlayFabParty",
"Type": "Runtime",
"LoadingPhase": "Default",
"BlacklistPlatforms": ["WinGDK", "Win64"]
}
],
UE5.0 ~ 5.2 を使用している場合:
- Unreal Engine がマシンにインストールされているディレクトリを見つけます。
- Engine\Platforms\GDK\Plugins\Online\PlayFabParty に移動します
- PlayFabParty.uplugin を開き、PlatformDenyList を使用してモジュール構成を更新します。
"Modules": [ { "Name": "PlayFabParty", "Type": "Runtime", "LoadingPhase": "Default", "HasExplicitPlatforms": true, "PlatformDenyList": [ "WinGDK", "Win64" ] } ],
- インストールされたビルドにこれらのプラットフォームが必要な場合は、XB1 (PlayFabParty_XB1.uplugin) および XSX (PlayFabParty_XSX.uplugin) に対して上記のプロセスを繰り返します。 インストールされたビルドに Win64 も必須のプラットフォームである場合は、PlatformDenyList の配列に Win64 を追加します。
PF OSSのワークフロー
以下のコードを追加した後(上記の手順として)
[OnlineSubsystem]
DefaultPlatformService=PlayFab
UE OnlineSubsystemModule は PlayFab のオンライン サブシステム インスタンスを作成するため、PlayFabSingleton の作成を開始します。 この時点で、SDK は FOnlineSubsystemPlayFab::Init() で初期化されます。ここで、PlayFab TitleID を使用してパーティ SDK とマルチプレイヤー SDK の両方が初期化されます (この titleID は、ゲーム構成 ファイル内で定義されています)。 初期化中に、メインのオンライン サブシステムとして CreatePlayFabSocketSubsystem() を行います。
マルチプレイヤー SDK のワークフロー: FOnlineSubsystemPlayFab::Init() は、タイトルの InitializeMultiplayer() マルチプレイヤー SDK シングルトンを初期化します。 PlayFabLobby.cpp では、FPlayFabLobby::DoWork() が、マルチプレイヤー API によってトリガーされた状態の変更を処理します (API については、Platforms/GDK/Include/PFLobby.h を参照してください)。
パーティー SDK のワークフロー: FOnlineSubsystemPlayFab::Init() は、タイトルの InitializeParty() マルチプレイヤー SDK シングルトンを初期化します。 OnlineSubsystemPlayFab.cpp では、FOnlineSubsystemPlayFab::DoWork() が、Party API によってトリガーされた状態の変更を処理します (API については、Platforms/GDK/Include/Party.h を参照してください)。
「PlayStation」は、ソニー・インタラクティブ・エンターテイメント株式会社の登録商標または商標です。「PS4」は、ソニー・インタラクティブ・エンターテイメント株式会社の登録商標または商標です。「PS5」は、ソニー・インタラクティブ・エンターテイメント株式会社の登録商標または商標です。