カメラワークについて
無双系のカメラワークに成功しました!
方向キーの左右を押したときに、円移動するとのことで、
『外積とか使って、円の接線方向
出したりとか面倒なことするのかなぁ…』とか
思って、どよ〜んとしておりましたが、
試行錯誤の結果、簡単に無双系カメラワークを
実現する方法を見つけましたので、参考までに。
(見ている人が何人いるのかわかりませんが(汗))
以下、カメラワークとキャラの移動に分けて話します。まず、キャラの移動から。
1.キャラの移動
(1)E3DGetCameraPosとE3DGetPosを使って、カメラの位置とキャラの位置を算出し、引き算することで、
カメラの向いているベクトルを計算します。(※ただし、Y成分は0にしてください!)←ハマリポイント
(2)キャラをE3DLookAtQなどで、カメラの向いているベクトルにキャラを向けます。
(3)方向キーに合わせて指定した角度だけ、キャラを回転させます(例えば、方向キーが左下なら135度回転)。E3DRotateYを使います。
2.カメラの移動
(1)カメラのターゲットをキャラにセットします。
(2)方向キーが上か、下を含んでいる場合(右上とか、左下とか)
カメラの位置を
(キャラの位置) - (キャラのむいているベクトル)
にセットします。
(3)キャラのむいている方向の取得には、E3DMultQVecを使います。
方向キーが上を含むときは、『key & UE』みたいに『&』で判定します。
方向キーが純粋に左か右の場合は、カメラの位置を更新しなくてOKです。
これだけです。プログラムにして10行前後で出来ます。簡単でウマーですよ(^−^)