ゲームにおけるコリジョンとは、キャラクターやオブジェクト同士が接触・衝突したかを判定する仕組みのことです。
ゲーム制作では、一般的に「当たり判定」と考えると分かりやすいでしょう。
例えば、
- キャラクターが壁をすり抜けない
- プレイヤーが敵の攻撃に当たる
- アイテムに触れると取得する
- 特定の場所に入るとイベントが発生する
といった処理にコリジョンが使われます。
この記事では、ゲームにおけるコリジョンの意味から、代表的な形状、使い分け、処理負荷を抑える考え方まで解説します。
ゲームのコリジョンとは?=当たり判定

コリジョン(Collision)は「衝突」という意味で、ゲームではキャラクターやオブジェクト同士の接触を判定するために使われます。
例えば、プレイヤーが壁の前で止まるのは、壁に設定されたコリジョンとプレイヤーのコリジョンが接触しているためです。
また、コリジョンは「通れない壁」を作るだけではありません。
敵の攻撃判定、アイテム取得、スイッチ、イベント開始地点など、何かに触れたことをゲーム側が検知する仕組みとして幅広く利用されます。
ゲーム制作では「コリジョン=当たり判定」と覚えておけば、まずは問題ありません。
コリジョンは、処理負荷がかかります

今回このコリジョンのお話をするのは、コリジョンは使い方を間違えるとものすごく処理を無駄に使うということを伝えておきたいと思います。
👉 コリジョンは便利ですが、使いすぎるとパフォーマンスに影響します。
なので、スペックの低いものだとコリジョンをふんだんに使えない場合があり、簡素なものになる場合があります。
👉 特にスマホやSwitchなどでは重要なポイントです。
現状、
PS5、PS4、switch、XBOX(海外)、PC、スマートフォン
と、ゲームができる媒体は、ありますが、どの媒体にもコリジョンのデータは存在しています。
※昔の機体を入れるときりがないので、今でも現役のものを。
👉 すべてのゲームに必須の仕組みです。
コリジョンとは

前半で話していますが、ゲーム内のキャラクター、やNPCに対して行動を制限させるものです。
👉 プレイヤーの行動制御に直結します。
実際の世界には、机の上に物を置いたり、椅子に座ったりすることができますが、ゲームの世界では、コリジョンを設定しないと判定をとること難しく、物を置いたり、座ったりすることができません。
👉 ゲームでは「物理の代わり」をしているイメージです。
よくキャラクターがオブジェクト(何かしらの物)にめり込んでいる!というのがありますが、これは、その設定が上手くいっていないということです。
👉 コリジョン設定ミスの典型例です。
※注意 ここでは、設定が上手くいっていないと言い切っていますが、ゲーム上めり込みを少し許容してバグを防ぐのと、処理の高速化をする場合があります。なので、一概にめり込んでいるから設定が悪いというのは、言いきれませんので、ご注意ください。
👉 あえて調整しているケースもあります。
ゲームで使われる代表的なコリジョン形状
コリジョンに使える形状や名称は、ゲームエンジンやゲーム独自のシステムによって異なります。
ここでは、3Dゲームで使われる代表的な形状を紹介します。
コリジョンは実際には四角形や円などの単純な形で判定されることが多いです。
コリジョンの種類は、6つの種類があります。
👉 ここはゲーム開発で重要な知識です。
- 立方体
- 球体
- 円柱
- 板
- カプセル型
- 自由形状(形に制限はなし)
👉 ここまでのポイント
- コリジョンには複数の形状がある
- 形によって使い分ける
各コリジョンの特徴

これは、プログラマーが扱えるコリジョンの形と思ってください。(3Dゲームの想定です。)2Dデータを使った制限方法なども考えられますが、今回は、わかりやすく3Dデータで考えます。
一辺だけを動かすような変形はできません。
直方体のように全体を縦・横・奥行き方向へ伸縮することはできますが、一辺だけを変形させる場合は自由形状として扱う必要があります。(伸ばす場合は、自由形状になってしまい、より負荷の高いコリジョンになります。)
立方体

6面で構成された箱ですね。サイコロのガワだと思っていただければ。
基本的には、背景オブジェクトなどに使われる場合が多いです。キャラクターに適応させてしまうと、移動時に、引っかかる可能性が高い形状となります。
👉 背景や壁に使いやすい形状
球体

ボール型の形をしたコリジョン。球体なので、キャラクター同士がぶつかった場合でもするりと横を抜けることがしやすい。
ただし、球なので、下や上に滑り込んでしまう可能性があります。
👉 キャラクター同士の当たり判定に向いている
円柱

柱と思ってもらえば。
この利点としては、キャラクターが当たったとしても、コリジョンが円柱のため引っかかることがありません。キャラクターの幅と円柱の配置の仕方をちゃんとしていれば、NPCキャラクターであっても、移動がスムーズに行うことができます。
円柱の上面と底面に関しては、コリジョン設定することも可能ですが、処理を省くためには、上面と底面の設定はせずに、側面の長さを何があっても越えられないような高さに設定すると良いです。
👉 移動をスムーズにするのに適している
板

立方体との違いは、法線の方向に対してのみ当たりが発生するということです。
なので、裏側から触れた場合は、通過してしまいます。例えば、道の範囲外へ行ったら困る場所などに設定をします。
👉 見えない壁などに使われることが多い
カプセル型

ちょっと特殊な形となります。円柱と違い、画像だと左右ですが、丸く弧を描いているコリジョン(横になっていますが、立てることもできます。)
これは、プレイヤーが上に乗った場合に、滑り落ちる形にもなり、球体とも違い、カプセルを縦にした場合に、下めり込むということがなくなります。
円柱と球体を足したような感じのコリジョンとなっております。
👉 プレイヤー用コリジョンでよく使われる形
自由形状
下記の5つに当てはまらないものは、自由形状となります。
- 立方体
- 球体
- 円柱
- 板
- カプセル型
このコリジョンが一番計算が重く、次世代機であれば、使用は可能ですが、スペックが怪しいハードでは、使用を避けた方が良いです。このコリジョンのせいで、ゲームがまともに動かないという可能性もありますので。
自由形状のコリジョンは、単純な形状のコリジョンより処理負荷が高くなります。
PCや家庭用ゲーム機など性能に余裕がある環境では差が目立たないこともありますが、低スペックな端末や多数のコリジョンを同時に扱う場面では負荷の差が顕著になります。
そのため、ゲーム制作では可能な限り立方体・球・カプセルなどのシンプルな形状を組み合わせて使います。
👉 一番重いコリジョン
注意しなければならないコリジョンとは
上記でも書いてありますが、自由形状のコリジョンが一番重くなります。
👉 パフォーマンスに大きく影響します。
また、他のコリジョンも1辺でも形を変化(全体の拡縮は問題ない)したものは、自由形状のコリジョン扱いとなります。
👉 意図せず負荷が上がる原因になります。
コリジョンは、判定を常に行わなければならないため、たくさんのコリジョンと判定をしなければならないもの(キャラクターなど)がいる場合は、常に計算が走ります。
👉 処理負荷の原因はここです。
そのため、なるべく簡単なコリジョンにした方が負荷が低くなるため、処理負荷が高い場合は、コリジョンを調べてみるのも手だと思われます。
👉 最適化の重要ポイントです。
数も抑え、大きさも抑え、形状もシンプルにと、考えることが多く思われますが、これを考えなければ、ストレスを与えるだけのゲームに一番近くなってしまうので、覚えておくと良いです。
👉 コリジョン設計はゲームの快適さに直結します。
Q. ゲームのコリジョンとは何ですか?
ゲーム内でキャラクターやオブジェクト同士が接触したかどうかを判定する仕組みです。一般的には「当たり判定」と考えると分かりやすいです。
Q. コリジョンはなぜ単純な形の方がいいのですか?
複雑な自由形状ほど当たり判定の計算負荷が高くなるためです。特に低スペックなハードや、多数のコリジョンを同時に判定する場面では差が出やすいため、可能な範囲で立方体・球体・カプセルなどの単純な形状を使います。


コメント