1

我正在尝试使用 MakeHuman 的网格在 Three.js 中渲染动画。网格正确加载,但在动画运行时会变得非常扭曲。如果我添加一个 SkeletonHelper,我可以看到骨架正确地执行动画,但是它的方向与网格不同。

当网格加载时,它是面朝下的,而骨架是正面朝上的。如果我在 Three.js 中旋转网格使其正面朝上,那么骨架由于某种原因会上下颠倒。我不确定这是否会导致网格失真。

这是我正在采取的步骤:

  1. 在MakeHuman中制作网格。
  2. 导出为 Collada *.dae 文件。
  3. 导入搅拌机。
  4. 使用 MakeWalk Blender 插件重新定位到 BVH 动作捕捉文件。
    • 如果我此时在 Blender 中播放动画,它看起来很完美。
  5. 因为多个站点都说这解决了他们的问题,所以我清除了网格和骨架上的任何位置、旋转或比例。
  6. 使用 Blender 的 Three.js 导出器导出整个场景。
  7. 使用 ObjectLoader 加载场景和嵌入的动画。

任何帮助将非常感激。谢谢。

更新- 我能够(简要地)让模型按预期进行大部分动画(只有一点失真),并且骨架和网格都指向同一个方向,但现在我无法重现我的成功。我相当确定(在 Blender 中)清除或应用旋转、位置和比例是造成差异的原因,但是当我尝试再次执行这些步骤时,我无法让它再这样做了。骨架和网格不再同步。那一定是问题所在,对吧?

我想我需要应用旋转和位置,但清除比例。但是,当我尝试应用该位置时,比例不再显示为“已清除”。我想我不明白 Blender 是如何工作的。清除或应用 Rot、Loc、Scale 的正确方法是什么?我是在重定向到 BVH 之前还是之后申请/清除?也许两者兼而有之?我需要在每个网格和/或骨骼上这样做吗?

4

1 回答 1

0

所以我想出了如何让它发挥作用,尽管我永远无法弄清楚为什么我以前的方法不起作用。

将模型导入 Blender 后(默认选择所有网格)清除旋转、位置和比例。然后,如果模型面向错误的方向,按“n”显示变换面板,在大纲视图中选择根网格节点,并根据需要旋转它。然后,单击 ctrl+A 以应用旋转。

因此,基本上,与其保持在导入过程中设置的轮换,不如清除它并应用您自己的轮换。

于 2015-09-30T14:22:25.850 回答