カメラの回転を手動で 0,0 にトゥイーンしようとしています:
camera.object3D.matrixAutoUpdate=false;
var orgrot = { x : camera.object3D.rotation.x, y: camera.object3D.rotation.y };
var target = { x : 0, y: 0 };
var tween = new TWEEN.Tween(orgrot).to(target, 500);
tween.onUpdate(function(){
camera.object3D.rotation.x= this.x;
camera.object3D.rotation.y= this.y;
camera.object3D.updateMatrix();
});
トゥイーンは期待どおりに機能しますが、カメラに対するマウス コントロールが失われています。それを取り戻すために、私はmatrixAutoUpdateをtrueに設定しています
tween.onComplete(function(){
document.querySelector('#camera').object3D.matrixAutoUpdate=true
});
しかし、その後、カメラの回転は元の位置 ( tween の前) に戻り、0,0 を維持したいと思います。私が欠けているものは何ですか?ありがとう
更新 以下は、threejs オブジェクトに入らずに aframe のみを使用するバージョンです
問題はカメラのルックコントロールコンポーネントだと思います
有効にすると、カメラの回転や setAttribute をアニメーション化できなくなります。最初に無効にする必要があります-アニメーションを起動してから再度有効にするよりも。
しかし、問題は、もう一度有効にしたときです。
camera.setAttribute ('look-controls-enabled',"true")
カメラは元の回転に戻ります (アニメーションをリセットする前の状態)。使用時の同様の問題matrixAutoUpdate=false/true
ここに私のペンがあります http://codepen.io/anon/pen/dMjrWd
左に 30 度回転すると、resetCamera アニメーションが発生します - 意図したとおりに動作します。ただし、look コンポーネントが無効になっている場合のみ。「animationend」イベントで再度有効にすると、回転が元の状態に戻り、resetCamera が何度もトリガーされます