FC2ブログ

三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カメラベクトル

もう9月も半分が過ぎそうです。

最近は自分の専門では無い部分をすることになって発狂しそうになりながらすごしています。



ふと思ったんですけど、ゲームを作ったりしていてカメラの操作ってみなさんどうやっているんでしょう。
カメラって基本的にはカメラ位置(position)、上方向ベクトル(head)、視点(lookat)を設定します。
scri_369.jpg
でもこれって意外と使いにくいんですよね・・・

上ベクトルは固定だとしても、カメラを動かすためにばらばらの2変数を操作しないといけない。
キャラクターを追いかけるにしても視点も位置も動かさないといけない。
それがカメラだけ動いて視点の変わらないレールカメラなら使いやすいのかもしれませんが、
ゲームでそんなカメラを使うことは非常に稀だと思います。

実際には内部でlookatとpositionから視線ベクトルを出して、
視線ベクトル、上ベクトル、横ベクトル(視軸と上の外積)の3ベクトルとカメラ位置情報positionで表現されます。

自分は次の変数でカメラを管理することが多いです。
・視点位置(pos)
・回転角(rot)
・カメラ距離(length)

基準ベクトル(0,0,length)を作ってrotの回転をかけます。
これで視線ベクトルを算出します。
視点はposで、視線ベクトルをposだけ移動させたものがカメラ位置になります。
ついでに上ベクトルも回転させてもいいと思います。
scri_369b.jpg

回転角はクオータニオンでもいいんですが、
そんな複雑なことはしないなら、仰角(X軸)、平面上の回転(Y軸)の2回転で表現してもわかりやすいと思います。
スポンサーサイト

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。