ToyStudioの表示に使用している座標変換の詳細です。
OpenGLなどと同じ右手座標系で、各座標軸の方向は以下のようになっています。
ToyStudioではベクトルとして
行ベクトル形式を使用していますので、ベクトル

は
となり、各要素は行方向に並びます。ベクトルに4×4行列を掛ける場合、
のように行列を右から掛けます。これはDirectXなどと同じ形式です。
オブジェクトのピボット、スケール、せん断、回転、移動の変換行列をそれぞれ、

、

、

、

、

とすると、 親オブジェクトの座標系におけるオブジェクトのローカル変換行列

は
となります。 例外的に、 オブジェクトがジョイント タイプ(TA_OBJECT_JOINT)で以下の条件を満たす場合、
- 親もジョイント タイプ(TA_OBJECT_JOINT)。
- 「親ジョイントのスケールを補正」(CTaObject::GetJointParentScaleCompensated())の値がTRUE。
- 親ジョイントのスケール値が(1, 1, 1)以外。
親ジョイントのスケールの逆行列を
とすると、 オブジェクトのローカル変換行列
は
となります。
オブジェクトのローカル変換行列は、 CTaObject::GetTransform() で取得できます。
オブジェクトのローカル変換行列を

、その親オブジェクトのローカル変換行列を

、 さらにその親オブジェクトのローカル変換行列を

とすると、 オブジェクトのワールド変換行列

は
となります。
オブジェクトのワールド変換行列は、 CTaObject::GetWorldTransform() で取得できます。