为什么导出为 GLTF 时 blender 装配动画会失真?

Why is blender rigged animation distorted when exported as GLTF?

我在 Blender 中使用骨架绑定创建了一个动画。当我在 Blender 中按 Alt-A 测试它时,它工作得很好。但是,当我使用 KhronosGroup GLTF 导出器将其导出为 .glb 时,生成的动画会失真(例如,四肢断开连接并以一种奇怪的方式移动)。

为什么会发生这种情况(我该如何解决)?

在过去的两天里,我一直在尝试类似问题的解决方案(例如使用 location/rotation/scale 和 Ctrl-A,或者删除网格上的 Armature 修改器)但是 none对我有用。

链接:

这里是 link 动画应该是什么样子的屏幕录像(这是我在 Blender 中播放的): https://github.com/kylejlin/hosting-for-my-Whosebug-questions/blob/master/correct-animation.mov

这是一个 link 动画实际外观的屏幕录制(这是我用 Three.js 在浏览器中测试导出的 .glb): https://github.com/kylejlin/hosting-for-my-Whosebug-questions/blob/master/distorted-animation.mov

这是 .blend 文件: https://github.com/kylejlin/hosting-for-my-Whosebug-questions/blob/master/soldier.blend

这是导出的 .glb 文件: https://github.com/kylejlin/hosting-for-my-Whosebug-questions/blob/master/soldier.glb

我仔细查看了您的设置。我发现您有一些 IK 骨骼在部分驱动动画。这些不会正确转换,并且必须将 IK 烘焙到动画中。我还调查了镜像修改器并意识到那里的问题..要导出镜像对象,您必须单击 "apply modifiers" 复选框,但是这也应用了骨架修改器,它扭曲了网格所以你弄错了网格出来。要解决这个问题,您必须在搅拌机中手动应用镜像修改器,然后在未选中 "apply modifiers" 的情况下导出。一旦你这样做了,一旦你将 IK 烘焙到动画中,你就可以让它工作了。

我过去做过 IK 烘焙,但完全忘记了它是如何工作的,但这里是一个起点:https://blenderartists.org/t/bake-ik-to-fk/587226

fwiw 这是我预先应用镜像修改器时的 .glb。请注意现在手臂动画正确,但 legs/feet 由于 IK 仍然很奇怪。我还不知道怎么烤……

https://drive.google.com/open?id=1zeA-mMirOWYZHlzdURqNnykgh_g10kbr

Rig之前设置Object的转换values:0