CannonJS (物理ライブラリ) を回転させる方法を知っている人はいますCANNON.RigidBody
か? カメラでオブジェクトを回転させようとしているので、両方が同じ方向を向いています。クォータニオンを変更する必要があることはわかっていますが、これは正しく機能しません。
mPlayer.objectBody.quaternion.set(0, mPlayer.yawObject.rotation.y, 0, 1);
回転だけでなく、オブジェクトの Y 位置も変更します。
これがデモです(赤い四角形を移動するためのWASD-回転させたいものです)
メインスクリプトは次のとおりです
現時点では、物理学に基づいて自動的に回転します。助けてくれてありがとう!
編集:
私は今それを機能させています。しかし、完全に (360 度全体) 回転するわけではなく、回転する角度も正しくありません。誰かが見て、何が悪いのかを知ることができれば、本当に感謝しています! :)
以前と同じリンクですが、長方形/ボディがカメラの下にあるため、正しく回転しているかどうかを確認できます。
回転させるためにこのコードを追加しました:
mPlayer.objectBody.quaternion.y = mPlayer.yawObject.rotation.y;
mPlayer.objectBody.quaternion.w = 1;
mPlayer.objectBody.quaternion.normalize();
コードを見なくてmPlayer.yawObject.rotation.y
も済むように、MouseMove イベントに設定されています。
var onMouseMove = function ( event ) {
var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
mPlayer.yawObject.rotation.y -= movementX * 0.002;
mPlayer.pitchObject.rotation.x -= movementY * 0.002;
mPlayer.pitchObject.rotation.x = Math.max( - PI_2, Math.min( PI_2, mPlayer.pitchObject.rotation.x ) );
};
再度、感謝します!