それではいよいよステージを作っていきます。とはいっても、いきなり本格的なステージを作るのではなく、テスト用の簡単なステージを作ってステージ構成や仕掛けをテストできるようにしておきましょう。
親オブジェクトの作成
はじめにステージのパーツを入れる親オブジェクトを作ります。空のゲームオブジェクトを作り、名前を「Stage」に変更してください。
壁を作る
次に、誤ってステージの端からユニティちゃんが落下してしまわないように壁を作ります。Stageオブジェクトの子としてCubeを作り、大きさを適当に変更してステージの端に配置してください。あとはCubeを複製してステージを囲うように配置してください。
そうしたら、ユニティちゃんとゴールをステージの隅に移動させておいてください。
コースと障害物を作る
それでは障害物を作っていきましょう。ここでデフォルトのCubeなどを使って障害物を作ってもいいのですが、坂道などを作るのが大変なので無料で使える「Prototyping Pack Free」を使います。アセットストアからダウンロードしてインポートしましょう(Standard Assets内にも似たようなのがありますが使いづらいです)。あとはインポートしたプレハブ(「DigitalKonstrukt」→「Prototyping_Pack_Free」→「Prefabs」)をシーンに配置していってステージや障害物を作っていきます。
オブジェクトを綺麗に並べる方法
以下のショートカットキーをうまく使うとオブジェクトをきれいに並べることができます。
- オブジェクトを選択したときに出る矢印の根元の四角形をつまんでドラッグすると、その平面上で動かすことができる。
- Ctrlを押しながらオブジェクトを移動させると、(デフォルトでは)1m単位で移動できる。
- Vキーを押しながらオブジェクトを移動させると、他のオブジェクトの頂点にスナップする。
- Shift+Ctrlを押しながらオブジェクトを移動させると、他のオブジェクトの表面にくっついて移動する。
レベルデザインのポイント
ステージづくりにあたって重要になるのが「レベルデザイン」です。レベルデザインとはステージの構成や難易度を決めることですが、これがなかなか難しいものです。そこで、今回のゲームの場合のレベルデザインのポイントをまとめておきます。
- 今回のユニティちゃんの操作方法はお世辞にも直感的とは言えないので、なるべくやさしめのステージ構成にする。特にステージの初めはコースの幅を広めにするなどして難易度を緩和すると親切。
- 今回のユニティちゃんは助走をつけないとジャンプで穴などを飛び越えることができない。なので、たとえば短い間隔で連続ジャンプさせる場所を作ったり、直角に曲がった先にジャンプが必要な場所を作ったりするのは避けたほうがよい。
- コースにはメリハリをつけるようにする。平坦な道が長く続いたり、逆に障害物が多すぎたりするのは良くない。
- コースの高さを変えるなどしてショートカットできないようにする。
今回、私は下のようなテストステージを作りました。どう作ればいいか分からない方は参考にしてみてください。
オブジェクトの配置に慣れていない方は2~3時間くらいかかると思いますが、じっくり取り組みましょう。
致命的な問題
さて、ここで念入りにテストプレイしていると、ある重大な問題に気付くかと思います。それはユニティちゃんがオブジェクトのちょうど角に乗った時、ジャンプモーションのまま固まってしまうことです(再現するのがややシビアですが、試してみてください)。
おそらく、これはユニティちゃんにアタッチされているコライダーに摩擦があるためコライダーが角にひっかかってしまい、しかも接地判定がギリギリオブジェクトの外に出ている状態になるのでどうしようもなくなってしまうのでしょう。そこで、ここではコライダーの摩擦を0にしてこの問題を解決することにしました。
ユニティちゃんについているCapsule Colliderのマテリアルに、「ZeroFriction」を設定してください。これで角に乗っても滑り落ちて引っかからないはずです。
おまけ1:ステージを装飾する
これでテストステージができましたが、このままだといかにもテスト用っぽい感じで無骨なのでせめてチュートリアルっぽい感じに作り込みましょう。
水面を作る
既にご存知かもしれませんが、実はユニティちゃんは下着にスク水を着ています。そこで、ステージに水を張ってプールっぽくしてみましょう。水の表現は1から作ると大変ですが、ありがたいことにStandard Assetsの中に水面を簡単に作れるプレハブがあります。
「Standard Assets」→「Environments」→「Water」→「Water」→「Prefabs」と進み、「WaterProDaytime」を選んでシーンにドラッグ&ドロップしてください。そうしたらPositionとScaleを適当に変更してステージに水を張ってください。こうすると一気にいい感じになりました。
テクスチャを変更する
いかにもテストステージという感じはテクスチャが原因の一つなので、これを変更します。オブジェクトについているマテリアルそのものを変更するか、もしくはマテリアルのテクスチャだけを変更してください。テクスチャだけ変えればいいという場合は、プロトタイピングパックのオブジェクトについている「Prototyp_Material_1」の矢印を押して展開し、「Albedo」の左の○を押して変更したいテクスチャを選択すればOKです。このとき、壁とコースのテクスチャを同じにしてしまうとプレイ中に見分けがつきづらくなってしまうので注意してください。
ボールを配置する
ユニティちゃんのほかに動くものが全くないと殺風景なのでボールを追加します。新しくSphereを作り、Rigidbodyコンポーネントを追加して適当に設定してください。また、適当なマテリアルをアタッチしてもいいでしょう。
おまけ2:Skyboxを変更する
ついでにもう少し見栄えをよくするために背景の空を変更してみましょう。空はSkyboxという機能で出来ていて、このSkyboxにアタッチするマテリアルによって空の景色が変わります。アセットストアで「skybox」と検索して、出てきた無料アセットを適当にダウンロード&インポートしてください。そうしたら、「Window」→「Lighting」→「Settings」でライティングの設定ウィンドウを開き、「Skybox Material」にインポートしたアセットのマテリアルを指定してください。
私は「Free HDR Sky」というアセットを使ってみました(下記画像)。
ちなみに、Skyboxを変更するとライティングの色も変化します。これにより夕焼けや夜景なども簡単に演出することができます。
完成したテスト用ステージの見本
次のページ→Terrainでステージを作る