投稿

11月, 2018の投稿を表示しています

Level Streaming完全に理解した(わかってない)

イメージ
今作っているゲームのアルファ版ではロード画面の制御にマーケットプレイスで売っていたブループリントを使っていたのですが、バトルとかイベントの部屋はサブレベルにすれば管理が楽だなぁなどと思っていて、マケプレで買ってきたやつはドキュメントも英語だからよくわからないなぁと思っていて、やはりレベルストリーミングとかちゃんと覚えて自分で作ってみよう!と勉強しなおしました。 やりたいことは ・マップ移動の時Now Loadingを入れたい ・作戦中のマップを『フィールド』『バトルフィールド』『イベント部屋』『ボス部屋』などをサブレベルで分け、作戦ごとに必要なものを入れ替えパッキングしたマップを作りたい。 ・GameModeは作戦に入ったら(Loadしたら)クリア状態にしたい。 というわけで… ネットでは「ロード画面を入れるにはどうしたらよいですか?」的な質問に 「マップは全部サブレベルで管理してサブレベルを読んでるときにパーシスタントレベルでロード画面を出すのがよい」的な回答をよく見かけるのですが…、 やっぱり【待機場所マップ】⇔【本チャンゲームマップ】の行き来はキレイさっぱりOpenLevelしたい!ということで 【本チャンゲームマップ】には パーシスタントレベルに 「ロード画面ウィジェット」 サブレベルに 「本チャンゲームマップ」 を置いて パーシスタントレベルのBegin Playに ロード画面 を表示してから 本チャンマップ を読み込む という形をとって、【待機場所マップ】からOpenLevelで【本チャンゲームマップ】を読み込む方法を試してみました。 具体的には TPSテンプレートを作り、そこにデカめのマップ(ここではSoul:City)を入れて パーシスタントレベルに ロード画面 サブレベルに Soul:City を入れた【LoadAndMap】レベルを作り、待機場所マップから【LoadAndMap】をOpenLevelして ロード画面 からの~ Soul:City をがうまく動くかやってみました。 うまくいけばNowLoadingで待たされてSoul:Cityにつながるはずですが、懸念点はこの方法だと最初のNowLoadingが出るまでも微妙に時間がかかっちゃってロード画面の意味をなさない可能性があるというこ

Lightmass完全に理解した(わかってない)

イメージ
Lightmass…、難しいですよね。 複雑な光の計算を事前にやってくれる、と。 公式のサンプルを見ても劇的な違いがあるわけでもなく、実際にやってみても何が変わったのかわからない…。 さて、今作っているゲームですが、フィールドは自動生成でブロック化したモジュールをスポーンさせてます。 屋内をフィールドにしているので閉ざされた空間にディレクションライトなどが届きません。 なのでポイントライトを置いて建物内を照らすようにしています。 が、ライトの配置がすごい難しい!! ステーショナリーライトは重複回数が限られているのでスタティックライトを多用したいところですが自動生成でブロックをスポーンさせるとスタティックライトが焼き付けられません。(焼き付ける方法あるの??) ステーショナリーライトだけで頑張っても部屋の隅とかがすごく暗い。 ライトを増やすと重複が増えるし、照らす範囲を広げても重複が増えるし…。 ということでライトマス。 色々実験してみてわかりました。 あーそーゆーことね。(たぶんわかってない) スタティックライトはムーバブルなオブジェクトに効きません。 なのでスポーンさせたアクターにももちろんスタティックライトは効きません。 ステーショナリライトで 左からムーバブルの椅子、スタティックの椅子、椅子アクターのスポーンポイント スタティックライトに変えてライトをビルドして実行すると… ムーバブル椅子とスポーン椅子が真っ黒! ここで、オブジェクトのある範囲をライトマスで囲ってライトをビルドすると… この空間をライトマスで囲ってライトをビルドして実行 なんということでしょう! ムーバブルメッシュやスポーンさせたアクターに光が当たってます!(ただし影は入りません) なるほどそういうことなんですねー。 そういう理解でいいんですかね? でもこれでざっくりと全体のライトの雰囲気を調整できるようになりました!