在three.js中骨骼动画(混合器导出)动画设置不正确的模型

在three.js中骨骼动画(混合器导出)动画设置不正确的模型,three.js,blender,skeletal-animation,Three.js,Blender,Skeletal Animation,我目前正在three.js中进行骨骼动画测试。我有一个简单的模型,它在blender中的动画效果很好。它基本上由三个堆叠的弯曲立方体组成 当我使用blender V2.64的blender导出插件将blender文件导出到three.js时,webGl上下文中的动画看起来不同,好像蒙皮权重是错误的 WebGL演示: 搅拌机文件: 要在three.js中获得正确的结果,我必须做些什么?经过大量的挖掘,我终于在three.js github讨论中找到了答案: 在动画的开始和结束处为所有骨骼插入

我目前正在three.js中进行骨骼动画测试。我有一个简单的模型,它在blender中的动画效果很好。它基本上由三个堆叠的弯曲立方体组成

当我使用blender V2.64的blender导出插件将blender文件导出到three.js时,webGl上下文中的动画看起来不同,好像蒙皮权重是错误的

WebGL演示:

搅拌机文件:


要在three.js中获得正确的结果,我必须做些什么?

经过大量的挖掘,我终于在three.js github讨论中找到了答案:

在动画的开始和结束处为所有骨骼插入完整的关键帧。我发现,如果没有第一个关键帧,动画将被微妙地扭曲,如果没有结尾处的关键帧,我将丢失动画的一部分

资料来源:


我们的渲染器就是这样的。我们只为正在更改的骨骼设置关键帧,而不为静态骨骼设置关键帧。

我就是您在github讨论中引用的人。我最近一直在尝试这个管道(即将骨骼动画混合成3J),发现要找到一个每次都能工作的可靠流程非常困难

在我的博客上,我列出了一系列让我在某些场合取得成功的“技巧”:

总而言之,我发现的最重要的事情是:

在导出之前删除电枢修改器,否则动画将全部混乱

检查顶点组是否已正确指定给骨骼。(在Blender中,可以使用自动骨骼权重。)

为动画的第一帧和最后一帧中的所有骨骼设置关键帧。(正如您所发现的,如果您只拥有已更改骨骼的关键点,ThreeJS将无法推断其他骨骼的任何信息,并且这些骨骼将被破坏。)


即使遵循这些准则,我也无法使事情始终如一地工作,并且一直在考虑使用变形目标,直到库更加成熟。变形目标的文件大小要大得多,但根据我的经验,在这一点上,它们似乎是一个更可靠的选择。

我还发现,要使导出的模型正常工作,应该在Blender的第0帧处进行导出

解决我遇到的另一个问题是导出模型后不缩放模型。这意味着模型不能在JSON文件中缩放,也可能不能直接在代码中缩放


使用three.js r56

我真的很想分享关于Blender/ThreeJS管道的信息。如果你想交换意见,或者你在如何使其可靠工作方面有任何重大突破,请随时联系。我刚刚给你发了一封电子邮件,希望与你联系。我很想交流一些知识。谢谢!我的骨头从错误的支点旋转,它似乎不服从父母的教导。“导出前删除电枢修改器”是我的关键。好文章!