【FPS開発進捗】大きな敵キャラの当たり判定に関する話(コミカルサラ その7)
こんばんは。
今回は開発中のローグライトFPS「コミカルサラ」の進捗&裏話的な話題で
大きな敵キャラの当たり判定をどう設定するか?
という点でちょっと悩んだ話をしてみようと思います。
大きな敵キャラの当たり判定どうするか問題
はじめに、私は今まで「大きな敵キャラ」はあまり作ったことがなかったのですがコミカルサラではそういう大きい敵の制作にチャレンジしてみようと思いました。
ただそこで問題になったのが大きな敵の場合は当たり判定をどう設定するのがいいか?ということです。
まず小さな敵(主人公より小さいか同じくらいの大きさ)の場合であれば、当たり判定はかなり雑に設定しても全く問題ありません。
例えば主人公とほぼ同じ大きさのゾンビ君の場合は、下記のようにカプセル型の当たり判定1つと弱点用の球型の当たり判定1つの計2個で済みます(※見づらいですが緑色の部分が敵の当たり判定です)。
しかし主人公よりもずっと大きな敵の場合はどうでしょうか?例えば↑のゾンビ君をめちゃくちゃ大きくした場合を考えてみると、先ほどのような雑な当たり判定ではさすがに大雑把になりすぎます。
つまり大きな敵の場合はもうちょっと細かく当たり判定を設定したいよねという話になってくるわけです。
そうだ、ボーンに当たり判定を仕込もう
そこで解決策をいくつか考えてみたところ、一番手っ取り早い方法はボーンに当たり判定を仕込むことかなと思いました。
具体的にはボーンのゲームオブジェクトに球型やカプセル型のコライダーをつけて、そこに攻撃が当たったらキャラクターにダメージがいくような仕組みにすればいいってわけですね。
小型の敵キャラと比べると少々設定に手間がかかりますが、この方法で割と自然な当たり判定をもつ大型の敵キャラを作ることができました。
問題その2:複数の当たり判定に同時に同じ攻撃が当たると大ダメージになる
ただ当たり判定自体は自然に設定できたのですが、テストプレイしてみると次なる問題が判明しました。それは複数の当たり判定に同時に同じ攻撃が当たると大ダメージになってしまう問題です。
先ほどの大型エイリアンのように複数の当たり判定を設定したキャラクターでは、同じ攻撃が複数の当たり判定に当たるとその分だけダメージが増えてしまいます。これだと難易度がかなりヌルゲーになってしまいつまらなくなってしまうので何とかしないといけません。
そこで攻撃が当たったら敵キャラを一瞬だけ無敵にする処理を作って対処しました。…が、それだけだと不十分でした。
なぜなら例えばショットガンのように弾がばらける攻撃の場合、普通に無敵処理を入れてしまうと同時に着弾しても弾1個分のダメージしか通らなくなってしまい、武器がかなり弱くなってしまうことが判明したからです。
そんなわけで一つの弾で一度に複数の当たり判定にダメージを与える可能性のある武器(爆発武器や弾が大きい武器など)の攻撃を受けた場合だけ無敵時間が発生するようにしました。とりあえずはこれで対処できたと思います。
おわりに
以上、今回はキャラの当たり判定に関するちょっとした裏話でした。ご覧いただきありがとうございました。
当たり判定はとても地味な要素ですが、FPSだとかなり重要になってくるので工夫しておいて損はないかなと思います。引き続き敵キャラの作成などできる作業を頑張りたいですね。
あと新作FPSのほうのリリースも3週間後に迫ってきているので、もう一度最終チェックをするなどしてリリースに備えようと思います。6月はますます忙しくなりそうです。
ではまた何かあれば投稿します。