以前お邪魔させて頂いてたKouです。
今回、DxLibのVer.3で3Dモデルを表示する際の、カメラの設定について質問させて頂きます。
デフォルトの状態でモデルを表示すると、正面やや上位からの視点で表示されますが、これを2Dシューティングのように真上から見た視点で表示する場合、カメラの向きを設定した方が良いのか、モデル自体をY軸で90度回転させた方が良いのか、どちらなのでしょうか?
普通に考えれば、カメラの向きを設定する方が良いのでしょうが、その場合、カメラの各座標は、どの程度の値に設定すれば良いのでしょうか。
WindowsXP
VC++ 2008EE
です。
よろしくお願いします。
3D表示でのカメラの向きについて
Re:3D表示でのカメラの向きについて
> カメラの向きを設定した方が良いのか
当然こちらでしょう。
どっちでも同じ効果が得られるかもしれませんが、全モデルを回転させる
よりかはこちらのが楽なはずです。
> その場合、カメラの各座標は、どの程度の値に設定すれば
これは実際にいろいろ値を入れて、試してみるのが一番いいかと。
Re:3D表示でのカメラの向きについて
返信遅くなってしまいました。
やっぱりカメラを動かした方が楽…って言うか、それが普通ですよね…。
設定値は…トライ&エラーで地道に行くしかないですか。
ある程度上方向からの視点にはできるんですけど、正確に真上からの視点なのか、微妙にズレてるのかが判断つかなくて…。
やっぱりカメラを動かした方が楽…って言うか、それが普通ですよね…。
設定値は…トライ&エラーで地道に行くしかないですか。
ある程度上方向からの視点にはできるんですけど、正確に真上からの視点なのか、微妙にズレてるのかが判断つかなくて…。
Re:3D表示でのカメラの向きについて
DXライブラリの3D関係には詳しく無いですが、3Dカメラですので自在に方向は変えれますし、色んな設定方法があります。
例えば、DXライブラリのリファレンスを見ると
SetCameraPositionAndTarget_UpVecY カメラの視点、注視点を設定する( 上方向はY軸から算出 )
SetCameraPositionAndTargetAndUpVec カメラの視点、注視点、上方向を設定する
SetCameraPositionAndAngle カメラの視点、垂直回転角度、水平回転角度、捻り回転角度を設定する
SetCameraScreenCenter 画面上でのカメラが見ている映像の中心座標を設定する。
などがありますので、使いやすいものを使えばよいと思うのですが。
ワールド空間にどのようにポリゴンモデルを配置しているかで画面に表示される位置関係は変わってきますので、そこは事前設計を万全に。
例えば、DXライブラリのリファレンスを見ると
SetCameraPositionAndTarget_UpVecY カメラの視点、注視点を設定する( 上方向はY軸から算出 )
SetCameraPositionAndTargetAndUpVec カメラの視点、注視点、上方向を設定する
SetCameraPositionAndAngle カメラの視点、垂直回転角度、水平回転角度、捻り回転角度を設定する
SetCameraScreenCenter 画面上でのカメラが見ている映像の中心座標を設定する。
などがありますので、使いやすいものを使えばよいと思うのですが。
ワールド空間にどのようにポリゴンモデルを配置しているかで画面に表示される位置関係は変わってきますので、そこは事前設計を万全に。
Re:3D表示でのカメラの向きについて
softya様ありがとうございます。
カメラに関する関数が何種類かあるので、正直どれを使えば良いのか迷っていましたが、ある程度は好み(処理にもよるのでしょうが…)で良いのですね。
3D表示はVer.3で初めて使用するので、まだ解らない部分が沢山ありますが、サンプル等を参考にしながら、とにかくいじって、数をこなしてみます。
カメラに関する関数が何種類かあるので、正直どれを使えば良いのか迷っていましたが、ある程度は好み(処理にもよるのでしょうが…)で良いのですね。
3D表示はVer.3で初めて使用するので、まだ解らない部分が沢山ありますが、サンプル等を参考にしながら、とにかくいじって、数をこなしてみます。