gppcontact

オブジェクトの物理衝突情報を作成する

gppcontact var,objid

var      : 結果が代入される変数
objid(0) : オブジェクトID

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

解説

物理設定を行なった3Dオブジェクトの正確な衝突の情報を作成します。
objidで指定された3Dオブジェクトが他のオブジェクトに衝突した際の情報をすべて作成します。
objidで指定された3Dオブジェクトは、必ずgppbind命令により物理設定を行っておく必要があります。
また、setcoli命令により衝突を検知する対象となるオブジェクトのコリジョングループを適切に設定しておく必要があります。
varで指定された変数には衝突情報が作成された個数が整数値として代入されます。
エラーが発生した場合は、マイナス値が代入されます。
衝突情報は複数作成されることがあります。これは、複数のオブジェクトと同時に衝突することがあるためです。変数に0が代入された場合は、衝突しているオブジェクトがないことを示します。
実際の衝突情報は、gppinfo命令により取得することができます。衝突情報として、衝突した対象のオブジェクトID、衝突した座標、衝突の強さなどを取得することができます。
衝突情報はオブジェクトIDごとに作成され、新たにgppcontact命令を実行するまでは保持されます。
gppcontact命令は、物理挙動の過程で発生した衝突の詳細を得るための命令です。簡易的な衝突を知るだけであれば、getcoli命令を代替で利用することがてきます。
また、あくまでも物理挙動で移動を行った際に衝突した(他のオブジェクトにめり込んだ)という情報をもとにしているため、完全に動きのない状態(単に接しているだけの状態)では衝突情報が作成されないので注意してください。

関連項目

gppbindノードに標準的な物理特性を設定(hgimg4)
gppinfoオブジェクトの物理衝突情報を取得する(hgimg4)
getcoliオブジェクトのコリジョン判定(hgimg4)
setcoliオブジェクトのコリジョン設定(hgimg4)
gppraytestベクトル上の物理衝突情報を取得する(hgimg4)

サンプル逆引き (1)

physics_1.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