UE5 レベルインスタンス(Level Instance)を使ってサブレベル(Sub Level)の動的読み込みと同じような処理をする(Level Instance)
レベルインスタンス(Level Instance)を使ってサブレベル(Sub Level)の動的読み込みと同じような処理をする方法です。
この方法が想定している使い方なのかはわからないのですが、
とりあえず簡単にサブレベルの動的読み込みと同じような挙動ができたのでメモです。
レベルインスタンス(Level Instance)の使い方というよりは、
UE4 でやっていたサブレベルと同じような制御を再現した。みたいなものになります。
レベルインスタンス(Level Instance)の公式ドキュメントはこちら。
・Level Instancing
https://docs.unrealengine.com/5.0/ja/level-instancing-in-unreal-engine/
それとこちらもすごく参考になります。
・【UE5】Level Instance の使い方
https://metatimecg.com/ue5-levelinstance/
まずはこんな感じで普通のサブレベルの制御と同じくレベルを作成します。

画像右側の「LV_Add」というレベルを作ってみました。
このレベルがサブレベルになるように構成します。

サブレベルに球を配置してサブレベルが読み込まれた時に変化がわかるようにしました。

このパーシスタンとレベルにサブレベルを読み込むと…

こんな感じで画面中央付近に球がサブレベルによって追加されます。
サブレベルの読み込みは通常だとこんな感じになります。

今回は「Load Stream Level(by Name)」を使いました。
上記のようなサブレベルの挙動を「レベルインスタンス(Level Instance)」を使ってやってみます。
まずは「Level Instance」を継承したBPを作成します。

こんな感じで「Level Instance」のBPができました。

画像左側の「BP_LevelInstanceAdd」になります。
作成した「Level Instance」のBPを開いて、
レベルの「Level」に最初に作成したサブレベルを指定します。

基本的には設定はこれで終わりです。
この「レベルインスタンス(Level Instance)のBP」を動的に切り替える実装をします。
まず「レベルインスタンス(Level Instance)」は「Actor」を継承しています、

このツリーをみると「Actor」を継承しているのがわかります。
そのため「Spawn Actor」を使ってスポーンさせることができます。

こんな感じですね。
というわけで実行して作った「レベルインスタンス(Level Instance)のBP」をスポーンさせてみました。

無事「レベルインスタンス(Level Instance)のBP」に設定したレベルが表示されました。
破棄する場合は「Destroy Actor」を使うことで破棄できます。
レベルインスタンス(Level Instance)本来の想定のやり方とは違うような気がするのですが、
このやり方だと、サブレベルの概念はそのままで扱えるので結構簡単でこれぐらいのわかりやすさがいいなーと思いました。
多分もっとうまいやり方がある気がするので、他の方がいい感じに記事とか書いてくれるのではないかと…!(他力本願
この方法が想定している使い方なのかはわからないのですが、
とりあえず簡単にサブレベルの動的読み込みと同じような挙動ができたのでメモです。
レベルインスタンス(Level Instance)の使い方というよりは、
UE4 でやっていたサブレベルと同じような制御を再現した。みたいなものになります。
レベルインスタンス(Level Instance)の公式ドキュメントはこちら。
・Level Instancing
https://docs.unrealengine.com/5.0/ja/level-instancing-in-unreal-engine/
それとこちらもすごく参考になります。
・【UE5】Level Instance の使い方
https://metatimecg.com/ue5-levelinstance/
まずはこんな感じで普通のサブレベルの制御と同じくレベルを作成します。

画像右側の「LV_Add」というレベルを作ってみました。
このレベルがサブレベルになるように構成します。

サブレベルに球を配置してサブレベルが読み込まれた時に変化がわかるようにしました。

このパーシスタンとレベルにサブレベルを読み込むと…

こんな感じで画面中央付近に球がサブレベルによって追加されます。
サブレベルの読み込みは通常だとこんな感じになります。

今回は「Load Stream Level(by Name)」を使いました。
上記のようなサブレベルの挙動を「レベルインスタンス(Level Instance)」を使ってやってみます。
まずは「Level Instance」を継承したBPを作成します。

こんな感じで「Level Instance」のBPができました。

画像左側の「BP_LevelInstanceAdd」になります。
作成した「Level Instance」のBPを開いて、
レベルの「Level」に最初に作成したサブレベルを指定します。

基本的には設定はこれで終わりです。
この「レベルインスタンス(Level Instance)のBP」を動的に切り替える実装をします。
まず「レベルインスタンス(Level Instance)」は「Actor」を継承しています、

このツリーをみると「Actor」を継承しているのがわかります。
そのため「Spawn Actor」を使ってスポーンさせることができます。

こんな感じですね。
というわけで実行して作った「レベルインスタンス(Level Instance)のBP」をスポーンさせてみました。

無事「レベルインスタンス(Level Instance)のBP」に設定したレベルが表示されました。
破棄する場合は「Destroy Actor」を使うことで破棄できます。
レベルインスタンス(Level Instance)本来の想定のやり方とは違うような気がするのですが、
このやり方だと、サブレベルの概念はそのままで扱えるので結構簡単でこれぐらいのわかりやすさがいいなーと思いました。
多分もっとうまいやり方がある気がするので、他の方がいい感じに記事とか書いてくれるのではないかと…!(他力本願
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑