オブジェクトのコリジョン判定
getcoli val,id,distance,startid,numid
val : 結果が代入される変数名 id(0) : オブジェクトID distance(1.0) : 衝突を検出する範囲(実数値) startid(0) : 検出を開始するオブジェクトID numid(-1) : 検出の対象となるオブジェクトIDの数(-1=すべて)
(プラグイン / モジュール : HGIMG3/HGIMG4共通)
指定したオブジェクトが持つコリジョン情報をもとに、そのオブジェクトが衝突している別なオブジェクトのIDを調べます。 distanceは、衝突する範囲(半径)を実数値で指定します。 衝突が検出された場合は、変数にオブジェクトIDが代入されます。 何も衝突が検出されなかった場合は、-1が代入されます。 startidとnumidパラメーターにより、衝突を検出するオブジェクトIDの範囲を指定することができます。 startidに検出を開始するオブジェクトIDを指定して、numidにオブジェクトIDの個数を指定します。numidを省略するかマイナス値の場合は、開始オブジェクトID以降すべてが対象になります。 たとえば、startidが100、numidが50の場合は、オブジェクトIDが100~149までの範囲にあるオブジェクトが判定の対象となります。通常は、パラメーターを省略することですべてのオブジェクトが検出の対象となります。指定された範囲のオブジェクトIDだけに限定したい時に使用してください。 HGIMG4では、ライトやカメラなどもオブジェクトIDとして扱われますが、IDの範囲が設定できるものは3Dモデルや2Dスプライトのオブジェクトのみに限定されますのでご注意ください。 HGIMG4では、distanceにマイナス値を指定した場合、3Dモデルが持つ衝突範囲(バウンディングボックス)にdistanceを掛けた値をもとに衝突検出を行ないます。 たとえば、-1.5を指定した場合は、衝突範囲を1.5倍に拡大した状態で、衝突検出が行なわれます。また、より正確な衝突の情報を作成するために、gppcontact命令を使用することが可能です。
| setcoli | オブジェクトのコリジョン設定 | (HGIMG3/HGIMG4共通) |
| findobj | オブジェクト検索 | (HGIMG3/HGIMG4共通) |
| nextobj | 次のオブジェクト検索 | (HGIMG3/HGIMG4共通) |
| gppcontact | オブジェクトの物理衝突情報を作成する | (hgimg4) |
| プラグイン / モジュール | HGIMG3/HGIMG4共通 |
| バージョン | 3.7 |
| 作成日 | 2022/06/07 |
| 著作者 | onitama |
| URL | http://www.onionsoft.net/ |
| 備考 | hgimg3.as/hgimg4.as/hgimg4dx.asのいずれかをインクルードすること。 |
| タイプ | 拡張命令 |
| グループ | 拡張画面制御命令 |
| 対応環境 |
|
| 移植のヒント | HGIMG4DXはDirectX9、HGIMG4はOpenGL3.1環境で動作 |
| hs ファイル | hsphelp\hgimg_common.hs |