Sample Assetsのプロトタイプアセットを並べて簡単なステージを作ってみよう[Unity]
Sample Assetsを使用してサンプルステージを構築する方法を紹介します。多くのゲームではありもの(秋葉原の町)や、地面だけ・壁と地面だけといった構造で作られているケースが多いです。もしくはTerrain。
今日はある程度プリミティブなモデルを適当に並べてステージを作る方法を紹介します。
目次
ステージを構築する
Sample Assetsには、以下のような種類のモデルが用意されています。まずは、それを使用して適当にステージを作成します。
まずは、基準となるボックスを用意します。これは、Floor(地面)でも良いですし、Cube(箱)でも良いです。ただし、どちらを使用するにしても最初は小さい所から始めた方が良いでしょう。飽きるので。
これに、要素を足していきます。
ステージの要素を足す
基準点ができたので、この構造にいろいろな物を盛ってステージを構築して行きます。基本的には、プレハブやモデルをステージに配置します。
まず、Sample Assetsの中で使用するプレハブを一覧表示します。これは、Sample Assets/Prototyping/Prefabの中にいくつか格納されています。
後はそれらのプレハブを適当にシーン内へ追加していきます。
Sample Assetsの用意するモデルは、Scaleを変形しない限りグリッドが1m/1mで表示されます。そのため、基準点が(0,0,0)で配置されている場合、整数値で動かしている限り、かなりきれいに配置することができます。
1m単位で動かすには、SnapSettingsのxyz値をすべて1に設定し、Ctrl(MacではCommand)を押しながらモデルを動かします。こうすればキッチリ1ずつ動くので調整が楽です。
もしくは、全てのオブジェクトを選択し「Snap All Axes」を選択することで、一括で全オブジェクトの座標を整数値に設定できます。
ちなみにこの手のグリッドベースな配置はQuick set object placeが若干便利です。
このアセットを使用する場合、「Vキー」でピボット移動できることを覚えておくと良いかもしれません。微調整するときに役立ちます。
ついでに色を変更しましょう。Sample Asset/Prototyping/Materialには、グリッド線の含まれるマテリアルが配置されています。これを使用し、地面を黒から白にしたり、そもそもマテリアルを新規作成して色を設定するといった事を行います。
なお、たとえば作成している内に「モデルのスケールを半分にしたい」等の要望が出た場合、マテリアルを別途作成しスケールに対してマテリアルのTilingを調整する事で、グリッドの大きさが崩れるのを防ぐことができます。
yのスケールを0.5にしたら、TilingのYの値も0.5にする感じです。
Sample Assetsのプレハブは何故かCast Shadowのチェックが外れており、影が表示されないように設定されています。
配置したモデルに影を表示したい場合は、ステージを構成しているオブジェクトを選択し、Mesh RendererのCast Shadowにチェックを入れます。
影と言えば、Sample Assetsの幾つかのモデルは、Generate Lightmap UVにチェックが入っていないため、ライトマップを焼くことが出来ません。この方法でゲームを作る場合はライトマップは焼いた方が良いので、この項目はチェックを入れておくことをお勧めします。
Sample Assetsのプロトタイプモデル達は、Sample Assets/Prototype/Modelの中にあるので、全選択してからGenerate Lightmap UVにチェックを入れてAppry押しておきましょう。
仕上げ
ステージの大まかな作成が終わったら、Stageオブジェクトみたいな物を作成してそこにステージを構成するライト・オブジェクトを配置します。
Stageオブジェクトの座標は後で苦労したくなければ position(x:0, y:0, z:0)に設定しておくとよいと思います。
それが出来たらStageオブジェクトのStaticにチェックを入れてライトマップを焼いてしまいましょう。
Unityのゲーム画面を綺麗にするライティング - テラシュールブログ
後はStageオブジェクトのレイヤーを「Floor」等にして、そのあとLayersのFloorレイヤーをロックすれば、ステージギミックやプレイヤーを配置する際に誤って選択することがなくなり、便利です。
Unityで特定のオブジェクトをシーンビューから選択出来ないようにする - テラシュールブログ
その他
とりあえず今回はSample Assetsを使用した方法を紹介しました。Sample Assetsにはプリミティブなモデルしかありませんが、アセット自体はStelthやAngrybotをはじめとしたモデルで色々と使えるのがあるので、色々と組み合わせて使ってみる面白いかもしれません。*1
後は、クリック移動なりサードパーソン移動なりで色々と動かしてみるお勧め。
Unity内でMMDモデルを自由に走らせる手軽な方法 - テラシュールブログ
UnityでMMDモデルを、タップした位置まで歩かせる手軽な方法 - テラシュールブログ
こういった形で構築したシーン・プレハブ・プロジェクトをオープンソースとして公開したい場合。
AssetStoreのアセットをオープンソースに含めたい - テラシュールブログ
*1:ティストが合わないと気持ち悪いので、異なるアセットを投入する場合はテクスチャの色調整なりカラーマップ調整なりをやった方が良いかも