UE5でボタンを押したらレベル遷移を行う


要件

・ほぼ空のレベルからスペースボタンを押すとサードパーソンレベルに遷移する
・無だと意味が分からないので何か配置する

よし、昨日に引き続きウルトラ初級の内容だ
この調子でUE記事の敷居を下げていくぞ
サードパーソンチュートリアルの情報量が多すぎる

配置するUIを作る

本筋ではないのでごくごく簡単に
とはいえUEのUI機能を触るのでこれが一番難しい説がある(ぉぃ
真ん中にPressSpaceというテキストを配置するのみ

参考
https://docs.unrealengine.com/4.26/ja/InteractiveExperiences/UMG/HowTo/CreatingWidgets/

press-space

レベルを作ってテキストを置く

レベルを作るのは右クリックで選ぶだけなので流石に省略
レベルに入ると無の空間が広がっているのでUIを置く

先のページからだとUIは配置ではなくBPから作成するよう
ということでページ通りウィジェットを作ってビューポートに
追加、という感じ

create-widget

ここで一旦実行して見てみると

view-blank-level

ちゃんと表示さr親方、後ろに何かが!

多分サードパーソンチュートリアルから作ったので
マネキンさんが落下してますねこれは

マネキンさんを救出する

確かサードパーソンのゲームモードが初期BPとしてマネキンさんBPを
設定していた覚えがあるのでそれだろうと当たりをつける

のはいいとして対処はどうしようか
まずゲームモードをちゃんと理解してない
このあたりからやっぱりサードパーソンは情報量多い

VRoidSDKのサンプルプロジェクトだとちゃんと 出てこなかったので レベル依存の何かだと思うけれど
デフォルトでサードパーソンのゲームモードがプロジェクト設定
されているのでそれを空のレベル用のゲームモードに
入れ替える事に

view-blank-level2

無事マネキンさんが救出されました

スペースを押したらサードパーソンへ遷移する

ずばりOpenLevelというノードがあるので
それにSpaceイベントから引っ張るだけ

change-level
thirdp

無事遷移できました
ちゃんと操作できるのでこのレベルはスタート地点を上手く
設定してくれてるよう

要点

・UIはUMGから作成、BPで作成して配置
・ゲームモードのUEでの立ち位置を要確認

本当はアクター、ゲームモード、レベル、ゲームインスタンスそれぞれ 確認しておきたがったが簡単すぎたかもしれない
例えば今回はレベルBPに書いたがゲームインスタンスに
書く必要があるものがあるはず
セーブデータ関連など