Blender导出的JSON模型在THREE.js中显示错误的动画

时间:2017-03-19 12:52:50

标签: json animation three.js geometry blender

我在Blender中有一个基本的漫步动画,我试图导出到THREE.js。它在Blender播放中看起来不错:

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导出工具包含在此版本中。

1 个答案:

答案 0 :(得分: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. 我的导出设置:
  6. enter image description here enter image description here

    注意:我必须说这是我跟随的工作流程,没有运气。这次差异是我首先删除了每个顶点组,也删除了电枢修改器(不是电枢本身)并重新创建了第一个顶点组的所有步骤。现在,一旦导出动画网格就足够了!