使用Three.js(JSON)导出器在Three.js中加载Blender动画
Load a Blender Animation in Three.js using the Three.js (JSON) 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一起工作,我的结论是,这在功能上是不可能的。
不久前,我在这里发布了一个关于这个的问题。最后我不得不回答自己的问题。我介绍了您必须经过的卷积,才能从three.js本身提供的.mblend文件中获得一个示例(最简单的)。
官方示例和文档建议使用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。
- 在Three.js中导出网格会提高性能吗
- 如何在three.js上添加两个向量
- Three.js Points Rotation
- 无法读取属性'材料'未定义的Three.js
- Potree/Three.js测量问题
- Three.JS OBJ模型未显示
- 有没有一种方法可以获得three.js的最小/lite版本
- JS和three.JS,在浏览器中进行参数测试
- 参数列表Three.js之后的未捕获语法错误:缺少)
- 如何在three.js中有效地使用TraingleStripDrawMode
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- three.js:如何让透明的png精灵投射和接收阴影
- Three.js更改材质
- three.js EffectComposer's渲染目标
- 单击以将相机放置在Three js中的对象附近
- Three.js Three.投影仪已移至
- THREE.js轨道控制不工作
- Three.js,WebGL,渲染六幅图像的全景图
- 如何在three.js中为三角形添加纹理
- Three.js CanvasRenderer,在将图像纹理设置为平面时出现问题