【Unity】Colliderってどんな種類があるの? ってときに読む記事【解説】

【Unity】Colliderってどんな種類があるの? ってときに読む記事【解説】

Unityでオブジェクトに物理的な運動をさせるときに欠かせないのはRigidbodyですが、そのRigidbodyを使う上でさらに欠かせないのがCollider(コライダー)です。

いわゆる当たり判定を検知してくれるColliderがなければ、地面すらもすり抜けてしまいます。

Colliderはオブジェクトの形に応じて様々な種類が用意されていますが、それを一覧でご紹介。

 

環境

macOS 10.13 High Sierra

Unity2018.1.0f2

Colliderについて

Colliderは、日本語に訳せば「衝突装置」かな。物体の衝突に関わる機能です。

詳細については、Unityのマニュアルをご覧あれ。ここではざっくりと紹介します。

Unity世界では、このColliderがないと衝突を検知してくれないので、あっさり物体がすり抜けてしまいます。そう、地面でさえも。

初心者が作ったゲームで発生するすり抜けの7割はこのColliderがついていないことが原因です。でも3DオブジェクトのCubeだったり、Sphereを作ったときには自動的にこのColliderも作ってくれるので、つけ忘れはそうそうないかも。

自分で3Dモデルをインポートしたときには忘れがちなので注意です。

トリガーとして使う

衝突を検知するだけでなく、単純に当たり判定だけを使うことも可能です。

例えば、アクションゲームでステージから落下した際、空中のある地点で落下判定を行ったりします。このとき、透明のオブジェクトに当たってそこで止まってしまったら、ちょっと変。

そんなときはColliderをトリガーとして使うのがベネ。

空中のある地点にColliderを配置し、接触したかどうかだけを検知することができます。判定だけ行なってオブジェクト自体はすり抜けます。

接触の検知によってOnTriggerEnterなどのメソッドを呼び出せるので、これまた便利。

 

Colliderの種類

Unityの物理演算には2Dと3Dがありますが、ここでは3Dを扱います。

名前 説明
Box Collider 箱型のColliderです。立方体だけではなく、直方体にしたり、薄型の箱にしたりと、結構応用がきくColliderです。
Capsule Collider カプセル型のColliderです。薬のカプセルを思い浮かべてもらうといいかも。
Sphere Collider 球の形をしたColliderです。ボールなどに使うといい感じ。楕円にはできないので、球形を拡大・縮小して使います。
Mesh Collider メッシュに合わせたColliderです。自分でインポートした3Dオブジェクトのメッシュを指定すると、その形にColliderを表示します。
Wheel Collider 車のタイヤ型のColliderです。Colliderでありながら、タイヤの質量だったり、進行方向への摩擦だったりと、物理的なパラメータが含まれます。
Terrain Collider 地形用Colliderです。Unityには地形を編集できるTerrain Engin(テラインエンジン)が搭載されており、そこで作成した地形に応じてColliderを生成します。

3Dの範囲だと上記の6種類があります。

特殊なのは下2つかな。あとはイメージしやすいと思います。

Box Collider

Box Collider
Box Collider

 

箱型のColliderです。3DオブジェクトのCubeを作成したときに、一緒についてきます。

箱型なので扱いやすく、複合Colliderを作るときにもこのBox Colliderを組み合わせると簡単。

X, Y, Zそれぞれの軸で伸縮が可能なので、立方体だけでなく直方体なども表現できます。ドアとか板のように薄いオブジェクトでも使えます。

Capsule Collider

Capsule Collider
Capsule Collider

 

カプセル型のColliderです。3DオブジェクトのCapsuleを作ると一緒についてきます。

ポールかと銃弾で使いやすい形。球の半径や高さは別々に変えられるので、これも複合Colliderで組み合わせやすい形をしています。

Sphere Collider

Sphere Collider
Sphere Collider

 

球体のColliderです。3DオブジェクトのSphereを作ると一緒についてきます。

見ての通りボールに適しています。キャラクターがカービィみたいに球体ならば、このColliderをアタッチしておけばOK。

ざっくりとSphere Colliderで、みたいな考えもありだと思います。

Mesh Collider

Mesh Collider(画像はQuad)
Mesh Collider(画像はQuad)

 

Mesh Colliderは、メッシュを指定できるColliderです。上記の画像では、QuadオブジェクトのColliderを表示しています。

3Dモデルをインポートした際には、そのメッシュを指定することができます。

正確に衝突を検知したいときにはぜひMesh Colliderを。

ただ、正確さと引き換えにパフォーマンスが犠牲になるのは世の常。使いすぎると結構重くなります。

ざっくりでよければ、複合ColliderでBoxやSphereを組み合わせた方がいい場合もあります。Colliderは画面に表示されませんからね。

Wheel Collider

Wheel Collider(タイヤ部分)
Wheel Collider(タイヤ部分)

 

タイヤのColliderです。画像では、4つのタイヤがWheel Colliderになっています。中央のBox Colliderは車体。

他のColliderと違って、地面側に丸っこいものがついていたり、中央あたりにオレンジの縦線が入っていたりと特殊な感じが出ています。

コンポーネントではタイヤの質量やトルク、ハンドルの向きを設定できたりと、物理的な制御も含むコンポーネントになっています。

Wheel Colliderについてはマニュアルの中でチュートリアルも用意されているので、こちらもご覧あれ。

Terrain Collider

Terrain Engineで作った地形
Terrain Engineで作った地形

 

Terrain Colliderは、UnityのTerrain Engineで作られた地形に対応するColliderです。フレーム表示ができなかったので上の画像はTerrainオブジェクトになっています。

Terrainはいじってるとめっちゃ楽しい機能で、3分くらいでいい感じの地形が作れる上に、簡単にテクスチャまで貼れます。上の白いオブジェクトにテクスチャを貼ると以下のようになります。

Terrainにテクスチャを貼った
Terrainにテクスチャを貼った

 

なんかもうTerrainの説明というかダイマになってますが、このTerrainの形に合わせて衝突を検知してくれるのがTerrain Colliderです。

この複雑な地形に対して、自分でColliderを用意しろと言われたら泣くしかない。あってよかったTerrain Collider。

まとめ

物理演算と切っても切れない存在であるCollider。その一覧をご紹介しました。

Unityがデフォルトで用意しているオブジェクトではそのColliderも用意してくれていますが、自分でメッシュを作ったときには忘れずに。

アセット作ってます!

CTA-IMAGE

Unityでの開発に役立つアセットを作っています。

3DダンジョンRPGを開発するスピードを200%加速するAssetや、ファンタジーRPGのダンジョンを彩るパーツを取り揃えています。

特に3DダンジョンRPGのゲームを1から作るのは結構時間がかかります。ダンジョン部分の作成はこうしたアセットを使って、開発をブーストさせてみませんか?