我正在尝试使用MakeHuman的网格在Three.js中渲染动画。网格加载正确,但在动画运行时变得非常扭曲。如果我添加一个骷髅助手,我可以看到骨架正确地做动画,但是它的方向与网格不同。
当网格加载时,它是面朝下的,骨架是正向上的。如果我在Three.js中旋转网格,使它是正面朝上的,那么由于某种原因,骨架就会朝上朝下。我不确定这是否可能导致网格失真。
以下是我正在采取的步骤:
- 在MakeHuman中制作一个网格。
- 导出为Collada *。dae文件。
- 使用MakeWalk Blender插件重新定位到BVH动作捕捉文件。
- 如果我在Blender中播放动画,它看起来很完美。
- 因为多个站点说这解决了他们的问题,我清除了网格和电枢上的任何位置,旋转或缩放。
- 使用Blender的Three.js出口商导出整个场景。
- 使用ObjectLoader加载场景和嵌入动画。
任何帮助都将非常感激。谢谢。
更新 -我能够(短暂地)让模型大部分按预期动画(只有一点扭曲),骨架和网格都指向同一个方向,但现在我不能复制我的成功。我相当确定(在Blender中)清除或应用旋转,位置和比例是造成差异的原因,但当我试图再次运行这些步骤时,我再也无法做到这一点了。骨架和网格不再同步了。有是问题所在,对吧?
我想我需要应用的旋转和位置,但清除的规模。然而,当我尝试应用的位置,规模不再出现"清除"。我想我不明白Blender是怎么工作的。什么是正确的方法来清除或应用腐,Loc,Scale?我是在重新定位BVH之前还是之后申请/清除?也许这两个?我需要在每个网格和/或骨头上做吗?
所以我想出了如何使它工作,尽管我永远无法弄清楚为什么我以前的方法不起作用。
一旦你将模型导入Blender(默认情况下所有的网格都被选中),清除旋转,位置和比例。然后,如果模型朝向错误,按'n'显示Transform面板,在outline中选择根网格节点,并根据需要旋转它。然后,按ctrl+A 应用旋转。
基本上,不是保持在导入过程中设置的旋转,而是清除它并应用你自己的