未验证 提交 a981fa8a 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #16178 from takahirox/FixMMDPhysics

Fix MMDPhysics _updateBonePosition()
......@@ -994,14 +994,8 @@ THREE.MMDPhysics = ( function () {
_getWorldTransformForBone: function () {
var manager = this.manager;
var tr = manager.allocTransform();
this.body.getMotionState().getWorldTransform( tr );
var tr2 = manager.multiplyTransforms( tr, this.boneOffsetFormInverse );
manager.freeTransform( tr );
return tr2;
var tr = this.body.getCenterOfMassTransform();
return manager.multiplyTransforms( tr, this.boneOffsetFormInverse );
},
......@@ -1072,19 +1066,24 @@ THREE.MMDPhysics = ( function () {
var manager = this.manager;
var tr = this.body.getCenterOfMassTransform();
var origin = tr.getOrigin();
var matrixInv = manager.allocThreeMatrix4();
matrixInv.copy( this.bone.parent.matrixWorld ).getInverse( matrixInv );
var pos = manager.allocThreeVector3();
pos.set( origin.x(), origin.y(), origin.z() ).applyMatrix4( matrixInv );
this.bone.position.copy( pos );
manager.freeThreeVector3( pos );
manager.freeThreeMatrix4( matrixInv );
var tr = this._getWorldTransformForBone();
var thV = manager.allocThreeVector3();
var o = manager.getOrigin( tr );
thV.set( o.x(), o.y(), o.z() );
if ( this.bone.parent ) {
this.bone.parent.worldToLocal( thV );
}
this.bone.position.copy( thV );
manager.freeThreeVector3( thV );
manager.freeTransform( tr );
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册