線分とモデルの当たり判定
val = MV1CollCheck_Line(MHandle, FrameIndex, PosStart, PosEnd)
int MHandle : モデルのハンドル int FrameIndex : コリジョンの情報を更新するフレームの番号 VECTOR PosStart : 当たり判定で使用する線分の始点 VECTOR PosEnd : 当たり判定で使用する線分の終点
(プラグイン / モジュール : DxLibW)
MHandle のモデルハンドルが示すモデルの指定のフレーム( 若しくはモデル全体 )に含まれるポリゴンと線分との当たり判定を行います。
( この関数でモデルのポリゴンと線分との当たり判定を行う場合は対象となるフレーム( 若しくはモデル全体 )に対して事前に MV1SetupCollInfo を呼んで準備を行っておく必要があります、
また、MV1SetupCollInfo で FrameIndex を -1 にした場合は、この関数でも FrameIndex を -1 にする必要があります )
戻り値である MV1_COLL_RESULT_POLY は当たり判定の結果が代入されている構造体で、以下のような内容になっています。
// コリジョン結果代入用ポリゴン
struct MV1_COLL_RESULT_POLY
{
// どれかのポリゴンに当たったかどうか
// ( 1:当たった 0:当たらなかった )
int HitFlag ;
// 線分とポリゴンが交差した座標
VECTOR HitPosition ;
// 当たったポリゴンが含まれるフレームの番号
int FrameIndex ;
// 当たったポリゴンのフレーム内番号
int PolygonIndex ;
// 当たったポリゴンが使用しているマテリアルの番号
int MaterialIndex ;
// 当たったポリゴンを形成する三点の座標
VECTOR Position[ 3 ] ;
// 当たったポリゴンの法線
VECTOR Normal ;
} ;
注釈の通りですが、
どれかのポリゴンに当たったかどうかはメンバ変数 HitFlag が 1 かどうかで判断することができ、
線分とポリゴンが交差した座標は HitPosition に代入されます。
当たったポリゴンが含まれるメッシュを所有しているフレームの番号はメンバ変数 FrameIndex に、
当たったポリゴンが使用しているマテリアルの番号はメンバ変数 MaterialIndex に、
当たったポリゴンを形成する三頂点の座標はメンバ配列 Position に、
当たったポリゴンの法線はメンバ変数 Normal にそれぞれ代入されます。
※ この関数は #cfuncst で宣言されています。
戻り値は構造体 MV1_COLL_RESULT_POLY (100バイト) へのポインタです。
dupptr で変数にマッピングして使用してください。
| プラグイン / モジュール | DxLibW |
| バージョン | 3.24f |
| 作成日 | 2026/04/12 |
| 著作者 | DxLib: Takumi Yamada / HSP binding: IronHSP Project |
| URL | https://dxlib.xsrv.jp/ |
| 備考 | hspdxlib.as をインクルードして使用 |
| タイプ | DxLib ゲームライブラリ |
| グループ | DxLib 3Dモデル |
| 対応環境 |
|
| hs ファイル | hsphelp\hspdxlib.hs |