サブレベルの作成と部分的なリセット
「サブレベルもちょっと使ってみた方がいいかなと思ったので、FPSテンプレートをベースにして、簡単な実験をやってみた。弾にあたって動くキューブだけサブレベルにうつして、任意のタイミングでサブレベルだけリセットする」
妹「簡単そう?」
「原理がわかれば、作業自体はむずかしくない」
「だいたいこの記事の内容にそって、FPSテンプレートの中にある、」
「まず、新しいレベルを作る。そうするとアセットをどこに保存するか聞かれるので、適当な名前で保存する。サブレベルというか、要するに2つ以上のレベルを1度に表示するという仕組みだから、レベルが複数必要になる」
「サブレベルを現行レベルというのに設定しておいてから、アクターをその現行レベルの方に移動させる。この時点でエディタ上の全く見た目は変わらない。さっきの記事にあるように、レベルごとに色分けする設定で表示すれば色が違うって確認できるけど、それ以外では全くわからない」
妹「いまいちサブレベルがどういうものかわからない」
「ウィジェットを作る時に、別の自作ウィジェットを中に組み込むような感じの」
妹「それはやったことあるけど、その場合って中身の調整する時には、中身だけで編集しないと駄目だったような」
「サブレベルの中身も直接編集できるけど、個別に編集も出来る」
「コンテンツブラウザでサブレベルの方をダブルクリックして編集するとこうなる。闇の空間にキューブだけある状態。カメラもライトもないから、光源無視で表示してるけど」
妹「これを重ねて表示する感じなのかなあ」
「リセットはこういうノードを組んでる。まずUnloadStreamLevelでサブレベルを消してから、LoadStreamLevelで読み込む。読み込むのだけやると、もう読み込んであるからって無視された」
「初期設定で、ブループリントで読み込むようになってるから、そこは変えない。変えると再読み込みが上手く機能しない。サブレベルをリセットする気がないんだったら、常にロード済みでもいいんだけど。手動だからBeginPlayとかでLoadSteamLevelを使わないと、最初はキューブが表示されない状態になる」
妹「やっぱり何かむずかしい気が。例えばOpenLevelでサブレベルを読み込むと?」
「そしたら闇の空間+初期位置に置かれたキューブのマップに移動する。開いた瞬間に空中落下する」
妹「サブレベルにレベルブループリントがあったら?」
「それも普通に動く。サブレベルがある時とは、レベルブループリントのメニューのところにサブレベル用のもでてくる。別のサブレベルとかに置いてあるアクターを、ドラッグしても水色ノードが作れなかった。それやると、レベル単体で開いた時にどこのアクターかわからないからだろうけど」
妹「じゃあ、リセットしてキューブが出て来るところに別の物が置いてあったら?」
「それはどうなるんだろう? FPSテンプレートの場合は、自分がその場所にたってたら、キューブがはじかれてコロコロしていった。多分キューブをその場にスポーンさせた場合と同じような処理だと思う」