前回までの作業でプレイヤーキャラクターを用意でき、クリアやゲームオーバー処理も作れたのでいよいよここからステージを作っていきます。
といっても、お手本のステージの作り方を一から十まで細かく説明すると記事がとんでもない長さになってしまいますので、ここでは
- ステージを作るときに便利な「ProBuilder」の簡単な使い方
- アクションゲームのステージを作るときのポイント
といったことを簡潔に説明していきますね。
Probuilderの基本的な使い方
では最初にインポートしてもらった「ProBuilder」のごく基本的な使い方から説明します。
ProBuilderウィンドウを表示する
まずはProBuilderのウィンドウを開きましょう。メニューバーの「ツール」→「ProBuilder」→「ProBuilder Window」を選ぶと、何やらメニューのようなウィンドウが開きます。これがProBuilderウィンドウです(下図)。
このまま使っても良いのですが、文字だと分かりづらいのでメニューをアイコン表示させてみましょう。ウィンドウを右クリックすると「Use Icon Mode」という項目があるのでそれを選んでください。そうすると下の図のように直感的に分かりやすい表示になります。
あとはこれをUnityエディタの隅にでもドッキングさせておけば便利です。
単純な3Dオブジェクトを作ってみよう
そうしたら次は一番よく使うモデリング機能を使って簡単な3Dオブジェクトを作ってみましょう。新しい3Dオブジェクトを作るときは一番上の
アイコンをAltキーを押しながらクリックします。そうすると新しいウィンドウが開くので、作りたい立体をメニューから選んで設定を行います。
ここでは次の4つの3Dオブジェクトの作り方を説明しますね。
- キューブ(Cube)
- 平面(Plane)
- シリンダー(Cylinder)
- アーチ(Arch)
キューブ
単純な立方体を作ります。指定が必要な項目はサイズだけで、「Build」ボタンを押せばキューブが出来上がります。
…と、ここで勘の良い方は「単純な立方体ならわざわざProBuilderを使わなくてもいいんじゃないか(=Unityのデフォルトのキューブでもいい)」と思うかもしれません。しかしProBuilderのキューブはピボットが下の面の位置にあるので、ステージを作るときにとても配置しやすいです(※Unityのデフォルトキューブはピボットが中心あってやりづらいです)。あと当然ですがProBuilderで作ったキューブはProBuilder上で色々な加工ができるのでその点も便利です。
平面
厚みのない平面を作ります。「Width」と「Length」でサイズを指定し、「Axis」でどの軸の向きに面を向けるかを指定します。Axisは特に理由がなければ「Up」で良いでしょう。
シリンダー
角柱・円柱を作ります。「Radius」で半径、「Height」で柱の高さを指定します。また、「Number of Slides」で頂点の数を指定します(値は6以上)。「Smooth」にチェックを入れると角が少し滑らかになります。
アーチ
円弧状の立体を作ります。「Radius」で半径、「Thickness」で厚さ、「Depth」で奥行きを指定します。また、「Arch Degrees」で円弧の角度を指定できます。
それぞれ作れたら適当なフォルダにドラッグ&ドロップしてプレハブ化しておきましょう(すぐ後でステージを作るときに使います)。
ピボットを変更する方法
さて、Unityでゲームを作っていると3Dオブジェクトのピボット(=基準点)の位置を変更したいことが割とよくあります。ところがデフォルトのUnityエディタにはピボットを変更する機能がないので、昔は
- 3Dソフトを使ってピボットを変更する
- 空のゲームオブジェクトの子にして疑似的にピボットを変更したようにする
といった方法をとる必要がありました。しかしProBuilderなら3Dオブジェクトのピボットを簡単に変更することができます。やり方は次の2通りがありますので覚えておきましょう。
方法1:ピボットをオブジェクトの中心に変更する(Center Pivotツール)
一つ目の方法は「Center Pivotツール」
を使う方法です。このツールを使うとピボットが3Dオブジェクトの中心に移動します。
方法2:ピボットを任意の位置に設定する(Freeze Transformツール)
それから二つ目の方法は「Freez Transformツール」
を使う方法です。これを使うと、3Dオブジェクトの位置はそのままでピボットだけがワールド座標の原点(0,0,0)の位置に移動します。…と書いても何を言っているのかよく分からないと思いますので、この機能はぜひ実際に使ってみて効果を確かめてみてください。
以上が最低限覚えておいてほしいProBuilderの機能です。他にもまだまだたくさんの機能がありますので、興味のある方はググってみましょう。
アクションゲームのステージの作り方
ProBuilderが使えるようになったら次はいよいよ実際にステージを作っていきます。主な作業手順は次の4ステップです。
- ステージに床や壁を配置する
- ステージの床や壁にテクスチャを追加する
- 空(Skybox)を変更する
ここでは試しにステージを1つ作ってみましょう。
ステージに床や壁を配置する
まずはステージにProBuilderで作った床や壁、そして以前作ったゴールも配置します。
新しく空のゲームオブジェクトを作り、名前を「Stage」にして位置を「0,0,0」にリセットします。そうしたら先ほど作ったキューブなどをStageオブジェクトの子として次のお手本のように配置してみてください(※お手本では分かりやすいようにステージのマテリアルを変更してあります。やり方は後次のステップで説明)。
※床の平面のY座標が「-5」、ユニティちゃんのY座標が「0」になるように配置しましょう。
お手本の画像からだと読み取れない部分や、作るのが面倒くさそうな部分は適当にアレンジしてもらって構いません。
ステージの床や壁にテクスチャを追加する
次に、このままだとステージの質感がのっぺりしていて味気ないのでテクスチャを追加します。アセットストアやネットから適当なテクスチャ素材を探してインポートしましょう。ここでは例として下記サイトのテクスチャ素材を使わせていただくことにしました。
テクスチャをインポートできたら新しいマテリアルを作ってそこにテクスチャを登録し、そのマテリアルを床や壁のゲームオブジェクトに設定します。適当なフォルダに新しいマテリアルを作り、名前を「StageMaterial」にしてください。そうしたら好きなテクスチャを「Base Map」欄に設定して、「Smoothness」を0にしましょう。
できたら先ほどProBuilderで作った4つのプレハブの「Mesh Renderer」コンポーネントの「マテリアル」欄に今作ったマテリアルを登録してください。これで見た目がだいぶマシになりました。
※床の平面とステージの通路の色が同じだと見づらいので、それぞれ見分けがつくように別のマテリアルを設定すると良いでしょう。
空(Skybox)を変更する
最後に空がデフォルトのままだと「いかにもUnityで作りました」って感じでダサいので変更します。アセットストアから適当なSkybox素材をダウンロードしてインポートしましょう。ここでは例として次の無料スカイボックスを使わせていただくことにしました。
そうしたらメニューバーの「ウィンドウ」→「レンダリング」→「ライティング設定」からライティングウィンドウを開いて、「スカイボックスマテリアル」に今インポートしたスカイボックスを設定してください。
これでひとまずステージができました。
おまけ:水面を作る
さて一応ステージができたといっても何かが足りなくて寂しい気がするので、もうひと手間加えて見た目を改善してみましょう。おまけとしてステージに水面を追加してみます(下図)。
新しいマテリアルを作って次のように設定してください。
できたら新しい平面にこのマテリアルを適用しましょう(※平面のメッシュコライダーは忘れずに削除しておいてください)。これで何もない時よりもステージの見た目がグッと良くなりました。
※余談:
ここでは簡単に作れるシンプルな水面を作りました。しかし、もっとリアルな水面を作りたい場合はアセットストアでアセットを購入するか、もしくは「Shader Graph」という機能を使って自作する必要があります。その辺の解説は初級レベルから外れてしまうのでここでは割愛しますが、興味のある方は調べてみてください。
次のページ→アクションゲームの「動く障害物」の作り方