从 Blender 导出器加载模型时,我遇到了一个奇怪的问题。 当我在不应用动画的情况下加载模型时,它看起来像这样——
但是一旦我应用动画,模型就会变形并看起来像这样——
手指可怕地伸展着,身体扭动着。 模型仍然执行动画,但变形了。
这是我用来加载和动画模型的代码
var loader = new THREE.JSONLoader();
loader.load( "js/models/Golfer_SWING.js", function(geometry, materials){
for ( var i = 0; i < materials.length; i ++ ) {
var m = materials[ i ];
m.skinning = true;
}
playerObject = new THREE.SkinnedMesh( geometry, new THREE.MeshFaceMaterial( materials ) );
playerObject.position.set( -50, -250, 0 );
playerObject.scale.set( 100, 100, 100 );
playerObject.rotation.y = -180 * Math.PI/180;
scene.add( playerObject );
playerObject.castShadow = true;
playerObject.receiveShadow = true;
helper = new THREE.SkeletonHelper( playerObject );
helper.material.linewidth = 3;
helper.visible = false;
scene.add( helper );
swingAnimation = new THREE.Animation( playerObject, geometry.animations[0] );
swingAnimation.play();
} );
我已经尝试了一些对混合文件的常见建议配置更改,但它们都不起作用。 这是混合文件的链接。
我正在使用 r68 和最新的搅拌机出口商。
您_必须_在清除所有变换的骨架的情况下导出网格和动画。
我尝试使用您的文件并通过在姿势模式下选择每个骨骼,然后选择姿势-> 清除变换-> 全部,然后执行three.js 导出来获得正确的结果。
这不会影响您的场景或其他关键帧,但您每次导出时都必须这样做。
我对您的 Blender 文件进行了一些修复,使其适用于 Three.js 导出。
现在您可以通过选择第 0 帧,然后导出来正确导出模型和动画。
https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend
satori99,非常感谢! 我已经为此纠结了好几天。 非常感谢您提供固定文件。 它现在对我有用:)
最有用的评论
我对您的 Blender 文件进行了一些修复,使其适用于 Three.js 导出。
现在您可以通过选择第 0 帧,然后导出来正确导出模型和动画。
https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend