しんばりん日記

ue4を使ってのゲーム制作ブログです。間違いを指摘していただけると助かります!

テンプレートプロジェクトを弄ってみた(5)

そろそろゲーム作りし始めてみようと...思いたい...具体的な思想はなくても機能つけときゃ形になるかな...

パーシスタントレベルに配置したBPを、サブレベルからアクセスするみたいな

ことを使用としたけど予定変更。

(まぁふつうにGetAllActorすればいいだけなんですが)

 

パーシスタントレベル、タイトルレベルに適当にゲームモードBPを作成し、設定。

名前はレベルと同様のもので。それにプレイヤーコントローラークラスも作成、設定。

パーシスタントレベルBPにまとめて書いていたレベルストリーミング系を、

いったんコントローラー側に設定し、確認してみる。

...が、タイトルから動かない!

入力受け付けするときにPrintstringを挟んでみたところ、

なるほど、入力処理に通っていないようで...

一旦レベル遷移の処理をもどし、GameModeを設定した状態で再度確認してみる。

f:id:sinvary:20181226233535p:plain

なんだこの浮遊物は...

じゃなくて、なぜDefaultPawnがここに...

というところで気づきました。

そうか、これはPersistentLevelのゲームモードなのかと...

(タイトルレベルにオブジェクト設置して非表示になったのかなど

 確認に時間はかかりました。まぁ表示しているのはThirdレベルでも、

   親は切り替えていないので当たり前ですが...)

それならば、ゲームモードを再設定しなおせばいいだけ!

と思ったのですが、(ちょっとしか調べてませんが)どうやら無理っぽい...

まぁあまりゲームモードのBPをフルに活用できていないのでいいっちゃいいのですが...

(12/27 追記: これはパーシスタントレベルのゲームモードに設定しているDefaultPawnが残っているようなので、Noneにすれば消えました)

 

まぁ小規模ゲームならともかく、大型のものを作る場合は放っておいちゃいけませんよね。たぶんですけど。

こんな時はパーシスタントレベルをOpenLevelするのが正しいのですかね。

1:例えばシーン1にてフェードアウトし、

2:OpenLevelでシーン2レベルを読み込む。(すべてのサブレベルは[ブループリント])

3:レベルストリーミングで読み込みし、LoadingUIを生成アンド表示

4:完了後、フェードイン

みたいなことができればゲームモードを切り替えられるっちゃ変えられるか...

このやり方ならレベルをリセットしたい場合でも、いろんな方法でリセットできそうだし。

無駄なロードが繰り返しはさみそうなので他にいろいろあるかもしれませんが...

(主人公の情報など、Openするたびに読み、設定しなおしかも)

 

とりあえず走り書きというか、メモはこんな感じで...

明日からゲーム作れたら作ろうとおもう。サイドビューのアクション以外、

なにも決まってないからどうなるか...

まずは...そうだな、プレイヤーの当たり判定とダメージをやってみよう。