OnlineSubsystemEOS の動作確認のためのプロジェクトを作る

SDK のサンプルを眺めて来ましたが、OnlineSubsystem での動作も同様にできるかを確認してみようと思います。

まずは、動作確認というかデバッグできるような環境を作ります。

環境

お昼の仕事の関係で JetBrains 製品の方が慣れているので今回は Visual Studio ではなく Rider を使います

Rider を Unreal Editor の Source Code Editor に設定する

デフォルトだと Visual Studio になっているので、Rider に変更します。Editor Preference から変更できます。

f:id:you1dan:20220125171912p:plain

再起動すると、Unreal Editor の 「Open ・・・」が以下のように変わります。

f:id:you1dan:20220125171957p:plain

プロジェクトを作成

Unreal Editor から C++ プロジェクトを作成します。今回は EOSPlayground としました。Rider で開くと以下のようになっています。

f:id:you1dan:20220125172154p:plain

OnlineSubsytemEOS を Engine からコピーしてくる

4.27 系では OnlineSubsystemEOS はデフォルトで入っているのですが、デバッグやコードリーディングの環境が欲しいので、Engine からコピーしてきます。

Plugins を作成し Engine の Plugins から コピーしてくる
f:id:you1dan:20220125172331p:plain f:id:you1dan:20220125172318p:plain f:id:you1dan:20220125172337p:plain

Plugin を認識させる

uproject のコンテクストメニューから「Generate Visual Studio project」を実行します。 f:id:you1dan:20220125172524p:plain

すると、Rider のエクスプローラーに Plugins が表示されます。(Intermediate のコードが変更されているので、通常コード管理されないので注意) f:id:you1dan:20220125172530p:plain

プラグイン一覧に出てきているので、有効化します。 f:id:you1dan:20220125172536p:plain

.uproject に以下のような差分がでるはずです。

+       ],
+       "Plugins": [
+               {
+                       "Name": "OnlineSubsystemEOS",
+                       "Enabled": true
+               }

Rider 側でビルドしてもいいですし、有効化した時点でビルドが実行されると思うのでそのビルドに任せても大丈夫です。

EOS の設定値を反映

プロジェクト設定から反映します。

Encryption Key には 1111111111111111111111111111111111111111111111111111111111111111 を設定しておきます。( empty にできないというログがでる )

f:id:you1dan:20220125214330p:plain

DefaultEngine.ini の設定

EOS Online Subsytem (OSS) プラグイン | Unreal Engine ドキュメント

上記ドキュメントのプロジェクト設定を反映します。特に変更なく、以下を追記する形です。

[OnlineSubsystemEOS]
bEnabled=true

[OnlineSubsystem]
DefaultPlatformService=EOS

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[/Script/OnlineSubsystemEOS.NetDriverEOS]
bIsUsingP2PSockets=true

まとめ

今回はプロジェクトの設定のみを行いました。次回は SDK のサンプルで見ていったようにまずはログインから試していければと思います。