Procházet zdrojové kódy

Merge pull request #15335 from panxinmiao/mmd-physics-fix

Normalization is needed after quaternion multiply
WestLangley před 6 roky
rodič
revize
5ff8f67875
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      examples/js/animation/MMDPhysics.js

+ 2 - 2
examples/js/animation/MMDPhysics.js

@@ -1052,12 +1052,12 @@ THREE.MMDPhysics = ( function () {
 			thQ.set( q.x(), q.y(), q.z(), q.w() );
 			thQ2.setFromRotationMatrix( this.bone.matrixWorld );
 			thQ2.conjugate();
-			thQ2.multiply( thQ );
+			thQ2.multiply( thQ ).normalize();
 
 			//this.bone.quaternion.multiply( thQ2 );
 
 			thQ3.setFromRotationMatrix( this.bone.matrix );
-			this.bone.quaternion.copy( thQ2.multiply( thQ3 ) );
+			this.bone.quaternion.copy( thQ2.multiply( thQ3 ).normalize() );
 
 			manager.freeThreeQuaternion( thQ );
 			manager.freeThreeQuaternion( thQ2 );