サーキットの試作

とりあえず車の設定ができたので、次はレースの舞台となるサーキットを試作してみましょう。今回作るサーキットは、ステージそのものの作り方を重点的に説明するためのものなので実際には使いませんが、練習がてら手を動かして作ってみましょう。

スポンサーリンク

Probuilderのセットアップ

今回サーキットを作るためにUnity公式のパッケージである「Probuilder」を導入して使います。なので導入方法が分からない方は、ホラーゲームのチュートリアル記事「Probuilderで仮のステージを作る」を参考にProbuilderを導入してください(簡単な使い方もそちらに書いてありますのでご参照ください)。

サーキットのレイアウト

さてサーキットのコースを作る前に、どういうコースにするかを少し考えておきます。今回は下の図のようなコースを作ることにしました。

サーキットのデザイン1

練習なのでかなり単純な道になっています。というのも、実際のサーキットのように複雑にクネクネした道は作るのが大変なのでやめておいたほうがいいからです。あとこのゲームではコースを周回しないのでスタートとゴールの位置を別に設定しました。

道路の制作

それではサーキットを作っていきましょう。まずは道路です。

基本的な考え方…PlaneとArchをつなぎ合わせる

道路は単純なPlaneとArchをつなぎ合わせて作っていきます。上の設計図で考えると

  • 直線部分:Plane
  • コーナー:Arch

という感じですね。ここでは道幅を15とし、それに合わせて細長くしたPlaneと、Thicknessを15・Depthを0.1にしたArchを使います(Mesh Colliderはいらないので消してしまってOKです)。ちなみにCtrlを押しながらオブジェクトをドラッグすると一定距離だけグリッド移動できるのでこういう場合には便利です。

なお、あとで移動などが楽になるように道路のパーツを「Circuit」という空のゲームオブジェクト(位置は原点にしてください)の子として追加していきましょう。

実際に作ってみると下の図のようになります。

サーキットの道路

バリアの設置

さて、このままではコースをショートカットできてしまうので、次は道路の周りに「透明な壁」を作ります。空のゲームオブジェクト「Barrier」を原点に作成し、その子として道路を囲うようにCubeを配置していきましょう。

バリアの配置はだいたいでOKです。ただしすき間ができないようにしましょう。また、コーナーの外側はかなり大雑把でも構いませんが、内側を大雑把にしすぎると直線的に通れてしまったりするので、角度のきついコーナーの内側はArchを使うなど適宜工夫して作りましょう。

サーキットの壁

配置し終わったら、今配置したオブジェクトを全部選択してMesh RendererコンポーネントのチェックをOFFにして透明にしてください。これでサーキットの骨組みができました。

サーキットの装飾

しかしこのままでは極めて殺風景なので、もう少し手を加えて見た目を良くしてみようと思います。

道路のマテリアルの変更

道路が白いままでは道路っぽくないのでマテリアルを変更しましょう。Materialsフォルダに新しいマテリアルを作り、AlbedoにStandard Assetsのテクスチャあたりを設定しておきます。そうしたら、前回と同じようなやり方でマテリアルの変更を行ってください。

Terrainの作成

今まではPlaneを仮の床として使っていましたが、これの代わりにTerrainを使います。Terrainの使い方についてはユニティちゃんパルクールの記事「Terrainでステージを作る」を参照してください(※Unity2018.3でTerrain機能のアップデートがあり、操作方法が多少変わりましたが基本は同じです)。

ステージの端が見えないように周りを盛り上げて、テクスチャを貼ったり木や草を植えたりしてください。

Terrainでサーキットの風景づくり

まあ練習なので適当でOKです。ここでTerrainの使い方に慣れておきましょう。

ちなみに、「Terrainで車が上れない坂を作ればバリアはいらないんじゃないか」と思った方もいるかもしれませんが、それだと景観的にあまり見た目が良くないですし、例えばコースを変更したくなった時に面倒なので今回のようなやり方を採用しました。このようにゲーム部分に直結するコースの部分と、見た目だけに関係する景観の部分は切り分けたほうが便利なのです。

障害物の作成

次に障害物を試作します(こちらも本番用とは別の実験オブジェクトです)。ここでは障害物といいつつ、車で衝突して吹っ飛ばすためのオブジェクトを試しに作ってみましょう。

まずPriobuilderでCubeを作りRigidbodyを追加してプレハブを作っておきます。そうしたら空のゲームオブジェクト「Object」を作成し、その子としてCubeのインスタンスをステージの適当なところに積み上げておいてください。このとき、Cubeの質量は車の質量よりもずっと軽くなるように設定しておきましょう(3くらいが妥当?当然ですが重すぎると吹っ飛ばない)。

ただしこのままでは吹っ飛ばないので、上手く吹っ飛ぶようなPhysics Materialを作ります。Physics Materialフォルダに新しい物理特性マテリアルを作成し、パラメータを下の画像のように設定してください(パラメータの意味はUnityマニュアルの「物理特性マテリアル 」を参照してください)。

物理特性マテリアルの設定

そうしたら、これをCubeのMesh ColliderのPhysics Materialに設定します。これで高速でぶつかった時に良い感じに吹っ飛ぶようになりました。なお、低速でぶつかった時はCubeが飛ばないので単純に押すような感じになってしまうのですが、進行方向を変えるなどすると上手くバウンドしてどこかへ飛んでいくので、プレイの邪魔にならなくなります。

吹っ飛ぶ障害物

Skyboxの変更

最後に空を変更します。ユニティちゃんパルクールの記事「テスト用ステージを作る」の最後にSkyboxの変更方法を掲載してあるので、それを参考に同様の手順でSkyboxを変更してください。

これでテスト用サーキットができました。後で作る本番用のサーキットは今回と同じような作り方で作っていきます。

次のページ→ランダムに動くゾンビの作成