概要:現役ゲームプランナーの視点から「アクションゲームの当たり判定」について紹介!
プロフィール:わたなべ りょう
▼略歴
・明治大学政治経済学部卒
・株式会社カプコンに4年半勤務
・ゲームプランナー/アクションプランナー
・フリーランスとして独立
・特技は「テコンドー」「カポエイラ」
▼制作実績
・モンスターハンター ライズ
・モンスターハンター エクスプロア
・小説「LANCASTER《ランカスター》」
アクションゲームの当たり判定(コリジョン)とは
具体的には、以下の通りです。
アクションゲームの当たり判定とは、簡単に言えば、「何と何が衝突したかの判定」のことです。例えば、アクションゲームに出てくるドラゴンに剣を当てた際、ドラゴンにダメージが入ると思います。ダメージが入るのは「ドラゴン」と「剣」それぞれに当たり判定が設定されているからですよ。
— わたなべ りょう@GamePlanner (@Studio_Creeat) August 18, 2021
アクションゲームの当たり判定とは、簡単に言えば、「何と何が衝突したかの判定」のことです。例えば、アクションゲームに出てくるドラゴンに剣を当てた際、ドラゴンにダメージが入ると思います。ダメージが入るのは「ドラゴン」と「剣」それぞれに当たり判定が設定されているからですよ。
当たり判定の形状はさまざま
例えば、「Shpere(球体)」「Cylinder(円柱)」「Box(正方形)」といった感じです。
ゲームに出てくる敵または武器の内部には、こういった形状の当たり判定が仕込まれています。
2つの当たり判定が衝突することで「ダメージが入ったかどうか」が判定されます。
例えば、以下の通りです。
※引用元:Unreal Engine JP
※動画09:57~16:40
このように、2つの当たり判定が接触することで、ダメージを与えたり地面の上を歩けたりする感じです。
当たり判定、すなわち、コリジョンの基本概念は以上です。
アクションゲームにおける当たり判定の活用事例
敵または武器だけではないですよ。
アクションゲームでは、色々な所で当たり判定が使われています。
例えば、こんな感じです。
・オブジェクト(建物、電柱、看板etc)
・ステージ(砂漠、雪原、山岳etc)
・乗り物(車、バイクetc)
といった感じですね。
電柱に当たったらそこで足が止まるのは、当たり判定が設定されているからです。
また、険しい山岳ステージを上ったり下りたりできるのも当たり判定が設定されているからです。
とはいえ、全てに当たり判定をつけるわけではない
ゲームをしていると、電柱・標識など目の前にオブジェクトがあるのに通り抜けられてしまうことってありますよね? これは意図的にそうしています。なぜなら、ゲーム内の全てのオブジェクトにコリジョンを付けるとなると、単純に負荷が高くなってしまうからですね。
— わたなべ りょう@GamePlanner (@Studio_Creeat) August 18, 2021
ゲームをしていると、電柱・標識など目の前にオブジェクトがあるのに通り抜けられてしまうことってありますよね? これは意図的にそうしています。なぜなら、ゲーム内の全てのオブジェクトにコリジョンを付けるとなると、単純に負荷が高くなってしまうからですね。
小さいオブジェクトは基本的に当たり判定は付けない
例えば、こんな感じですね。
- 道端に転がっている空き缶
- 地面に生えている草花
- 小さな石ころ
こういった小物には、当たり判定を付けないですね。
なぜなら、当たり判定を付けてしまうと、プレイヤーが走っている際に突っかかってしまうからです。
基本的には、背景の一部として処理する感じになると思います。
尚、ゲームによっては小物にまで当たり判定を取って、接触したらオブジェクトが壊れるといった丁寧な作り方をしているゲームもあります。
当たり判定(コリジョン)に関するまとめ
最後にもう一度まとめておきますね。
①接触しているかどうかを判定する機能のこと
②モンスターを攻撃した際にダメージを与えられるのは当たり判定があるため
③地面を歩いたり建物にぶつかったりできるのも当たり判定のおかげ
④とはいえ、全てのオブジェクトに当たり判定を付けるわけではない
当たり判定の基礎知識としては、これくらいあれば、イイと思いますよ。
尚、開発現場では、さまざまなテクニックを駆使して、コリジョンの設定をしています。
アクションゲームの作り方についてもう少し深く勉強したい方は、下記いずれかの技術書を持っておくと捗りますよ。
もし、参考書を見ても分からない場合は、TechAcademy 無料体験 で勉強するのもありですね。
ゲーム開発コースがあるので、基礎だけ教えてもらえば、参考書の理解も捗るかと思います。
今回はこんな感じで終わりたいと思います。