タグ

当たり判定に関するedo_m18のブックマーク (6)

  • ゲームつくろ~質問箱 [One Topic All View / Re[3]: 直円錐と直線の衝突判定 / Page: 0]

  • その13 OBBとOBBの衝突

    ホーム<ゲームつくろー!<衝突判定編< OBBとOBBの衝突 3D衝突編 その13 OBBとOBBの衝突 衝突の丸の1つ「OBBとOBB」の衝突です。大きさの違うお互いに3次元的に回転した直方体が衝突しているかどうかを調べるというのはやはり簡単ではありませんが、これができると多種多様な方面で役に立ちます。OBB同士の衝突として主流なのは「分離軸判定」と呼ばれる方法でして、ここでもそれについて見ていきます。ちょっと深呼吸してご覧下さい(^-^; ① 「分離軸」判定とは? OBBの衝突には「分離軸」という物が登場します。これがいったい何なのか?まずは下の図をご覧下さい。 上のOBBは明らかに衝突していません。この時、両方のOBBを分ける直線が「絶対に」存在します。この直線は、ちょっと小難しい言葉で言うと分離超平面(Separating hyperplane)と呼ばれています。直線なのに平面と

  • UnityのPhysics.CapsuleCast()について - プログラマ専用SNS ミクプラ

    お久しぶりです。覚えてる方がおられるでしょうか。 タイトルの通り、Physics.CapsuleCast()についての質問なのですが、 Unityのリファレンス(英語)では、この関数は コード: static bool CapsuleCast(Vector3 point1, Vector3 point2, float radius, Vector3 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers); となっています。 point1からpoint2まで、半径radiusの大きさのカプセルを配置する、 というのはわかるのですが、directionとdistanceの意味がいまいち理解できません。 リファレンスでは、directionの方向にdistanceの長さだけカプセルをスイー

  • その48 マウスカーソルで地面を指す

    ホーム < ゲームつくろー! < DirectX技術編 その48 スクリーン座標でワールド空間の地面を指す マウスカーソルを用いる3DのRPGなどでは、カーソルで当たり前のように宝箱を指すことができます。でも良く考えてみると不思議です。マウスカーソルの座標は2次元のスクリーン座標(クライアント座標)です。それに対して宝箱は3次元のワールド空間座標にあります。座標系がぜんぜん違うのに遠近感も考慮して正しく指す事ができる。裏ではいったい何をしているのでしょうか?秘密はスクリーン座標からワールド座標を求めると言う、通常とは逆方向の変換にあります。 この章では、スクリーン座標をワールド座標に変換する方法について見ていき、スクリーンに映っている床をワールド座標レベルで指し示す方法について検討してみましょう。 ① 決め手は「逆行列」 ワールド座標に点Pがあったとします。その点を何らかの行列Mによって移

  • 第55回 平面上における三角形の内側か外側かを外積で調べる | gihyo.jp

    お題は、xy平面の三角形について考える。すると、xy平面上のベクトルの外積は、角度が必ずxy平面と垂直つまりz軸と平行になる。つぎにその方向は、ふたつのベクトルが時計回りの位置にあれば、右ネジの向きであるz軸の正方向だ。逆に、xy平面上のふたつのベクトルAとBの外積A×Bがz軸正方向だったとすると、ベクトルAの右側にBがある。 そこで、三角形の3辺を時計回りの向きのベクトルと考えよう。調べる座標が三角形の内側にある場合、1辺のベクトルとその始点からその座標へのベクトルとの外積を求める(図2⁠)⁠。3辺のベクトルすべてについて、調べる座標のベクトルが右側にあれば、すなわちその座標は三角形の内側になる。 図2 外積で2次元平面上の座標が三角形の内側にあるかどうかを調べる では早速、ふたつのベクトルを与えて、右ネジの位置にあるかどうか調べる関数(xIsRight())を定めよう。ベクトルはxy平

    第55回 平面上における三角形の内側か外側かを外積で調べる | gihyo.jp
  • 当たり判定 - ゲームプログラミングWiki

    解説 来当たり判定は格闘ゲームとかにも応用できて共通で書こうとも思いました。 ですが、当たり判定といったらシューティングゲームというくらいに重要性が高いのでここで書きたいと思います. この当たり判定はシューティングゲームにおいて最重要とされる話題です。 今回説明する内容は毎週金曜日にある C3 ゼミで発表した内容です。 尚、今回説明する当たり判定は数学が結構出てきます。気を引き締めましょう。 ↑ 二点間距離を用いた方法 多分誰もが最初に考え付くのがこの方法ではないでしょうか? 二点間距離と円の半径を用いて当たり判定を実装します。 自分も最初この方法を使いました。 敵の弾の座標を(X1,Y1),弾の半径をR1、自機を(X0,Y0)、自機の半径をR0とします。 半径R1、R0の和が距離に等しいときにちょうど円同士が触れ合い、和が距離以下のときにHITするということです。 bool IsHit

  • 1