Online Services プラグインは、Epic、Steam、Xbox Live、PSN、NLPN などさまざまなバックエンドのオンライン サービスを Unreal Engine (UE) プロジェクトに接続することに役立ちます。 このガイドでは、以下の方法について説明します。
Online Services プラグインをセットアップする
このウォークスルーでは、例として Online Services Null 実装を使用しています。 この実装はバックエンドのオンライン サービスに接続しておらず、テストのために使用しています。 Online Services Null プラグインは Unreal Engine で作業するために外部登録またはコンフィギュレーションが必要ないので、これはよい開始点になります。 Online Services プラグインでサポートされているサービスのリストについては、「Online Services の概要」ドキュメントを参照してください。
Online Services プラグインを有効にする
さまざまな Online Services プラグインをプロジェクトで使用できます。 Online Services ベース プラグインはデフォルトで有効になっています。
追加の必要な機能を有効にするには、以下の手順に従います。
Unreal Engine C++ プロジェクトを作成するか、これを開きます。
メニュー バーで、[Edit (編集)] > [Plugins (プラグイン)] に移動します。 新しいウィンドウまたは Plugins というタイトルのタブを開きます。
この新しいウィンドウで、「Online Services」を検索するか、左側のナビゲーション バーから Online Platform カテゴリを選択します。
プラグインの数が表示されます。 これらのいずれかは、Online Services Null というタイトルです。 ボックスをチェックして、Online Services Null プラグインを有効にします。
バックエンドのオンラインサービスに Epic Online Services を使用する場合は、Online Services Null ではなく、Online Services EOS を選択します。 これを行うには、製品を Epic Online Service に登録し、 Online Services に合わせた適切なバックエンドの設定を行うことで、 プラグインが想定どおりに動作するようにする必要があります。
「You must restart Unreal Editor for your changes to take effect (加えた変更を有効にするには、Unreal Editor を再起動する必要があります)」というメッセージが表示されます。[Restart Now (今すぐ再起動)] をクリックして、Unreal エディタを再起動します。
これで、プロジェクトで Online Services Null プラグインが有効になりました。
Online Services プラグインをプロジェクトの依存関係に追加する
Online Services プラグインをプロジェクトの C++ コードで使用するには、プラグインをプロジェクト モジュールにパブリック依存関係として追加する必要があります。
プラグインをプロジェクト モジュールのパブリック依存関係に追加するには、以下の手順に従います。
Unreal Editor で Unreal Engine C++ プロジェクトを開きます。
[Toos (ツール)] > [Open Visual Studio (Visual Studio を開く)] を選択して、Visual Studio を開きます。 これにより、Visual Studio でプロジェクトの C++ ソース ファイルが開きます。
Online Services プラグインで提供されている C++ コードを使用するには、
OnlineServicesInterfaceモジュールをパブリック依存関係としてプロジェクトの .Build.cs ファイルに追加する必要があります。プロジェクトの.Build.cs ファイルを Solution Explorer から開くには、Games > [YOUR_GAME] > Source > [YOUR_GAME] > [YOUR_GAME].Build.cs に移動します。
OnlineServicesInterfaceおよびCoreOnlineを.Build.csパブリック依存関係に追加します。.Build.csファイルは次のようになります。C++// Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class MyProject : ModuleRules { public MyProject(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PublicDependencyModuleNames.AddRange(new string[] {変更を Visual Studio に保存します。
プロジェクト ファイルを生成する
プロジェクトの .Build.cs ファイルに変更を加えたので、Visual Studio プロジェクトファイルを更新する必要があります。 これにより、加えた変更が Visual Studio Intellisense に反映され、追加したプラグインの機能を使用できるようになります。
プロジェクト ファイルを生成するには、以下の手順に従います。
Visual Studio を閉じます。
Unreal Editor で開いているプロジェクトに戻ります。
[Toos (ツール)] > [Refresh Visual Studio Project (Visual Studio プロジェクトのリフレッシュ)] を選択して、Visual Studio プロジェクト ファイルを再生成します。
プログレス バーが表示され、コード プロジェクトへの更新ステータスを示し、プロセスが完了したときに消えます。
デフォルトのプラットフォーム サービスを設定する
最後の手順では、Online Services プラグインのデフォルトのプラットフォーム サービスを指定します。 デフォルトのプラットフォーム サービスは、UE::Online::GetServices の呼び出しによって返されるバックエンド プラットフォーム サービスを指定します。 使用可能なプラットフォーム識別子のリストについては、「Online Services の概要」ドキュメント ページを参照してください。
Online Services Null をデフォルトのプラットフォーム サービスとして指定するには、次の手順に従います。
プロジェクトを Visual Studio で開きます。 これを行うには、Unreal Editor 内で [Tools] > [Open Visual Studio] に移動します。
プロジェクトのDefaultEngine.ini ファイルを Visual Studio の Solution Explorer で開くには、Games > [YOUR_GAME] > Config > DefaultEngine.ini に移動します。
プロジェクトの DefaultEngine.ini ファイルに次を追加します:
C++[OnlineServices] DefaultServices=Null
Online Services Null は、バックエンドのオンライン サービスを使用しないオンライン サービスの実装です。 これは、バックエンドのオンライン サービスなしでオンラインサービスの実装をテストおよびデバッグするために使用されています。 別のバックエンドのオンライン サービスをプロジェクトのデフォルト オンライン サービスとして使用する場合、「オンライン サービスの概要」 の [Configuration (コンフィギュレーション)] のセクションにあるリストから 1 つを選択できます。
プロジェクトの Online Services にアクセスする
プロジェクトで使用するために、Online Services プラグインが有効になっていて設定されています。 Online Services プラグインとその各種インターフェースにアクセスするには、以下の手順に従います。
#include "Online/OnlineServices.h"を Online Services プラグインにアクセスするファイルに追加します。IOnlineServicesPtr OnlineServicesPtr = UE::Online::GetServices();でデフォルトのプラットフォーム サービスへのポインタを取得します。
これで、さまざまな Online Services プラグイン インターフェースの機能にアクセスできるようになりました。 たとえば、Auth Interface にアクセスするには、以下の手順に従います。
デフォルトのプラットフォーム サービスへのポインタを取得していることを確認します。
Auth Interface にアクセスするファイルに
#include "Online/Auth.h"を追加します。Auth Interface へのポインタを
IAuthPtr AuthPtr = OnlineServicesPtr->GetAuthInterface();で取得します。
これで、Auth インターフェースのポインタで Auth インターフェースの機能にアクセスできるようになりました。 同じロジックが他のすべての Online Services インターフェースで機能します。