パーツの組み合わせで簡単なステージを作ってみるのを試してみました
パーツを組み合わせてステージを作るアプローチ
ステージを作る上で、地形を粘土のように調整して作るスピードレベルデザイン法式ではなく、パーツを組み合わせてステージを作るアプローチをProBuilderでやってみました。
例えば下のようなパーツを用意して、それを組み替えていきます。
考え方的にはタイルマップに似ていて、グリッドに合わせてオブジェクトを配置していく感じです。複雑な地形であっても、ある程度のパターンで作れるのが魅力です。
このアプローチでは、部屋のレイアウトのみを作成して、屋内の家具や照明といったものは作りません。例えば下の図のように、部屋の中が殺風景にならないように余計なものを一杯置くのはあとで行います。
ステージのパーツを作る
まずはパーツを作っていきます。
必要なものは「接続部分の大きさが固定」である事と「パーツの大きさが固定」である事です。なので、ProBuilderでは規格的な物を作っていきます。
PlaneをProBuilderで作成します。この時、大きさは10x10、分割数は5とします。
パネルを選択するモードにして、パーツの壁の位置を選択していきます。例えばカドが閉じているステージの場合は、下のように選択していきます。
選択した板を壁にします。Shiftを押しながら上に持ち上げても実現出来ますが、高さが固定出来ないのでパネルのボタンを使用して持ち上げます。
高さはAltを押しながらクリックで設定できるようになります。
持ち上げた壁には背景が存在します。この背景は大抵の場合は見える事は無いので排除していきます。そうすると、ステージのライトを焼いた時に使用するライトマップの範囲が大きく減ります。
他のパーツを作る場合、接続部さえ綺麗になっていれば概ね綺麗に繋がります。
パーツを使い回すために出力する
パーツの数が揃ってきたら、次はファイルとして出力します。ProBuilderはモデルをPrefabとして出力しても何も残らないので、アセットとして出力する必要があります。
出力する際には、FBX ExporterかOBJ法式で出力するのが良さそうです。
それ以外だと出力の度にアセットのGUIDが変化し、Prefabへの参照が破棄されます。
個人的にはFBX Exporterが安定してる印象です。
またExportする際には上書きしないとアセットが反映されないので、オブジェクトの名前は一定規則で持って作っておいたほうが良さそうです。
並べる
出力したら「アセットとして出力したパーツを使って」並べるだけです。残念ながらオートタイルのような機能は無いので頑張る必要があります。
例えばVキーを押してスナップ位置で調整したり、Ctrlを押して1mずつ動かす等で調整するのが良さそうです。
もしくはProGridもあります。
関連