Three.js r74 JSONLoader将所有几何体的副本绑定到第一个骨骼

时间:2016-02-24 22:42:23

标签: javascript three.js

我正在重写这个问题,因为我现在对错误了解得更多。看起来在r74中使用JSONLoader时,导出的Maya场景中的第一个命名骨骼会获得所有几何体的副本。

编辑:这是JSFiddle

在这个例子中,我有2个盒子。每个框都绑定到一个骨骼,每个骨骼都有关键帧,可以为位置和旋转设置动画。还有另一个骨骼没有绑定到它的几何体,并且具有不改变其位置或旋转的关键帧。

固定骨被称为"关节1"在玛雅。实际上具有几何形状的骨骼被称为" joint2"和" joint3"。如果我要重命名静止的骨骼" joint4"结果将是附加到当前动画" joint2"的两个框的副本。

我的猜测是这是一个错误,或者我在加载动画时做错了什么。任何提示将不胜感激。我现在能解决的唯一解决方法是将每个动画对象分成一个单独的文件,这真的不可行。另外,当我有一个多骨骼骨架时,这不会解决问题。这个例子只是单个骨架,没有实际变形。

这是我当前的加载程序代码。

result = np.array([6, 12, 18, 24, 30, 7, 14, 31, 28, 35, 8, 16, 24, 32, 40])

1 个答案:

答案 0 :(得分:0)

这仍然是个问题,但我找到了一个好的解决方法。

由于始终为重复几何体分配了使用Maya导出器时始终包含的默认lambert着色器。只要所有要保留的对象都具有Maya中的默认材质,您就可以插入

mesh.material.materials[0].visible = false;

进入加载程序代码,这将使任何具有默认lambert的材料不可见。

Here's a fiddle