コリジョンバグには、注意しよう!!バグの少ないゲームの作り方

ゲームプランナーの考え方

コリジョンのバグ、進行不能や予期せぬ、攻略が起きてしまう原因の一つとなります。

作り方を工夫することによって、バグが少ないゲームを制作することができます。

コリジョンについては、下記の記事を読んでいただけると理解できると思います。

コリジョンは、処理の塊です

このコリジョンですが、シンプルになればなるほど、処理は軽くなり、複雑になればなるほど、処理が重くなるという性質があります。

ゲームをやっているなかで、見た目とコリジョンの差を感じたことがあると思います。

『この端っこの部分、行けると思ったのに透明な壁で進めないー。』

という感じのことです。

これがコリジョンとなっており、見た目と違う構造で処理されているものとなっています。

と、この部分が今回バグとの話題となる部分でもあります。

コリジョンとは?

コリジョンは、その性質上、プレイヤーやNPCなどを侵入させないために存在します。

そのため、どんなことをされても侵入させない!という設定になっています。

しかしこのコリジョンは、人の手で作られたものであるため、どうしても針の穴を通すようなプレイをした場合に抜けてしまう場合があります。

進行不能になる可能性が高い

それが致命傷的でなければいいのですが、時に侵入不可能の場所から通常ではいけない場所に先に侵入してしまうことができたりと、開発者の意図とはことなるプレイをされるため、ゲームデータにも多大なダメージを与えることがあります。

さて、本題としてこのコリジョン抜けが起きる可能性があるパターンとしては、3パターンほど考えられます。

コリジョンとコリジョンに隙間がある

隙間に強引には入れた場合は、かなり危険です。青 コリジョン 緑 キャラクター 赤 接触部分

コリジョンとコリジョンの間にキャラクターが入った場合に、起きえる状態です。

コリジョンの隙間がキャラクターと同サイズ以上であれば問題ありませんが、隙間に対して、キャラクターのコリジョンが大きい場合で、コリジョンの間に挟まれた場合に起きる可能性があります。

これは、コリジョンが判定を行い強制移動させようとして侵入を阻みますが、その判定が連続で行われるため、スッと、コリジョン内に入れてしまう可能性があります。

特に角でキャラクターにアクションをとらせていたりすると起こる可能性があります。

負荷を与えてコリジョンの判定フレームを超える当たり方をする

何かしらの処理コストがかかることを行い、その隙にコリジョンを突破する可能性があります。青 コリジョン 緑 プレイヤー 深緑 負荷

作ったキャラクターに準ずるところがありますが、処理負荷を与えて移動幅&手数が多いキャラクターに起きる可能性があります。

処理負荷をあげることによって、移動が大きいと手数をこなすとコリジョン判定よりも早く移動が来てしまう場合にコリジョン抜けが発生する可能性があります。

キャラクターに強制移動の技がある

左の緑を投げ役、右の深緑を投げられ役とし、青はコリジョンとします。
投げを使用する際に、キャラクターにアタッチする場合があるので、その際に、投げられ役をコリジョン内に移動させてしまうことがあります

強制移動というのは、アクションゲームであれば大抵が投げ技がこれが当たります。

投げ技は、掴んだ方、掴まれた方のアクションが存在しますが、そのアクションへ移行する際に、強制的にモーションを適応させている場合があります。

そのため、例えば、投げを使っている側は、前方に手を伸ばし、敵の首を掴んでいる、状態でそのあとに前方に投げるなどの技だった場合、これもデータや処理によりますが、手を伸ばした際に投げ役のキャラクターはコリジョンの外にいる可能性があります。

コリジョンによって、見た目と当たりの違いがでる

これが、実は、コリジョン抜けを発生させやすい原因でもありますし、処理を考えなければならない原因でもあります。

最初の方にお話しましたが、コリジョンは複雑なほど処理が重いという性質があります。

そのため、軽くするため、見た目(当たり)を簡易的なものに変える必要があります。

ですので、この簡易的なものにした際に外見との差を感じるということにもなります。

簡易的であれば、あるほど処理は軽くなりますが、その分、形への正確な当たりは反映させることができません。

3パターンのコリジョンの抜け方は、デバックプレイする際には必ず役に立つと思うので、頭にいれてデバックしてみると良いです。

ゲーム制作者になるための3Dグラフィックス技術改訂3版 [ 西川善司 ]

価格:4,400円
(2022/9/19 23:25時点)
感想(0件)

(Visited 1,214 times, 1 visits today)

コメント

タイトルとURLをコピーしました