

ゲームのステージとかでの移動範囲限界とかを設けたり、箱の上に乗ったりしたいです。

そのために3Dの物体が接触しているという情報を受け取る必要があります。

2Dの場合は三平方の定理などの資料が見つかるのですが、3Dでの資料が見つからないです。

3Dの場合どのように物体の接触を感知しているのでしょうか。


CC BY-SA 4.0
2018-10-05T06:18:18.887
48997
2018-10-09T02:10:49.903
30381
question
c++ opengl
OpenGLで当たり判定をつけたい


2Dゲームの場合、キャラクターを覆うような四角形を定義し、四角形同士が重なっているかどうかで大雑把に衝突しているかどうかを判定していると思います。  
その後、キャラクターの形にあった判定を使用した細かな衝突判定を行うと思います。

3Dでも同じようにキャラクターを囲うような立方体AABB(Axis-Aligned Bounding
Box)を定義して、その立方体同士が重なっているかどうかで衝突判定をする方法があります。  
その後、キャラクターの各パーツごとのAABBによる衝突判定を繰り返し、最終的にポリゴン単位での衝突判定まで落とし込んだりしますが、衝突判定の精度によってどこまでやるかが変わるでしょう。

細かな計算式については、ここでは説明しきれませんので、書籍の購入などを検討してください。  
私が勉強や開発に利用しているのは、  
オライリー先生の「ゲーム3D数学」<https://www.oreilly.co.jp/books/9784873113777/>  
です。

余談ですが、四角を使用した判定が多用されている理由は、「一番計算コストが少なく済むから」です。

以上ですが、お求めの回答になっているでしょうか？


CC BY-SA 4.0
2018-10-09T02:10:49.903
49077
2018-10-09T02:10:49.903
17014
48997
answer