Blender 导出 three.js 动画 - 骨骼奇怪地旋转

Posted

技术标签:

【中文标题】Blender 导出 three.js 动画 - 骨骼奇怪地旋转【英文标题】:Blender exports a three.js animation - bones rotate strangely 【发布时间】:2013-09-16 02:59:12 【问题描述】:

我目前正在尝试使用 three.js 的导出器(github.com/mrdoob/three.js/tree/dev/utils/exporters/blender/2.66/scripts/)将动画搅拌机模型导出到three.js插件)。

我创建了一个模型,其中包括骨骼和权重以及一个小动画。

我遇到的问题:模型坏了。不知何故,骨骼不会围绕它们的原点旋转,而是围绕根骨骼的原点旋转。手动移动骨骼没有任何区别。

我遵循了这些教程: devmatrix.wordpress.com/2013/02/27/creating-skeletal-animation-in-blender-and-exporting-it-to-three-js/

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

我有: 删除了骨架

检查顶点组

对第一帧和最后一帧的所有骨骼进行抠像。

我几乎去过所有可以在 github 上找到的线程和堆栈溢出。这些似乎是这些错误的主要问题。但我想我仍然错过任何一点。 :(

我已上传所有文件,包括搅拌机文件和导出的动画。 http://www.file-upload.net/download-8068001/forum-files.rar.html 有什么建议? 提前非常感谢。

【问题讨论】:

【参考方案1】:

问题是在导出模型之前没有重置位置/旋转/比例。

在导出模型之前,选择网格并按 CTRL+A 并选择位置。重复旋转和缩放,然后选择骨架并执行相同操作。现在可以了。

【讨论】:

【参考方案2】:

我已经下载了教程包和您的代码。代码方面看起来不错。因此,查看模型,我发现您的顶点组定义不明确。当我选择 Left_collarbone 骨骼、left_upperarm、left_lowerarm 时,我似乎正在从躯干、头部等的某些部分获取顶点……在混合中。我怀疑您在时髦的肩部拉伸动画中看到的是锁骨是其他一些分组的一部分,并且当导出网格的“权重”时会混淆,导致骨骼在网格上拉得很厉害。 尝试清理顶点组,看看是否有帮助。 @lukasz1985 有正确的想法,不错! +1

附:感谢您提供指向 Three.js 的酷动画教程的链接 :)

【讨论】:

【参考方案3】:

我遇到了一个问题,在新导入的几何图形上调用 THREE.GeometryUtils.center(geometryWithBones) 会使所有蒙皮看起来很奇怪。摆脱那些固定的东西。

【讨论】:

【参考方案4】:

还要确保,three.js 混合器导出器未设置为以任何方式对齐您的模型。 (我将它设置为“中心”,我花了 4 个小时才弄清楚为什么我的骨头会围绕某个点旋转,而不是它们在搅拌机中旋转的点。)

【讨论】:

以上是关于Blender 导出 three.js 动画 - 骨骼奇怪地旋转的主要内容,如果未能解决你的问题,请参考以下文章

Blender 导出器 (v70) 到 json three.js 蒙皮动画

使用vue学习three.js之创建动画-使用外部模型创建动画,使用Blender导出的JSON模型创建动画

Three.js (r64) - Blender JSON 导出丢失法线以实现平滑着色

Blender 导出到 Three.js

将变形目标从 Blender 导出到 Three.js

将动画模型从 Maya 导入到 Blender,然后再导入到 three.js 时出现问题?