[[cg:start|CG用語集トップ]] > [[cg:animation:start|第4章 アニメーション]] ====== 衝突判定 ====== ===== 概要 ===== 衝突判定は、物体同士が接触しているか、重なっているか、または交差しているかを調べる処理である。アニメーションやゲームでは、物体がめり込まないようにしたり、当たり判定を行ったりするために使われる。[[cg:animation:axis_aligned_bounding_box|軸平行バウンディングボックス]]と関係が深い。 ===== 詳しい説明 ===== 複雑な形状同士をそのまま判定すると計算量が大きくなる。そのため、まず単純な形で物体を囲み、大まかにぶつかっているかを調べることが多い。必要な場合だけ詳細な形状で判定すれば、処理を軽くできる。 {{:cg:figures:chapter04:fig_4_32_collision_and_aabb.png?600|衝突判定と軸平行バウンディングボックス}} ===== CG制作との関係 ===== CGアニメーションでは、布が体を突き抜けないようにする、物体が床に接する、キャラクター同士が不自然に重ならないようにするなどの場面で必要になる。 ===== ゲーム開発との関係 ===== ゲームでは、攻撃が敵に当たったか、プレイヤーが壁にぶつかったか、弾が障害物に当たったかなどを調べる。[[cg:animation:game_engine|ゲームエンジン]]では、物理エンジンや当たり判定システムとして組み込まれていることが多い。 ===== 制作・実装での例 ===== まずAABBや球で大まかに判定し、重なっている可能性がある場合だけポリゴンやカプセルなどで詳しく判定する。これは処理負荷を下げるための基本的な考え方である。 ===== 検定対策ポイント ===== 衝突判定は、物体同士の接触や交差を調べる処理である。表示するだけのレンダリング処理ではなく、動きや物理シミュレーションに関係する点を押さえる。 ===== 関連用語 ===== * [[cg:animation:axis_aligned_bounding_box|軸平行バウンディングボックス]] * [[cg:animation:game_engine|ゲームエンジン]] * [[cg:animation:real_time_animation|リアルタイムアニメーション]] * [[cg:animation:collision_detection|衝突判定]] * [[cg:rendering:bounding_volume|バウンディングボリューム]] ===== タグ ===== * CGエンジニア検定 * 第4章 ---- [[cg:animation:start|← 第4章 アニメーション の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]