【UE5】簡単にBPのみでオンラインマルチプレイを実装【備忘録】

本記事ではUnrealEngineを用いてマルチプレイできるところまで手順を備忘録

BPに元々あるCreateSessionやJoinSessionが使えないとき用の手順

目次

  • OnlineSubSystemの設定
  • Advanced Sessions Pluginの導入
  • セッション作成
  • ロビー画面を作成
  • デバッグ
  • ビルド


OnlineSubSystem
UnrealEnginePluginのOnlineSubSystem関係の導入

・OnlineSubSystemを使うために必要


・今回はSteamを利用するのでこちらを利用


・後述する追加プラグインに必要



UnrealEditorの設定

自分のプロジェクト\\Config\\DefaultEngine.iniを開き

こちらを参考に以下を記述します。

Online Subsystem Steam Interface in Unreal Engine | Unreal Engine 5.1 ドキュメント
https://docs.unrealengine.com/5.1/ja/online-subsystem-steam-interface-in-unreal-engine/


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

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

bInitServerOnClient=true

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"


SteamDevAppIdは本番環境はSteam側が提供したAppIdを記載する必要有




Advanced Sessions Pluginの導入

有志が提供してくれているプラグインを利用する
BPに元々あるCreateSessionやJoinSessionなどを利用した場合うまくいかなかったためこちらを使用


こちらのサイトからバージョンにあったものをダウンロード
Advanced Sessions Binaries – VR Expansion Plugin

ダウンロードしたものを入れる
自分のプロジェクト\\Plugins\\

このままではビルドした時にAdvanced Sessions Pluginがビルドに含まれないため
UnrealEditor上で空のクラスを追加することでビルドに含まれるようになります。



セッション作成

GameInstanceを作成し、その中に以下を記述


GameInstanceの変更をし忘れないように


ロビー画面を作成

  1. ロビー用のシーンを作成
  2. Widgetを作成し、ボタン2個作成 ホスト用と参加用
  3. Widgetのグラフの中に以下を記述



開始マップとゲームインスタンスを設定し終了


エディタ上でデバッグ
マルチプレイヤーオプション>マルチプレイヤー数を二人以上にしデバッグをする

.uprojectからLaunchGameからでもSteamポップアップの確認はできる


パッケージ化をしても動く

注意点
SteamDevAppId:480を使用している場合はDevelopmentでビルドをする
steam を起動した状態でSteamのポップアップが出て居たら成功です




元々あるCreateSessionやJoinSessionなどが動いたらAdvanced Session plugin は必要がなくなるはず・・・
このプラグインを追加すると他にも便利な物追加されるからこっち使用したほうがいいかも?



参考
https://docs.unrealengine.com/5.1/ja/online-subsystem-steam-interface-in-unreal-engine/
https://vreue4.com/advanced-sessions-binaries
https://www.spaceonigirigames.com/blank