前回はUE4ゲームジャムでの実際を俯瞰して書きました。
今回は、ボクが担当した学校レベルのでっち上げについて語ります。
内容的にはUE4特有のトピックになります。


がっこうもやし
 

【成果物版】2015年10月11,12日【関西】 UE4 GameJam #KansaiUE4Jam #ue4study



gakkou_level
完成したがっこうレベル(校舎内はすべて歩いて回れます)
 
レベルデザインを元に学校パーツを作る

メンバがひとりノートPCを持っていなかったこともあって、アナログノートに書いていただきました。

 gakkou_leveldeA_tou
B_tou
これを元に作っていきます。

どういう単位でパーツを切り分けるか? 

SlideShare UE4背景アーティスト勉強会(前編) 背景ワークフロー解説
UE4背景アーティスト勉強会 in 大阪 報告
↑茄子さんのスライド言えば、40ページ以降のブロックアウトとかモジュラーアセットの話になります。

どうすれば1番手っ取り早く学校でっち上げられるでしょう?
マーケットプレイスやサンプルに学校として言い張れそうな適当なアセットは今のところ見当たりません。
自分ででっち上げるしかないです。

四角い箱を1個1個地道に配置していったら日が暮れます。
BSPである程度まとまった単位でスティックメッシュ化して、それらをブロックのように組み合わせて学校を作った方が早そうです。

悩んだ末に分けたのは以下の6つのブロックです。

SM_Class
【教室】
天井も一体化させてもよかったのですが、配置やブラッシュアップ時に中を見難いので分離しました。
後で黒板も燃やしたくなったので、別パーツにした方がよかったです。
ググると教室の大きさは、7~8m四方、床~天井3mの高さだったと思います。
管理上ラクにする為、壁厚さ込みで10m四方、床と天井厚さ込みで5mになるようにしました。
現実よりちょっと厚めですが、時間がないので生産性重視で。

これは仮モデルで、余裕があればディテールや掲示物、黒板の板書等色々凝りたかったのですが、結局仮モデルのままで終わりました。

あとこのブログ書いていて気付きましたけど、手前側の外に露出する壁のマテリアル設定するの忘れていました。

SM_Ceiling
【天井】
ただの箱です。これは仮モデルで時間があれば、テクスチャの選定に凝ったり、照明を付ける予定でしたが、仮モデルのままで終わりました。

SM_Hallway
【廊下】
天井と同様

SM_Hall_C
【廊下の天井】
同上

SM_H_W
【廊下の壁】
同上。廊下の3パーツは一体化させてもよかったんですが、廊下の両サイドを教室にする案があったので、分離しました。

SM_School_Stairs
【階段】
1番切り分け方を悩んだパーツです。
「廊下部は廊下パーツが既にあるからいいんじゃないの?」
っと思いましたが、幅が教室の半分になるので一体化。1階分の階段をセットにしました。
上側の廊下が無いのは、教室と廊下のセットとまとめて選択、複製して上にドラッグすると、調度もう1階できるように作ってあるからです。
欠点として、下側の階段だけ階段の裏を埋めた分が、2階より上にあると若干不自然なことです。
最下層から作ったことによる単純ミスで、埋めたければ別パーツで埋めればよかったと思います。

因みに、階段は箱で1個1個作ったのではなく、BSPに便利な階段セットが予め用意されています。

stairs_brush
【BSPを組み合わせて作った階段】
階段の幅や深さ、段数が調整できます。
因みに調度いい高さを模索したら13階段になりました)

hikizan_stairs
引き算で階段の下を削ってあります

Stairs_
【BSPのバックアップ】
後で修正できるように、階段に使ったブラシをフォルダに入れて複製を残してあります(スタティックメッシュ化すると元のブラシが消えてしまう為)。
地味に面倒なのが、フォルダそのものを複製できないことです。

BSPは選択周りが面倒(「~の選択」で別のパーツ作成用のBSPの面を選択してしまったり)なので、各BSPごとに別レベル名で保存した方がよかったかもしれません。
そうすれば、「BSPのバックアップを校庭の下に埋める」みたなことをしなくて済みます。
アウトライナ上に散らかったブラシを探して回るのも地味に面倒なのでラクになりそうです。
次からはそうしたいです。


コリジョンで困った話

BSPを組み合わせて作った教室や階段がいい感じで歩き回れたので、スタティックメッシュ化しました。
すると、今まであったBSPのコリジョンがなくなって、素通り。
仕方ないので、コリジョンメニューから「オートコンベックス」を選んでみました。

auto_class
なんだこれは…ガバガバじゃねぇか!
「こんなの教室じゃないわ! ただのすり鉢よ!」
「だったら、手動で作ればいいだろう!」
廊下から教室に入れません。

右下の精度周りの設定をMAXにしてやり直してみましょう。

auto_class_max
うん、MAXでも駄目だ。これじゃ入れない。BSPのをそのまま残してくれるだけでいいのに…

auto_stairs
階段も同様に使えたもんじゃありません。精度MAXだともうちょいマシですが、焼石に水です。

マジかぁ…これ手動でコリジョン付けたら死ぬぞ…っと思いました。

SM_Class_col
ボックスコリジョンを選択→Altドラッグで複製、大きさ調整で地道に頑張る
地獄のような作業。
特に大きさ調整が凄く大雑把にしかできなくて、右上の拡大縮小調整単位を最小にしてもかなり雑。
ピッタリの大きさにできなくて悪戦苦闘。

あまりにも辛い作業で、階段も同じ作業をやることを想像したら目眩がしたので、alweiさんに相談。
Collision Complexity を default→Use Complex Cllision As Simple に
こんなラクな方法があったのならもっと早く聞けばよかったです。
悩む前に早目のalwei!

ライトマップの悩み~学校がもう燃えている~

これももっと早くalweiさんに聞けばよかったです。
無駄に時間を食いました。

light_index
BSPからスタティックメッシュ化するとここのindexが0になるようです。
これを1に変えてやると直りました。
一部黒焦げのままどうしても直らないものがあって苦しみました。
どうせ真っ暗なので、諦めて放置しました。
原因を調査中です…。
スタティックメッシュのLight Map Resolutionを4→60に上げたら廊下の壁は大半が改善したのですが、教室の外壁は直らず謎です。貼り忘れたマテリアルをあてがえば直るかもしれません。→直りました


小ネタ 太陽の向きと光

意外と知らない方が多いのですが、
taiyou
DirectionalLight いわゆる太陽は回転ツールで回転させると朝昼夕夜の空になります。
lightのカラーで夜や夕方っぽく頑張っている方が大半でした。
回転させてライティングビルドしてみましょう。
白矢印が上を向けば夜、下を向けば昼、横気味にすれば朝焼けや夕焼けになります。
また、星空の量とかも調整できるようです。
因みに
最終的に真っ暗なレベルでプレイヤーが噴く炎の明かりで探索するゲームだったんですが、それだとレベルを構築するのに不便で、昼間に設定して作っていました。
「夜に設定しなおして使ってね」
っと言って渡していましたが、夜のままエディタの表示設定非ライティングに変えるだけでよかったです。
hi_light
これで夜でもバッチリ!

その他悩み、失敗
消えた岩男(岩男じゃくてブルーマンっぽいひとだった)

ゾンビの燃えて苦しむモーションが欲しいとのことだったので、コンテンツ例にもろ炎に包まれて暴れるひとが居た記憶があったので、
「コンテンツ例にあるよー」
「探したけど、なかったです」
「んなわけないよー、ボクが探すよー」→(片っ端からレベルを開いてもみつからず)

とっととTLで質問しておけばよかったです。
そもそもゾンビはボクの領分ではなかった上に自分の作成も遅れていたので明らかに判断ミスです。
(結局使うことはなかったし)

炎で燃えるマンが居たのは、まさにボクが以前ブログで書いた、消えたレベルでした。↓


その他悩み、失敗 
stl形式のインポート

1日目にノートPCがなくてアナログノートでレベルデザインしてくださった方が2日目には仕事がなくなりました。
幸いにしてノートPCが手配できたようですので、自発的に火炎放射器のモデリングを申し出てくれました。
初めてモデリングソフトを使ったとは思えないほど、素晴らしい火炎放射器が出来上がったのですが…stl形式だとUEにインポートできないようです。
まさかfbx形式でエクスポートできないソフトがあるとは思わなかったので、焦りました。
どうもググってみたら、3Dプリンタ用の形式らしく、fbx→stlのニーズはあっても逆のニーズは無いようです。
自動変換サイトも出てきたのですが、使い物にならないようです。

TLで質問で解決。感謝ッ!!


総括
早めのalweiさん


長くなり過ぎたので、この辺で一旦切ります。
次回は、レベルデザインそのものの汎用的なコツを書くと予定です。