軸並行境界ボックス方式(AABB方式)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/13 13:05 UTC 版)
「衝突判定」の記事における「軸並行境界ボックス方式(AABB方式)」の解説
特に3D空間で衝突判定を取る場合において、上記の方式では管理が面倒になる場合は「軸並行境界ボックス方式(Axis Aligned Bounding Box, AABB方式)」を使う。 ヒットボックス方式の「基本的な方法」ではオブジェクトのバウンディングボックス(境界ボックス)の左上の点をオブジェクト自体の座標とみなし、そこから右下までの長さを取るのが一般的なのに対して、AABB方式ではヒットボックスの中心座標をオブジェクト自体の座標とみなし、そこからxyz軸方向に±何mの広がりがある、という表し方をする。ヒットボックスの中心を(x,y,z), 双方向への広がりの大きさを(rx,ry,rz)とすると、このヒットボックスは x方向については x-rx ~ x+rx, y方向には y-ry ~ y+ry, z方向には z-rz ~ z+rz の範囲を占める。軸並行境界ボックス方式を用いてふたつのヒットボックスA・Bについて衝突判定を行うには、以下のようになる。 ( A x − A r x ≤ B x + B r x ) ∧ ( B x − B r x ≤ A x + A r x ) {\displaystyle (A_{x}-A_{rx}\leq B_{x}+B_{rx})\land (B_{x}-B_{rx}\leq A_{x}+A_{rx})} ∧ ( A y − A r y ≤ B y + B r y ) ∧ ( B y − B r y ≤ A y + A r y ) {\displaystyle \land (A_{y}-A_{ry}\leq B_{y}+B_{ry})\land (B_{y}-B_{ry}\leq A_{y}+A_{ry})} ∧ ( A z − A r z ≤ B z + B r z ) ∧ ( B z − B r z ≤ A z + A r z ) {\displaystyle \land (A_{z}-A_{rz}\leq B_{z}+B_{rz})\land (B_{z}-B_{rz}\leq A_{z}+A_{rz})} AABBは大雑把な衝突判定や可視判定で使われることがある。 AABB方式は2Dの衝突判定を取る場合でも使われることがある。特に四角いヒットボックスと円形のヒットボックスの衝突判定を取る時は、四角いヒットボックスの座標をAABB方式で管理した方が楽である。
※この「軸並行境界ボックス方式(AABB方式)」の解説は、「衝突判定」の解説の一部です。
「軸並行境界ボックス方式(AABB方式)」を含む「衝突判定」の記事については、「衝突判定」の概要を参照ください。
- 軸並行境界ボックス方式のページへのリンク