2017-03-19 84 views
2

我在Blender中有一个基本的步行动画,我试图导出到THREE.js。它看起来不错在搅拌机回放:Blender导出的JSON模型在THREE.js中显示错误的动画

enter image description here

现在,随着three.js所出口被出口后,它看起来像这样的浏览器:

enter image description here

几何坏了,不是所有的身体部位,但肯定有一些问题。我不知道现在该做什么,我尝试导出几个选项选中/未选中,没有运气。

我也读了解释在这个职位,我想我跟所有必需的步骤,但仍然得到这个奇怪的动画:

http://unboring.net/workflows/animation.html#preview

https://github.com/mrdoob/three.js/pull/8412#issuecomment-210675561

https://github.com/mrdoob/three.js/issues/6050

的代码我目前用来加载JSON模型/动画是这样的:

 var loader = new THREE.JSONLoader(); 
     var action = {}, mixer; 

     loader.load(path + '/dino.json', function (geometry, materials) { 
      materials.forEach(function (material) { 
       material.skinning = true; 
      }); 

      character = new THREE.SkinnedMesh(
       geometry, 
       new THREE.MeshFaceMaterial(materials) 
      ); 

      scene.add(character); 

      /* ANIMATION */ 
      mixer = new THREE.AnimationMixer(character);     
      action.walk = mixer.clipAction(geometry.animations[ 3 ]);    
      action.walk.setEffectiveWeight(1); 
      action.walk.enabled = true; 

      /* Update/render functions */ 
      onUpdateFcts.push(function(delta, now){ 
       mixer.update(delta); 
      }); 

      action.walk.play(); 
     }); 

我正在使用Blender 2.78c和THREE.js r84,Blender exporter工具包括在此版本中。

回答

2

我发现了大约类似的动画问题的一些相关链接:

Model with bones animation (blender export) animating incorrectly in three.js

http://dev.mothteeth.com/2012/10/threejs-blender-exporting-skeletal-animations/

Blender exports a three.js animation - bones rotate strangely

阅读所有这些建议之后,我已经成功地导出动画网格没有视觉假象遵循以下工作流程:

  1. 通过网格周围的骨骼创建电枢骨。完成后,在对象模式下,首先选择网格,然后选择电枢,按CTRL + P>自动加权。这会在网格上生成一个电枢修改器。与我读的不同,在输出之前,电枢修改器不需要被删除。
  2. 您必须像休息位置一样具有默认姿势。这必须是在Blender上选择的那个。此外,必须以该默认姿势选择回放帧0。
  3. 我在每个姿势的开始和结束处为所有涉及的骨骼创建关键帧,这看起来很重要。
  4. 您必须取消选择所有内容,只选择网格,而不选择电枢。这必须在对象模式下完成。
  5. 我导出设置:

enter image description here enter image description here

注:我必须说,这是我没有运气以下相同的工作流程。这次的区别在于我首先删除了每个顶点组,也是衔铁修改器(不是电枢本身),并重新创建了第一个步骤中的所有步骤。现在,一旦导出动画网格工作得很好!

相关问题