Unityでゲームを作ろう:第1回「ゲームフィールドを作成して当たり判定を付ける」

Unity

こんにちは、トナカイです。

今回は、Unityのゲームを作ろうと思います。

障害物を避けながらゴールまで進むというゲームです。

前から転がってくるリンゴにぶつかったらゲームオーバーです。

  1. ゲームフィールドを作成し、当たり判定を付ける
  2. キャラクターの動作設定をする
  3. 当たったらゲームオーバーになる障害物を作る
  4. カメラがプレイヤーに追従するようにする
  5. スタート画面やゲームオーバー画面を作る

この記事では、1番目のゲームフィールドを作成し、当たり判定を付けるところまで進めます。

Blenderでゲームフィールドを作る

最初に、Blenderでゲームフィールドを作ります。

完成形が以下の画像です。

スタートから始めて

リンゴを避けながら

リンゴの木のふもとまで行ければゴールです。

フィールド自体の作りはかなりシンプルなので省略します。

木の作り方だけ補足します。

Blenderでリンゴの木を作ろう

木を作るにあたっては「Sapling Tree Gen」というアドオンを使いました。最初からBlenderに付属しているアドオンのため、インストールせずに使えます。

Sapling Tree Genを使えるようにするためには、「編集」→「プリファレンス」→「アドオン」と進み、「追加カーブ:Sapling Tree Gen」の横にチェックを入れておく必要があります。

Sapling Tree Genを有効化した状態で、Shift+A→「カーブ」を選択すると、「Sapling Tree Gen」が追加できるようになります。

これを選択すると、下の画像のようなオブジェクトが追加されます。

初期状態では葉っぱがありませんが、「設定」を「Leaves」にし、「Show Leaves」にチェックを入れれば葉っぱが描画されるようになります。

Leavesの横の数値は葉の枚数に対応しているので、好きな雰囲気の木が作れます。

マテリアルを追加して色を付けました。ついでに、ノードの基本的な使い方とグラデーションのかけ方を解説【Blender4.0】で作ったリンゴも追加しました。

葉っぱはそれぞれ別の面でできているので、複数枚だけ別の色に変えることもできます。

Unityにfbxファイルをインポートする

ゲームフィールドが完成したら、Blenderの画面で「ファイル」→「エクスポート」→「FBX.(fbx)」の順に選択し、作成したフィールドをfbxファイルの形でエクスポートします。

続いて、Unity側でセットしていきます。

先ほどBlenderでエクスポートしたfbxファイルを、UnityのProjectにドロップします。

ドロップしたファイルを、今度はHierarchyにドラッグ&ドロップします。

これで、ゲームフィールドがSceneに出てきます。

また本筋には関係ありませんが、リンゴの果実のグラデーションを画像ファイルで設定してしまったので、fbxファイルをインポートしただけでは真っ白な実になってしまいます。

そのため、リンゴ1つ1つに対してグラデーションの画像をアタッチして、色を付けるという作業をしています。

ここまでの操作で、fbxファイルのインポートまでは完了しました。

ただ、現状ではfbxファイルをインポートしただけです。この状態では当たり判定がついていないので、プレイヤーが地面をすり抜けて落ちていってしまいます。

ゲームフィールドに当たり判定を付ける

当たり判定を付けるためには、オブジェクトのコンポネントとして、Colliderを追加する必要があります。

Colliderにはいろいろな種類があります。以下はその例です。

Colliderの例
  • Box Collider……名前の通り、四角いColliderです。
  • Capsule Collider……名前の通り、カプセル状のColliderです。
  • Mesh Collider……メッシュの形に合わせたColliderを作ってくれます。メッシュの形に合わせてくれるので精密な当たり判定になるのですが、その分処理が重くなりやすいそうです。

参考:Mesh Collider – Unity マニュアル (unity3d.com)

今回はMesh Colliderを使います。

Mesh Colliderの使い方

1.Colliderを付けたいオブジェクトを選択する

今回は、ゲームフィールドを「フィールド」という名前のオブジェクトにしているので、このオブジェクトを選択しました。

2.Inspectorから「Add Component」→「Physics」の順に進み、「Mesh Collider」を選択する

これだけで、選択したオブジェクトの形に合わせたメッシュが形成されます。

Colliderの可視化方法

デフォルトの状態ではColliderの形が分からないため、見えるようにします。

Unity画面上部の「Window」から「Analysis」→「Physics Debug」を選択します。

すると、Scene画面の右下に「Physics Debug」が表示されます。

Physics Debug内にある「Collision Geometry」にチェックを入れると、Colliderの形が可視化されます。

下の画像の緑色の箇所がColliderです。オブジェクトを非表示にすると、Colliderが見えやすくなると思います。

完成

Colliderの形を確認してみても、メッシュの形状通りに当たり判定が付けられていました。

立方体を落としても地面をすり抜けなくなっています。

上手く行ったようなので、次回はキャラクターの動作設定を進めます。