四元数に関する理解の問題があります。
ワールド オブジェクトを正しい方法で回転させるには、オブジェクト ワールド マトリックスを更新しながらクォータニオン回転を反転する必要があります。
次のコードでオブジェクトの回転を作成します。
Rotation = Quaternion.RotationMatrix(
Matrix.LookAtRH(Position,
Position + new Vector3(_moveDirection.X, 0, _moveDirection.Y),
Vector3.Up)
);
オブジェクトの World マトリックスを次のように更新します。
Object.World = Matrix.RotationQuaternion(Rotation)
* Matrix.Translation(Position);
これは機能していません。オブジェクトを本来とは逆に回転させます。
これは、オブジェクトを正しく回転させる方法です:
Object.World = Matrix.RotationQuaternion(Quaternion.invert(Rotation))
* Matrix.Translation(Position);
オブジェクトの回転を反転する必要があるのはなぜですか?