3

タイトルの通りThreeJSでカメラを動かしたいです。私は現在、カメラをマウスダウンで動かして、カメラが見えるポイントを一周させ、キーボードコントロールでカメラを x と z に動かして、カメラの位置だけでなくカメラの位置も動かしたいと考えています。現在、lookAt ターゲットは 0,0,0 です。

を試してみると、translateXそれtranslateZ自体の傾きと角度に対してカメラの位置が移動します。したがって、下を見ると、「前方」はカメラをワールド Y 軸に下げ、ワールド X と Z のみで移動させます。カメラは遠近法であり、スクロールホイールは周回円の半径を設定します。バージョンは r55 です。

これは、カメラをまったく動かさない現在のコード (ほとんどが例からコピーされたもの) です。

if (userMouse.isDown){
    theta = - ( ( userMouse.position.x - userMouse.down.position.x ) * userMouse.acceleration ) +  userMouse.down.theta;
    phi = ( ( userMouse.position.y - userMouse.down.position.y ) * userMouse.acceleration ) + userMouse.down.phi;
    phi = Math.min( 160, Math.max( 20, phi ) );
}

camera.position.x = userCam.radious * Math.sin( theta * Math.PI / 360 ) * Math.cos( phi * Math.PI / 360 );
camera.position.y = userCam.radious * Math.sin( phi * Math.PI / 360 );
camera.position.z = userCam.radious * Math.cos( theta * Math.PI / 360 ) * Math.cos( phi * Math.PI / 360 );
camera.lookAt(userCam.target);
camera.updateMatrix(); 

私は例を見て、インターウェブを精査しましたが、このセットアップは見つかりませんでした. 私の推測では、transformWorldMatrix を使用するか、カメラの回転を使用して方向を取得してから、動きの値を追加するだけです。

それほどトリッキーではないことは確かですが、頭を包むことはできません。そう; どこを見ているかに関して、世界XとZでカメラをどのように動かしますか? これが初心者の質問である場合は申し訳ありません。

4

0 に答える 0