コリジョン抜けとは、本来通れない壁や地形などのコリジョンを、キャラクターがすり抜けてしまう不具合です。
コリジョン抜けが起きると、
- 本来入れない場所へ侵入する
- ステージの外へ出てしまう
- イベントを飛ばしてしまう
- 進行不能になる
といった問題につながることがあります。
ゲーム制作では、コリジョン同士の隙間、キャラクターの移動量、強制移動など、さまざまな原因でコリジョン抜けが発生します。
この記事では、ゲーム制作で起こりやすい3つのコリジョン抜けの原因と、デバッグ時に確認したい対策を紹介します。
コリジョンそのものについて知りたい方は、こちらの記事で詳しく解説しています。
なぜコリジョン抜けが起きるのか

このコリジョンですが、シンプルになればなるほど、処理は軽くなり、複雑になればなるほど、処理が重くなるという性質があります。
ゲームをやっているなかで、見た目とコリジョンの差を感じたことがあると思います。
『この端っこの部分、行けると思ったのに透明な壁で進めないー。』
という感じのことです。
これがコリジョンとなっており、見た目と違う構造で処理されているものとなっています。
と、この部分が今回バグとの話題となる部分でもあります。
コリジョンは見た目の形状と完全に一致させるとは限りません。
処理負荷を抑えるために簡略化した形状を使用することも多く、その結果として見た目と実際の当たり判定に差が生まれます。
また、複数のコリジョンを組み合わせたり、キャラクターが高速で移動したりすることで、本来想定していなかった侵入経路ができる場合があります。
こうした部分が、コリジョン抜けを確認するときのポイントになります。
コリジョン抜けが危険な理由

コリジョン抜けは、単に壁をすり抜けるだけではありません。
本来行けない場所へ先に進めてしまうことで、イベントの順番が崩れたり、必要なフラグが立たなかったりして、進行不能につながることがあります。
特にステージ進行やイベント制御と関係する場所では、重大な不具合になる可能性があります。
コリジョン抜けが起きる3つの原因
① コリジョン同士に隙間がある

コリジョンとコリジョンの間にキャラクターが入った場合に、起きえる状態です。
コリジョンの隙間がキャラクターと同サイズ以上であれば問題ありませんが、隙間に対して、キャラクターのコリジョンが大きい場合で、コリジョンの間に挟まれた場合に起きる可能性があります。
これは、コリジョンが判定を行い強制移動させようとして侵入を阻みますが、その判定が連続で行われるため、スッと、コリジョン内に入れてしまう可能性があります。
特に角でキャラクターにアクションをとらせていたりすると起こる可能性があります。
② 1回の移動量が大きく、判定を通り越す

※青 コリジョン 緑 プレイヤー 深緑 負荷
処理負荷が高い状況や、高速移動するキャラクターなどでは、1回の更新で移動する距離が大きくなり、コリジョン判定をまたいでしまうことがあります。
③ 投げ技などでキャラクターを強制移動させる


強制移動というのは、アクションゲームであれば大抵が投げ技がこれが当たります。
投げ技は、掴んだ方、掴まれた方のアクションが存在しますが、そのアクションへ移行する際に、強制的にモーションを適応させている場合があります。
そのため、例えば、投げを使っている側は、前方に手を伸ばし、敵の首を掴んでいる、状態でそのあとに前方に投げるなどの技だった場合、これもデータや処理によりますが、手を伸ばした際に投げ役のキャラクターはコリジョンの外にいる可能性があります。
コリジョンによって、見た目と当たりの違いがでる

これが、実は、コリジョン抜けを発生させやすい原因でもありますし、処理を考えなければならない原因でもあります。
最初の方にお話しましたが、コリジョンは複雑なほど処理が重いという性質があります。
そのため、軽くするため、見た目(当たり)を簡易的なものに変える必要があります。
ですので、この簡易的なものにした際に外見との差を感じるということにもなります。
簡易的であれば、あるほど処理は軽くなりますが、その分、形への正確な当たりは反映させることができません。
3パターンのコリジョンの抜け方は、デバックプレイする際には必ず役に立つと思うので、頭にいれてデバックしてみると良いです。
コリジョン抜けを減らすための対策
隙間や角を重点的に確認する
コリジョン同士の境目や角は、通常の移動では問題がなくても、ジャンプ・回避・攻撃などを組み合わせると侵入できる場合があります。
デバッグでは、壁に沿って移動するだけでなく、角に向かって繰り返し移動したり、アクションを行ったりして確認します。
高速移動・連続入力を試す
ダッシュ、回避、ノックバックなど、短時間で大きく移動する処理は重点的に確認します。
通常プレイだけでなく、入力を連続させたり、複数の処理が重なる状況も試します。
強制移動する技は壁際で確認する
投げ技や吹き飛ばしなど、キャラクター位置を強制的に変更する処理は、壁際や狭い場所で問題が起きやすくなります。
技の開始位置だけでなく、技の途中や終了位置がコリジョン内部に入っていないか確認します。
見た目だけで判断しない
3Dモデルの形とコリジョンの形は必ずしも一致しません。
デバッグ時には可能であればコリジョンを可視化し、実際の判定形状を確認すると原因を探しやすくなります。
FAQ
Q. コリジョン抜けとは何ですか?
本来通れない壁や地形などの当たり判定をキャラクターがすり抜けてしまう不具合です。
Q. コリジョン抜けはなぜ起きますか?
コリジョン同士の隙間、大きな移動量、投げ技などによる強制移動など、さまざまな原因で発生します。
Q. コリジョン抜けはどうやってデバッグしますか?
壁やコリジョンの境目、角、高速移動、ジャンプ、回避、投げ技など、通常とは異なる移動が起きやすい場所や操作を重点的に確認します。



コメント