私はトゥイーン関数(から大きな助けを借りてSO)をトゥイーンメッシュに結合しました...そしてうまくいきます。クォータニオンを使用してメッシュを正しくトゥイーンする方法はありますか?
私の質問は、私がやっているやり方が非効率で、より良い解決策を探していると感じています。
たとえば、関数を呼び出すたびにメッシュをクローンしています。これはrotateOnAxis()を呼び出すことができるためです。私が望むのは、メッシュ回転が軸上で増加するターゲットクォータニオンです...しかし、私はそれを得るより良い方法を見つけることができませんでした。
いつもどおり、大変助かりました。
PS。本当に愛するthreejs !!!
function tweenRot(obj, axis, angle){
var actp = obj.clone(); // seems wasteful
actp.rotateOnAxis(axis, angle);
var targq = actp.quaternion;
var qm = new THREE.Quaternion();
var curQuaternion = obj.quaternion;
var tween = new TWEEN.Tween({t:0}).to({t:1}, 500)
.easing(TWEEN.Easing.Sinusoidal.InOut)
.onUpdate(function(){
THREE.Quaternion.slerp(curQuaternion, targq, qm, this.t);
qm.normalize();
obj.rotation.setFromQuaternion(qm)
});
tween.start();
}