モデルの 3 つのグループがある 3D シーンを作成しました。私はそれらのグループの 1 つを見ているカメラを持っています。これらのグループのモデルは、グループの中心 (上軸) を中心に回転し、モデルも自身のローカル センター (上軸) を回転します。
これは、XNA Racing Game の車の選択画面に似ています。唯一の違いは、カメラを回転させて別のグループを見ることができるようにしたいということです。カメラを回転させて次のグループを見るとき、120 度回転させたい (私は 3 つのモデル グループ 360/3=120 を持っている)
注: - カメラは、グループの平面の少し上からグループを見ています。
カメラ用:
viewMatrix = Matrix.CreateLookAt(cameraPosition, cameraTarget, Vector3.Up);
projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 1f, 1000f);
わかった:
- モデルを自身の軸を中心に回転させることができます。
- モデルのグループをグループの中心点を中心に左右に回転できます (ゲーム画面では、画面に最も近いモデルが現在選択されているモデルです)。
良くないですよ:
- 独自のアップ軸を中心にカメラを回転させる正しい方法が見つかりません。
この状況を明確にするための画像のカップル: