カメラワークについて

無双系のカメラワークに成功しました!


方向キーの左右を押したときに、円移動するとのことで、
外積とか使って、円の接線方向
出したりとか面倒なことするのかなぁ…』とか
思って、どよ〜んとしておりましたが、
試行錯誤の結果、簡単に無双系カメラワークを
実現する方法を見つけましたので、参考までに。
(見ている人が何人いるのかわかりませんが(汗))



以下、カメラワークとキャラの移動に分けて話します。まず、キャラの移動から。


1.キャラの移動
(1)E3DGetCameraPosとE3DGetPosを使って、カメラの位置とキャラの位置を算出し、引き算することで、
 カメラの向いているベクトルを計算します。(※ただし、Y成分は0にしてください!)←ハマリポイント
(2)キャラをE3DLookAtQなどで、カメラの向いているベクトルにキャラを向けます。
(3)方向キーに合わせて指定した角度だけ、キャラを回転させます(例えば、方向キーが左下なら135度回転)。E3DRotateYを使います。


2.カメラの移動
(1)カメラのターゲットをキャラにセットします。
(2)方向キーが上か、下を含んでいる場合(右上とか、左下とか)
 カメラの位置を
 (キャラの位置) - (キャラのむいているベクトル)
 にセットします。
(3)キャラのむいている方向の取得には、E3DMultQVecを使います。
 方向キーが上を含むときは、『key & UE』みたいに『&』で判定します。
 方向キーが純粋に左か右の場合は、カメラの位置を更新しなくてOKです。


これだけです。プログラムにして10行前後で出来ます。簡単でウマーですよ(^−^)