UE5 と Epic Online Services を BP のみで利用してみる (セッション作成・一覧・参加)
UE5 と Epic Online Services を BP のみで利用してみる (準備 - ログイン) - You are done!
上記の記事の続きです。
Epicアカウントでのログインまでできるようになったので、その状態で Epic Online Services のセッションを利用していきます。
セッションに関する UI を作る
ログイン後にユーザー名を表示していた View に Create Session
と Find Sessions
を追加しました。
以下は Find Sessions
後に一覧 View です。
Create Session
後はそのまま Third Person テンプレートの ThirdPersonMap
に移動させます。
上記の View は MainMenu
の Widget の中で WidgetSwitcher
で切り替えているだけです。
セッション一覧の個別の要素
セッションの一覧 View は検索されたセッションが全て表示されますが、それぞれに Join
ボタンを用意するため個別に Widget を用意しています。
セッション作成
Create Session
ボタンのクリックイベントで以下の処理を行います。
Clear UI は Widget の削除や入力モードの変更をしているだけです
Should Advertise
にチェックをつけて Find にひっかかるようにしておきます。
セッション一覧
Find Sessions
ボタンのクリックイベントで以下の処理を行います。
セッション一覧が Scroll box
にしているため、そのクリアと子要素の追加がありますが、それ以外は Find の結果を表示しているだけです。ここでは Filter は一切表示せず、全てを一覧させているだけです。
セッション参加
Join
ボタンのクリックイベントで以下の処理を行います。Join
のイベントは上記の Find Sessions
で子要素の Widget を作成している時に紐づけています。
上記の Join Button Clicked
イベントは Widet の中で Event Dispatcher で呼び出されています。子要素の Widget 内では Join
ボタンのイベントして以下を実装しています。
Find Sessions Advanced
で取得した Blueprint Session Result
構造体をそのまま受け渡しているので、 Join Session
にそのまま渡せています。
動作の様子
それぞれのログイン後 |
---|
Player1 がセッション作成 -> ThirdPersonMap に移動 |
Player2 がセッション一覧 |
Player2 がセッション参加 |
上記では ThirdPersonMap で Session ID と Player Name を表示するようにしています。
Epic Online Services でのセッションの状態
Developer Portal のゲームサービス -> マッチメイキングで作成したセッションの確認ができます。
プレイヤー数が 0 になっているのですが、これはまた別記事とします。