こんにちは、ともくんのゲーム作り部屋にようこそ!
このページでは、
「UnityでColliderってなに?」
「Colliderの形状の種類が多すぎて分からない…。」
というお悩みの方に向けた内容となっています。
Unityが提供しているコンポーネントの一つに、Collider(コライダー)コンポーネントというものがあります。
このColliderという機能は、オブジェクトの当たり判定を決めている範囲を定義する役割を持つコンポーネントです。
そして、このColliderには様々な形状のものがあり、それらを使ってオブジェクトの当たり判定を細かく設定できるようになっています。
そこで、このページでは、Unityが提供しているColliderコンポーネントについて、どんな機能なのか、また使い方やコライダーの形状の種類などをまとめていきます。
なお、このページでは、
Windows11
Unity Hub3.11.0
Unity6
のバージョンで解説しています。
Collider(コライダー)とは?当たり判定の範囲を決めるコンポーネント
オブジェクトに独自の機能を持たせることができるUnityのコンポーネントの一つに、Collider(コライダー)というものがあります。
このColliderは、冒頭でも紹介した通り、そのオブジェクトの当たり判定を決めるという役割を持っています。
例えば、「キャラクターが床の上を歩く」というだけの処理でも、キャラクターと床のどちらもColliderコンポーネントを設定しておくことで、キャラクターのColliderと床のColliderが当たり、すり抜けて落ちないようにできます。

他にも、敵から攻撃を受けるなどの際に、Colliderが設定されている箇所に攻撃が当たった場合にのみ、ダメージ処理を加えるといったことができるようになります。
Collider(コライダー)の使い方と形状の種類
ここからは、実際にColliderコンポーネントの使い方と、形状の種類について紹介していきます。
コンポーネントから追加していく
Colliderを使う際は、そのオブジェクトを選択して、インスペクターウィンドウから「Add Component」をクリックします。

そして、2Dゲームの場合は「Physics 2D」、3Dゲームの場合は「Physics」を選択します。

すると、「●● Collider」や「●● Collider 2D」という表記のものがいくつか表示されるので、選んで追加していくことで設定できます。

上記のように、様々なColliderコンポーネントが複数表示されているのは、当たり判定の範囲を決める形状の種類や決め方によって、コンポーネントが分かれているからです。
Colliderの種類について
ここでは、Colliderの種類についてそれぞれどんなColliderなのか、また形状や仕組みを簡単に紹介していきます。
2DゲームのColliderの種類
2D Colliderの種類として、
- Box Collider 2D:四角いコライダー
- Circle Collider 2D:円形のコライダー
- Capsule Collider 2D:カプセル型のコライダー
- Edge Collider 2D:線形のコライダー
- Polygon Collider 2D:多角形のコライダー
- Composite Collider 2D:複数のコライダーを統合する
- Custom Collider 2D:独自のコライダーを作成
と、7つの種類のColliderがあります。
Box Collider 2D:四角いコライダー
Box Collider 2Dは、四角形を使って当たり判定を決めるコライダーです。

四角いオブジェクトに設定する際に、使われることが多いコライダーです。
Sizeでコライダーの縦や横のサイズ、Offsetでコライダーの位置を指定することができます。

Circle Collider 2D:円形のコライダー
Circle Collider 2Dは、円形を使って当たり判定を決めるコライダーです。

当たり判定を決める際に、よく使われるのがこの円形のコライダーで、Radiusで円の半径を決めて、Offsetでコライダーの位置を指定します。

Capsule Collider 2D:カプセル型のコライダー
Capsule Collider 2Dは、カプセル型で当たり判定を決めるコライダーです。

Directionでカプセルの形状の向きを指定することができ、「Horizontal」にすると水平方向に伸ばしたカプセル(横向き)、「Vertical」で垂直方向に伸ばしたカプセル(縦向き)にすることができます。

Edge Collider 2D:線形のコライダー
Edge Collider 2Dは、線形で当たり判定の範囲を決められるコライダーです。

四角形や円形などのように囲まれた形状では無く、線を使って当たり判定を作ることが出来るので、例えば床などのコライダー設定として非常に重宝します。
また、Pointsの中にあるSizeで頂点の数を設定することができ、それぞれの位置を変更することで線を折り曲げたり自由にカスタマイズすることができます。

Polygon Collider 2D:多角形のコライダー
Polygon Collider 2Dは、多角形で当たり判定の範囲を決められるコライダーです。

オブジェクトの形状が少し細かいような時に、Polygon Collider 2Dを使うと非常にフィットしたコライダーを指定することができます。
Sizeで頂点の数を増やすことで、複雑な形のコライダーを作り出すことができます。

Composite Collider 2D:複数のコライダーを統合する
Composite Collider 2Dは、複数の他のCollider 2Dをまとめて一つのコライダーにすることができるコンポーネントです。

複数の形を組み合わせた形状で当たり判定を作りたいときに便利で、例えば通路などを作る際に使われることがあります。
オブジェクトに複数のCollider 2DとComposite Collider 2Dを設定して、それぞれのCollider 2Dの「Composite Opreration」から設定してあげることで、コライダーをまとめることができます。

Custom Collider 2D:独自のコライダーを作成
Custom Collider 2Dは、他のコライダーと異なり、PhysicsShapeGroup2Dを使って独自のコライダーを作ることができる機能です。
他とは異なる独自のコライダーを作りたい場合は、このCustom Collider 2Dで設定することができます。
3DゲームのColliderの種類
3D Colliderの種類として、
- Box Collider:立方体のコライダー
- Sphere Collider:球体のコライダー
- Capsule Collider:カプセル型のコライダー
- Mesh Collider:メッシュデータから生成されるコライダー
- Terrain Collider:テラインデータから生成されるコライダー
- Wheel Collider:車両用のコライダー
と、6つの種類のColliderがあります。
Box Collider:立方体のコライダー
Box Colliderは、直方体で当たり判定の範囲を決められるコライダーです。

四角い形のものに対して、当たり判定の設定を行いたい場合に便利な形状です。
Sizeで直方体の大きさを指定して、Centerで直方体の位置を指定することができます。

Sphere Collider:球体のコライダー
Sphere Colliderは、球体の形で当たり判定の範囲を決められるコライダーです。

Radiusで球体の半径を指定して、Centerで球体の位置を指定することができます。

Capsule Collider:カプセル型のコライダー
Capsule Colliderは、カプセル型をした当たり判定の範囲を決められるコライダーです。

Directionの項目で、それぞれのX軸・Y軸・Z軸の方向に対して、カプセルを引き伸ばすことができます。

Mesh Collider:メッシュデータから生成されるコライダー
Mesh Colliderは、3DオブジェクトのMesh(メッシュ)の情報から当たり判定の範囲を決めているコライダーです。

それぞれのMesh情報から当たり判定を作れるので非常に便利ですが、複雑なオブジェクトの場合は情報が多く処理が重たくなってしまうことがあります。
Mesh Colliderは、Quadなどを作成すると自動で付いてきます。
Terrain Collider:テラインデータから生成されるコライダー
Terrain Colliderは、Terrainを使って作られた地形オブジェクトに自動的に付けられるコライダーです。

Terrainデータから自動的にコライダーが作成されるため、地形にあわせたコライダーを設定してくれます。
Wheel Collider:車両用のコライダー
Wheel Colliderは、車両用の特殊なコライダーで、車を作る際に使うコライダーです。
他のColliderと異なり、ホイールの大きさや重量、サスペンションなどを設定することができます。
Colliderの範囲を編集する
設定したColliderにも寄りますが、当たり判定の範囲を編集することができます。
Colliderの当たり判定を編集する場合は、オブジェクトを選択して、インスペクターウィンドウにあるColliderコンポーネントから、Edit Colliderをクリックします。

すると、マウスを使って直感的にそれぞれの頂点を選んで編集することができます。

なお、この緑色の線の範囲内が、当たり判定のある箇所となっています。
Collider(コライダー)を使う際の注意点
ここからは、Colliderを使って当たり判定を付ける際の注意点を紹介していきます。
当たり判定にはRigidbodyコンポーネントも必要
Colliderコンポーネントを設定しただけでは、実際に当たり判定を行うことができません。
当たり判定を行う場合は、重力機能を持つRigidbodyコンポーネントも必要になるため、注意しておきましょう。

どちらか片方にRigidbodyコンポーネントが付いていれば問題ありませんが、当たった後に跳ね返り等の挙動を付けたりする場合は、どちらもRigidbodyコンポーネントが必要になります。
なお、当たり判定の設定方法については、以下のページにもまとめていますので、参考にしてみてください。
「Is Trigger」ですり抜けるどうかを決める
インスペクターウィンドウのColliderコンポーネントの設定に、「Is Trigger」という設定項目があります。

このIs Triggerにチェックを入れると、Triggerモードとなり、オブジェクトがすり抜けるという処理が行われます。
また、チェックを入れない場合は、Collisionモードとなり、オブジェクト同士が衝突してすり抜けないという処理を行うことができます。
そのため、当たり判定だけを行いたい場合は、Is Triggerにチェックを入れて、すり抜けたくない場合は、Is Triggerのチェックを外しましょう。
まとめ
このページでは、Unityで当たり判定の範囲を決める役割のColliderコンポーネントについて、仕組みや使い方、種類を紹介していきましたが、いかがでしたでしょうか?
一言にColliderコンポーネントといっても、様々な形状の種類があり、当たり判定を設定したいオブジェクトに応じて変えていく必要があります。
主に良く使うColliderとしては、
辺りがありますので、ある程度形状を覚えておきましょう。
最後までお読みいただきまして、ありがとうございました!
コメント