【UE5】簡単にBPのみでオンラインマルチプレイを実装【備忘録】
本記事ではUnrealEngineを用いてマルチプレイできるところまで手順を備忘録
BPに元々あるCreateSessionやJoinSessionが使えないとき用の手順
目次
- OnlineSubSystemの設定
- Advanced Sessions Pluginの導入
- セッション作成
- ロビー画面を作成
- デバッグ
- ビルド
OnlineSubSystem
UnrealEnginePluginのOnlineSubSystem関係の導入
・OnlineSubSystemを使うために必要
・今回はSteamを利用するのでこちらを利用
・後述する追加プラグインに必要
UnrealEditorの設定
自分のプロジェクト\\Config\\DefaultEngine.iniを開き
こちらを参考に以下を記述します。
[/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の変更をし忘れないように
ロビー画面を作成
開始マップとゲームインスタンスを設定し終了
エディタ上でデバッグ
マルチプレイヤーオプション>マルチプレイヤー数を二人以上にしデバッグをする
.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