【问题标题】:Model with bones animation (blender export) animating incorrectly in three.js带有骨骼动画(搅拌机导出)的模型在三个.js 中动画不正确
【发布时间】:2012-11-11 05:09:33
【问题描述】:

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

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

WebGL-演示: http://rainbowrangers.de/threejs/animation_test01/

搅拌机文件: http://rainbowrangers.de/threejs/animation_test01/model/animation_test01.blend

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

【问题讨论】:

    标签: three.js blender skeletal-animation


    【解决方案1】:

    我是你在 github 讨论中引用的那个人。我最近一直在试验这个管道,(即 Blender 骨骼动画到threejs,)并且发现找到一个每次都能工作的可靠过程非常困难。

    在我的博客上,我整理了一份让我在某些情况下取得成功的“技巧”列表:

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

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

    导出前删除Armature Modifier,否则动画会乱七八糟。

    检查您的顶点组是否正确分配给骨骼。 (在 Blender 中,您可以使用自动骨骼权重。)

    在动画的第一帧和最后一帧中键入所有骨骼。 (正如您所发现的,如果您只拥有已更改骨骼的键,ThreeJS 不会推断出其他骨骼的任何内容,并且事情会被破坏。)

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

    【讨论】:

    • 谢谢!我的骨头从错误的支点旋转,它似乎不服从养育。 “在导出之前删除骨架修改器” 对我来说是关键。好文章!
    【解决方案2】:

    经过大量挖掘,我终于在三个.js github讨论之一中找到了答案:

    “在动画的开始和结束处为所有骨骼插入一个完整的关键帧。我发现如果没有第一个关键帧,动画会轻微变形,如果没有最后一个关键帧,我会丢失部分动画到最后。”

    来源:https://github.com/mrdoob/three.js/issues/2106

    这正是我们的渲染发生的事情。我们只为正在变化的骨骼设置关键帧,而不为静态骨骼设置关键帧。

    【讨论】:

    • 我真的很想分享有关 Blender / ThreeJS 管道的信息。如果您想交换指点,或者您在如何使其可靠运行方面有任何重大突破,请随时与我们联系。
    • 我刚刚给您发送了一封电子邮件以取得联系。我很想交流一些知识。
    【解决方案3】:

    我还发现,要让导出的模型正常工作,导出应该在 Blender 的第 0 帧完成。

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

    使用three.js r56

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2012-11-20
      • 2020-08-16
      • 2016-07-16
      • 2013-02-08
      • 2015-03-05
      • 2013-05-15
      • 2013-11-03
      • 2011-09-02
      相关资源
      最近更新 更多