質問

一人称3Dゲームを作りたいのですが、カメラの式を正しく設定できません。

だから私は回転を持っています:0から359。次にx、y座標、zは同じままです。

カメラの回転:0-フロント、90-左、180-バック、270-右右 - しかし、私はそれを適応させることができます

カメラの式は何ですか?

プラットフォーム:panda3d、python、opengl

ありがとうございました

役に立ちましたか?

解決

OK、運命スタイルのカメラの動き、つまり、上下ターンは必要ないようです。このことを考慮:

  1. カメラを通して見られるように、「世界」をレンダリングする必要があります。
  2. 正のxが右に、正のyが前面にあると仮定すると、カメラが右に移動すると、世界のイメージが左に移動します。
  3. カメラが前向きに左に曲がると、世界のイメージは右に変わります。

それでは、方程式を構築してみましょう。

1.最初に、世界座標をカメラの位置に翻訳します。

Xwt = Xw - Xc;
Ywt = Yw - Yc;
Zwt = Zw;

(Xc,Yc,Zc) = camera position
(Xw,Yw,Zw) = world coordinates of object in the scene
(Xwt,Ywt,Zwt) = world coordinates of object translated to camera position

2.今、翻訳された座標をカメラの回転とは反対の角度で回転させます。

Xwc =  Xwt * Cos(psi) + Ywt * Sin(psi);
Ywc = -Xwt * Sin(psi) + Ywt * Cos(psi);
Zwc =  Zwt

Psi = angle of camera rotation
(Xwc,Ywc,Zwc) = world coordinates of object transformed to camera orientation

2つのステップを組み合わせて、マトリックスフォームに変換できます。

他のヒント

後で問題を修正したチュートリアルを見つけました。

https://www.panda3d.org/forums/viewtopic.php?t=3037

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top