自作物理エンジンの開発 using Away3D 4.0 | Photoshop CC Tutorials
今回から下記の本を参考にして簡単な物理エンジンを作成してみようと思います。
物理を取り入れることでパズルゲームなどと合体させて
いままでにないゲームができればと思い勉強してみました。

参考文献:ゲーム開発のための物理シミュレーション入門
$ピック社長のブログ

下の画像はこの本のサンプルの一部の「カークラッシュ」ですが、これを作成してみようと思います。
$ピック社長のブログ

まずは剛体クラスを作成しました。
package  
{
import away3d.core.math.Quaternion;
import flash.geom.Matrix3D;
import flash.geom.Vector3D;
/**
* 剛体クラス
*/
public class RigidBody
{
public var fMass:Number; // total mass (constant)
public var mInertia:Matrix3D; // mass moment of inertia in body coordinates (constant)
public var mInertiaInverse:Matrix3D;// inverse of mass moment of inertia matrix (constant)

public var vPosition:Vector3D; // position in earth coordinates
public var vVelocity:Vector3D; // velocity in earth coordinates
public var vVelocityBody:Vector3D; // velocity in body coordinates
public var vAcceleration:Vector3D; // acceleration of cg in earth space
public var vAngularAcceleration:Vector3D; //angular acceleration in body coordinates
public var vAngularVelocity:Vector3D;// angular velocity in body coordinates
public var vEulerAngles:Vector3D; // Euler angles in body coordinates
public var fSpeed:Number; // speed (magnitude of the velocity)

public var qOrientation:Quaternion; // orientation in earth coordinates

public var vForces:Vector3D // total force on body
public var vMoments:Vector3D; // total moment (torque) on body

public var mIeInverse:Matrix3D; // inverse of moment of inertia in earth coordinates

public var vAngularVelocityGlobal:Vector3D; // angular velocity in terms of earth fixed coords.
public var vAngularAccelerationGlobal:Vector3D; // angular acceleration in terms of earth fixed coords.

public var fRadius:Number;
public var vVertexList:Array = new Array(8);

public function RigidBody()
{

}

}

}


下記はこのプログラムで使われる物理用語です。
mass → 質量
inertia → 慣性
moment of inertia → 慣性モーメント
velocity → 速度
acceleration → 加速度
angular acceleration → 角加速度
speed → 速さ
angularVelocity → 角速度
Euler angles → オイラー角
orientation → 方位, 方向
quaternion → 四元数
force → 力
gravity → 重力
inverse → 逆数
radius → 半径