【问题标题】:Load a Blender Animation in Three.js using the Three.js (JSON) exporter使用 Three.js (JSON) 导出器在 Three.js 中加载 Blender 动画
【发布时间】:2016-03-04 00:28:36
【问题描述】:

我正在使用 JavaScript 迈出第一步,同时也在使用 Three.js。

我正在学习如何将 Blender 动画导出和加载到 Three.js,并使用 Three.js 网站上的这个示例:http://threejs.org/examples/#webgl_morphtargets_horse

我制作了一个 Blender 动画 (http://s000.tinyupload.com/?file_id=07429365581548704592),当我将其导出时,我使用未运行的相同代码将其加载到 Three.js。

你知道为什么我看不到动画吗?不知道是exporter的限制还是我的动画的问题。

谢谢

【问题讨论】:

    标签: javascript animation three.js blender exporter


    【解决方案1】:

    我花了很多时间试图让 Blender 动画与当前版本的 three.js 一起工作,我的结论是,即使不是完全不可能,它在功能上也是可行的。

    posted a question 不久前在这里讨论过这个问题。我最终不得不回答我自己的问题。我介绍了你必须经历的卷积,以便从三个.js 本身提供的 .blend 文件中获取示例之一(最简单的)。

    官方示例和文档推荐使用 ObjectLoader 从 Blender 加载导出,但这在当前的 three.js 动画系统中根本不起作用。新的动画内容使用蒙皮网格,如果您查看 ObjectLoader 源 (src/loaders/ObjectLoader.js),您会发现它没有任何使用 THREE.SkinnedMesh 的逻辑。新的动画混合器 THREE.AnimationMixer 并未包含在官方 three.js 文档中。

    此外,根据您的看法,Blender 导出器可能非常不稳定或完全损坏。我在上面链接的问题中对此进行了更详细的介绍,但是例如导出器会更改模型的状态:您必须进入姿势模式,选择所有骨骼,Alt-G 和 Alt-R 将它们重置为休息模式,然后在导出之前选择网格并进入对象模式,导出会将所有骨骼转换回来,所以如果你只是导出然后立即再次导出,例如,你会得到不一致的结果。

    从所有这些中,我得出结论,将 Blender 动画导入到 three.js 中是有效的,如果不是完全破坏的话,所以如果你正在处理一个项目以立即实施,你需要更改你的管道以不使用 Blender 或更改渲染结束不使用three.js。

    【讨论】:

    • 很遗憾,我不得不说你是对的。动画代码有点失控。现在我专注于新的 ColladaLoader,所以即使它不是很有效,至少我们会有一个工作流程。
    • 所以实际上这意味着没有办法用 Three.js 加载我的动画?
    猜你喜欢
    • 2012-09-06
    • 2015-04-29
    • 2015-10-28
    • 2019-03-30
    • 2014-07-04
    • 2012-04-04
    • 2017-08-10
    • 2017-12-21
    • 2014-09-15
    相关资源
    最近更新 更多