gppbind

ノードに標準的な物理特性を設定

gppbind objid,mass,friction,option

objid(0)      : オブジェクトID
mass(1)       : 重さ
friction(0.5) : 摩擦係数
option(0)     : 設定オプション

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

解説

ノードオブジェクトに対して、基本的な物理設定を行ないます。
massパラメーターは物体の重さ。frictionパラメーターは摩擦係数です。値を省略した場合は、デフォルト値が使用されます。
重さ(mass)を0にすることで静的剛体(衝突はするが、動かない)として設定されます。
それ以外の場合は、物理法則に従って床のある場所まで落下します。

gppbind命令は基本的な物理特性だけを設定します。詳細な物理パラメーターを設定する場合には、gppset命令を使用して設定を行ってください。

※物理挙動を設定する場合は、必ず床(地面)となる部分を作成しておいてください。
gpfloor命令によって生成された床に標準的な物理特性を設定することで、固定された床面を生成することができます。
床が存在しなかった場合、物体は永遠に落下を続けることになります。

物理設定を行なったノードオブジェクトは、それ以降自立して動作するようになり、setposなどの座標変更は無効となります。
物体に力を加えたい場合は、gppapply命令を使用してください。

optionパラメーターにより設定時のオプションを付加します。以下のマクロを指定することができます。

	  opt値               |  内容
	--------------------------------------------------------------

	  GPPBIND_NOSCALE        コリジョンにノードのスケールを反映させない
	  GPPBIND_MESH           コリジョンとしてノードのモデルを反映させる

ノードオブジェクトに物理設定を行なうと、接触判定を行う情報(コリジョン)が作成されます。

箱ノード、床ノード、板ノードはそれぞれの形状をコリジョンとして扱います。optionに、GPPBIND_NOSCALEを指定した場合は、スケールが反映されていないもともとの形状がコリジョンとなります。
3Dモデルノードは、標準ではモデル全体を覆うスフィア(球体)をコリジョンとして作成します。ただし、optionにGPPBIND_MESHを指定した場合は、モデルの形状そのものをコリジョンとして扱います。ただし、複雑なモデル形状をコリジョンにした場合、接触判定にかかる負荷が増大します。
コリジョンは、モデルの形状とは独立した情報となります。コリジョンが作成された後は、ノードのスケール値は反映されませんので注意してください。

関連項目

gppapplyノードに物理的な力を適用する(hgimg4)
gppsetノードの物理パラメーターを設定(hgimg4)

サンプル逆引き (6)

freemesh.hsp
physics_1.hsp
physics_2.hsp
pronama_box.hsp
test11.hsp
test13.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