CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】Colliderの設定方法とよくあるFAQ
![](https://cgbox.jp/wp-content/uploads/2023/05/VRoid-1.jpg)
こんにちは!コチラの記事では、Collider についてのよくあるFAQを解決しながら、Collider について解説していきます。
Collider とは
「 Collider 」とは、以下2つの機能をゲームオブジェクトに持たせることができるコンポーネントです。
- 物理的な衝突を表現する機能。
- 「領域に接触」「領域に入り続けた」「領域から出た」を検出する機能。
「地面・壁・モノ」にぶつかるという表現や、「敵の攻撃」が当たったかどうかを検出する際に設定します。
Collider の設定方法
Collider の設定方法は、Collider を追加したいゲームオブジェクトを選択し、
Inspector →「 Add Component 」から、追加したい種類の「 Collider 」を選択することで、設定することができます。
![](https://cgbox.jp/wp-content/uploads/2023/05/1-2.gif)
Collider の種類
Collider は、3D用と2D用に分かれており、1つのオブジェクトに対し、3D用の Collider と2D用の Collider を併用することはできません。
以下、3D用の Collider と2D用の Collider を、それぞれ用途別に分類して紹介していきます。
3D用の Collider の種類
3D用の Collider は、以下3つに分類できます。
- 形状の Collider
- タイヤの Collider
- 地形の Collider
形状の Collider
形状の Collider は、「ゲームオブジェクトの形状」に沿った Collider を設定するのに使用します。
具体的には以下4つの種類の Collider が形状に沿った Collider を設定する際に使用されます。
- Sphere Collider
- Box Collider
- Capsule Collider
- Mesh Collider
画像は、左から「 Sphere Collider 」「 Box collider 」「 Capsule Collider 」「 Mesh Collider 」です。
![](https://cgbox.jp/wp-content/uploads/2023/05/2e54f06712d757d77403bb4b6aa621b2-1024x518.jpg)
「 Sphere Collider 」「 Box Collider 」「 Capsule Collider 」は、名前そのままの形状の Collider です。
「 Mesh Collider 」は、自分で作成したメッシュの形状をそのまま Collider として使うことができます。
しかし「 Mesh Collider 」を使用すると、ポリゴン数が多い場合には処理負荷が重くなるため
メッシュに対して適宜「 Sphere Collider 」「 Box collider 」「 Capsule Collider 」を組合わせたりなどして、大まかにコライダーを設定した方がゲームの処理負荷が軽くなります。
タイヤの Collider
タイヤのColliderは、Collider の通常の機能(衝突の表現・検知)に加えて、タイヤの摩擦・質量・サスペンションなど、タイヤの物理的な設定をすることができます。
タイヤ以外にも使用可能な Collider ですが、ホイールのある車両を想定して設計されているので、専らタイヤのついた車を走らせる際に使用されます。
タイヤの Collider を設定する際は、以下の Collider を使用します。
- Wheel Collider
![](https://cgbox.jp/wp-content/uploads/2023/05/1f92cd9ff47960d349ac17c71e6bc5b3.png)
地形の Collider
Unity には、「 Terrain 」という地形を作ることができる Game Object があります。
地形のCollider は、その「 Terrain 」で設定した地形をそのまま Collider にすることができます。
地形の Collider を設定する際は、以下の Collider を使用します。
- Terrain Collider
![](https://cgbox.jp/wp-content/uploads/2023/05/a35312e05ddfb1e1eba850540378aedc-edited.jpg)
2D用の Collider の種類
2D用の Collider は、以下3つに分類できます。
- 形状の Collider
- タイルマップ用の Collider
- 複数の Collider を結合するための Collider
形状の Collider
2Dにおける形状の Collider も、3Dにおける形状の Collider と同様に、「ゲームオブジェクトの形状」に沿った Collider を設定するのに使用します。
具体的には以下6つの種類の Collider が2D上で、形状に沿った Collider を設定する際に使用されます。
- Box Collider 2D
- Capsule Collider 2D
- Circle Collider 2D
- Custom Collider 2D
- Edge Collider 2D
- Polygon Collider 2D
タイルマップ用の Collider
2Dタイルマップを使用してゲームを作っている場合に、使用する Collider です。
- Tilemap Collider 2D
複数の Collider を結合するための Collider
複数の Collider を結合して1つの Collider に変換することができます。
- Composite Collider 2D
Collider についてよくあるFAQ
Collider で当たり判定をつけるには?
当たる・跳ねる・摩擦するなどの「当たり判定」を表現するためには、Collider の設定に加えて、Rigidbody の設定をする必要があります。
まず当たり判定をつけたい Game Object の両方に、 Collider の設定がされていることを確認しましょう。
![](https://cgbox.jp/wp-content/uploads/2023/05/a7e25352f570fab8b9ef624ca2cd5b70-1024x455.jpg)
![](https://cgbox.jp/wp-content/uploads/2023/05/d1eb5a2111b78bac2ccb09ed13b0c080-1024x469.jpg)
当たり判定をつけたい Game Object の両方に、 Collider の設定がされていることを確認できたら、いずれか一方に、Rigidbody を設定します。
Rigidbody は、Game Object を選択し、Inspector → Add Component →「 Rigidbody 」から設定することができます。
Rigidbody を設定することにより、当たり判定を Game Object につけることができます。
![](https://cgbox.jp/wp-content/uploads/2023/05/3.gif)
Rigidbodyとは、Game Object に物理的な特性を付け加えることができるコンポーネントです。
Rigidbody の設定をすることで、Game Object に重力や質量の設定をすることができるようになります。
そのような物理的な特性が付け加えられるからこそ、当たり判定を実現することができます。
当たり判定は、上記の Rigidbody の設定に加えて、スクリプトで設定する必要があるので、
スクリプトに関しては、【Unity】『当たり判定』の設定方法を詳しく解説!の記事を参考にしてみてください。
Is Trigger の設定方法は?
Is Triggerは、 Game Object の Inspector → Collider を選択し、「 Is Triger 」にチェックを入れることで設定することができます。
![](https://cgbox.jp/wp-content/uploads/2023/05/a5628c8dcc179ace9a7440c03cf914d6.png)
「 Collider 」には、物理的な衝突を表現する機能と「領域に接触」「領域に入り続けた」「領域から出た」を検出する機能があると冒頭で説明しましたが、
Collider の 「 Is Trigger 」 を設定することによって、物理的な衝突の表現をしなくなり、検出する機能のみを有するようになります。
そうすることによって、トリガーとして Collider を使用することができるようになります。
トリガーは、上記の「 Is Trigger 」の設定に加えて、スクリプトで設定する必要があるので、
スクリプトに関しては、【Unity】『トリガー』の設定方法を詳しく解説!の記事を参考にしてみてください。
Collider をつけてもすり抜けるとき・反応しないときは?
Colliderをつけてもすり抜けるとき・反応しないときに考えられる原因は3つあります。
- 「 Rigidbody 」の設定がされていない
- 「 Is Triger 」にチェックが入っている
- オブジェクトのスピードが速すぎる
「 Rigidbody 」の設定がされていない
当たる・跳ねる・摩擦するなどの「当たり判定」を表現するためには、Collider の設定に加えて「 Rigidbody 」の設定が必要です。
Rigidbody の設定をせずに、 Collider だけを設定している場合は、そのまますり抜けてしまうので、設定されているかを確認しましょう。
![](https://cgbox.jp/wp-content/uploads/2023/05/6.gif)
「 Is Triger 」にチェックが入っている
Collider の 「 Is Trigger 」にチェックが入っていると、物理的な衝突の表現をしなくなり、検出する機能のみを有するようになります。
そのためオブジェクト同士の衝突の表現がされなず、そのまますり抜ける・反応しないといった事態に陥ります。
![](https://cgbox.jp/wp-content/uploads/2023/05/5-1.gif)
オブジェクトのスピードが速すぎる
オブジェクトのスピードが速すぎる場合にも、すり抜けてしまうことがあります。
その場合には、以下2通りの調整方法があります。
- オブジェクトのスピードを落とす
- Collision Detection(衝突の検知の方法)の変更
スピードを落とすことがゲームの表現上問題がない場合、スピードを落とすことによって対処することができます。
ゲームの表現上スピードを落とすことができない場合は、Collision Detection(衝突の検知の方法)を変更する必要があります。
Collision Detection(衝突の検知の方法)については、Game Object を選択し、Inspector → Rigidbody →「 Collision Detection 」で変更できます。
![](https://cgbox.jp/wp-content/uploads/2023/05/4f1f2ad6f6e31e85ff81314b14b8b439.png)
Collision Detection(衝突の検知の方法)は、デフォルトの設定の場合「 Discrete 」となっていますが、
衝突する相手のオブジェクトが動いていない場合には、「 Continuous 」、
衝突する相手のオブジェクトが動いている場合には、「 Continuous Dynamic 」「 Continuous Speculative 」に設定しましょう。
衝突の検知の方法を「 Continuous 」「 Continuous Dynamic 」「 Continuous Speculative 」に変更した場合、
デフォルトの設定の「 Discrete 」よりも処理負荷が多くかかり、ゲームが重たくなってしまうので注意が必要です。
1つの Object に Collider を複数つける方法は?
Collider が設定されている Game Object を複数用意し、空の Game Object を親として、親子付けをします。
空の Game Object には、Rigidbodyを設定しましょう。
![](https://cgbox.jp/wp-content/uploads/2023/05/bc3bed9d30285e5b02878404a2ce0783-1-1024x429.jpg)
そうすることで複数の Collider を1つのObject として、設定することができます。
![](https://cgbox.jp/wp-content/uploads/2023/05/7.gif)
Collider を可視化するには?
左上のタブ Window → Analysis → Physics Debugger を選択します。
シーンビューの画面右下に表示される「 Physics Debug 」の「 Collision Geometry 」にチェックを入れると、Collider を可視化することができます。
![](https://cgbox.jp/wp-content/uploads/2023/05/8-1024x489.gif)
2Dで当たり判定をする方法は?
3Dと同じく、Collider の設定と Rigidbody の設定をします。
Collider の設定方法は、Collider を追加したいゲームオブジェクトを選択し、Inspector →「 Add Component 」から、追加したい2D用の「 Collider 」を選択します。
Rigidbody は、Game Object を選択し、Inspector → Add Component →「 Rigidbody 2D」から設定することができます。
まとめ
- Collider は物理的な衝突を表現する機能と「領域に接触」「領域に入り続けた」「領域から出た」を検出する機能をゲームオブジェクトに持たせることができる。
- Collider は Add Component から、追加したい種類の「 Collider 」を選択することで、設定することができる。
- 3D用の Collider は、形状・タイヤ・地形の Collider に分類できる。
- 2D用の Collider は、形状・タイルマップ・結合の Collider に分類できる。
- Collider で当たり判定をつけるには、Rigidbody の設定をする必要がある。
- Is Triggerは、「 Is Triger 」にチェックを入れることで設定することができる。
- Collider をつけてもすり抜けるとき・反応しないときに考えられる原因3つ
- 「 Rigidbody 」の設定がされていない
- 「 Is Triger 」にチェックが入っている
- オブジェクトのスピードが速すぎる
- 1つの Object に Collider を複数つけるには、Collider を設定した Game Object と空の Game Object を親子付けし、親である空の Game Object にRigidbodyを設定する。
- Collider を可視化するには「 Physics Debug 」の「 Collision Geometry 」にチェックを入れる。
- 2Dで当たり判定をするには、2D用の「 Collider 」と「 Rigidbody 2D」を設定する。
Unity用アセット販売中!
当メディアで運営しているアセットショップ「NickNackHolic」にてUnity用のアセットを販売しております。
ゲーム制作やVRchat、Clusterなどで使用できる便利なアセットを販売しております。
一部無料のアセットもあるので、ぜひ覗いてみてください!
Nick Nack Holic
![](https://cgbox.jp/wp-content/uploads/2023/05/581820f5-8b9b-456e-96b8-747864c65665_base_resized-1.jpg)
![](https://cgbox.jp/wp-content/uploads/2023/05/93a77c7b-7553-4fd6-9f13-2621877a155b_base_resized.jpg)
![](https://cgbox.jp/wp-content/uploads/2023/04/1-1-1024x1024.jpg)
VRchatやゲームアセット、映像作品で使える「雑貨」を販売中