javascript - 使用 Three.js (JSON) 导出器在 Three.js 中加载 Blender 动画

标签 javascript animation three.js blender exporter

我正在使用 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。

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

谢谢

最佳答案

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

posted a question不久前就谈到过这个问题。我最终不得不回答我自己的问题。我介绍了从 Three.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。

关于javascript - 使用 Three.js (JSON) 导出器在 Three.js 中加载 Blender 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33997433/

相关文章:

ios - 警报框上的动画

javascript - Threejs对象选择问题

typescript - 正交相机将渲染场景切成两半

javascript - 防止多次ajax查询

使用 CSS3 样式的 jQuery 缓动和动画

javascript - 尝试调整插入图像的大小时出现错误

java - 在一个程序中使用多个 Swing 定时器是不是很糟糕

javascript - 如何在 Three.js 中使用数组代替 MeshFaceMaterial?

javascript - 如何使用 DOM 元素创建表单的副本

javascript - 代码镜像 2 : Multiple indent is deleting lines