gppraytest

ベクトル上の物理衝突情報を取得する

gppraytest var,objid,distance

var      : 検出したオブジェクトID値が代入される変数名
objid(0)      : オブジェクトID
distance(100) : ベクトルの長さ

(プラグイン / モジュール : hgimg4)

解説

物理設定を行なった3Dオブジェクトの中で、指定した線分に衝突するオブジェクトの情報を取得します。
objidで指定した3Dノードを持つオブジェクトを基点として、オブジェクトの向いている方向からdistanceで指定された距離の間で最初に衝突する3DオブジェクトのオブジェクトIDを調査します。
objidで指定されるオブジェクトは、物理設定されている必要はありません。カメラやnullノード等であっても問題ありません。
varで指定された変数に結果が代入されます。何らかのエラーが発生した場合は、マイナス値が代入されます。
線分に衝突するオブジェクトがあった場合は、そのオブジェクトIDが代入されます。何も衝突するオブジェクトがなかった場合は、0が代入されます。
衝突があった場合は、さらにobjidで指定されたオブジェクトのノードワーク値(work,work2)に詳細な情報が格納されます。
ノードワーク値は、getwork及びgetwork2命令により取得することができます。それぞれに設定される内容は以下の通りです。

	ノードワーク値       | 設定される内容
	--------------------------------------------------------------
	work                   衝突が発生したX,Y,Z座標
	work2                  衝突した面の法線ベクトルX,Y,Z値

gppraytest命令は、物理設定されたオブジェクトすべてが衝突の対象となります。コリジョングループの設定は考慮されません。

関連項目

gppcontactオブジェクトの物理衝突情報を作成する(hgimg4)
getcoliオブジェクトのコリジョン判定(hgimg4)
getworkworkグループ情報を取得(hgimg4)
getwork2ノードワーク値2を取得(hgimg4)

サンプル逆引き (1)

physics_2.hsp

情報

プラグイン / モジュールhgimg4
バージョン3.6
作成日2021/01/06
著作者onitama
URLhttp://www.onionsoft.net/
備考hgimg4.asまたはhgimg4dx.asをインクルードすること。
タイプ拡張命令
グループ拡張画面制御命令
対応環境
  • Windows 版 HSP
移植のヒントWindows+OpenGL3.1以降/DirectX9システム上で動作します。
hs ファイルhsphelp\hgimg4.hs