Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_mass_properties()
この関数を使用して、物理が有効なインスタンスのカスタムの質量 (phy_mass) と慣性 (phy_inertia) の値を設定できます。通常、インスタンスの質量、重心、および慣性は、バインドされたフィクスチャの表面積とそれらの密度の組み合わせを使用して計算されます。ただし、非常に特殊な場合には、重心をオフセットしたり、慣性を変更したりする必要がある場合があります。その場合は、この関数を使用します。質量は実世界の重量(つまり、キログラム)で計算されるため、モデル化するものに対して常に現実的な値を維持するようにしてください。したがって、物理オブジェクトが人を表すことを意図している場合、その質量は約70キロになります。
重心( phy_com_x / phy_com_y )は、定義した1つまたは複数のフィクスチャの形状に基づいて自動的に計算されます。これがどこにあるかを一般的に理解するには、作成するフィクスチャと同じ形状のスプライトがある場合は、[重心]オプションを選択すると、重心もほぼどこにあるかがわかります。ただし、これが正しくない場合や、物理オブジェクトから特定の効果を探している場合があります。その場合、この関数を使用して、重心のx座標とy座標を変更することもできます。これらはローカル値であるため、0,0は、フィクスチャがインスタンス(インスタンスの起点)にバインドされるポイントです。したがって、重心が-4,0の場合、重心は原点の左側に移動します。
慣性に関しては、これは基本的にインスタンスの方向と速度の変化に対する耐性を定義するため、慣性が高いほど耐性が高くなり、慣性が低いと耐性が低くなります(慣性と質量を負の値にすることはできません!)。
physics_mass_properties(mass, local_center_x, local_center_y, inertia)
physics_mass_properties(phy_mass, -10, -10, phy_inertia);
上記のコードは、質量と慣性の値はそのままで、物理的な体の重心を左にシフトします。