【问题标题】:Animate MakeHuman character with BVH using Three.js使用 Three.js 使用 BVH 为 MakeHuman 角色制作动画
【发布时间】:2016-09-29 17:24:44
【问题描述】:

我正在尝试使用 BVH 通过网页上的骨架为网格设置动画。这是我正在尝试做的整个过程:

  1. 使用 MakeHuman 制作角色并导出(mhx 格式?似乎效果最好)。
  2. 将角色导入 Blender。
  3. 使用 Blender 的 MakeWalk 插件重新定位到 BVH。
  4. 使用 Three.js 导出器将字符导出为 json。
  5. 导出 BVH(不确定这是否有必要,但我想在重定向后让 BVH 与骨架匹配可能会更好)
  6. 使用 Three.js 将角色加载到网页中
  7. 使用 BVH 为角色设置动画。

动画在搅拌机中看起来很棒。我正在尝试使用 JavaScript BVH viewer code from here 修改为使用 MakeHuman 创建的骨架,而不是从 BVH 数据创建骨架。每当我尝试为角色设置动画时,它都会变得非常扭曲。

这是从 Blender 渲染的所需结果(或多或少):

这就是网页上发生的事情:

如您所见,它变得一团糟。我还必须拉远才能看到整个图像。

我尝试过使用不同的钻机、不同的文件格式、重新定位后重新保存 BVH,任你说。我也尝试按照示例here(向下滚动查看说明)进行操作,但它说要删除骨架修改器,当我这样做时,不会导出任何骨骼并且 Three.js 会引发错误。

我很茫然。某处是否有最新示例显示如何做我正在尝试做的事情?

【问题讨论】:

  • 什么是 BVH?我不知道?
  • 这是一种用于动作捕捉的文件格式。 BVH 查看器使用 javascript 解析文件,然后使用数据为角色设置动画。见en.wikipedia.org/wiki/Biovision_Hierarchy

标签: javascript animation three.js blender


【解决方案1】:

当我从 Blender 导出到 Three.js 时,同样的事情发生在我身上。 对我有用的解决方案是(在您列表中的第 3 步之后)以确保在 Blender 中仍然没有尚未应用的对象旋转(ctrl-a)。换句话说,骨架和网格必须没有额外的旋转或缩放。

【讨论】:

  • 我试过了,重置位置、旋转、缩放等。但不幸的是,这不是导致这个问题的原因。
  • 看起来确实存在缩放问题,这让我认为您要么尝试缩放骨架,要么缩放网格并且在导出之前没有应用它。或者,它可能是您正在使用的 Three.js exporter\blender 版本。 2.73 对我有用。
  • 这与我在问题中发布的链接相同。正如我所说,它说要删除修改器,但是当我这样做时,不会导出任何骨骼。这些说明可能仅适用于旧版本的 Three.js。
猜你喜欢
  • 2016-09-13
  • 2013-04-08
  • 2015-08-01
  • 2021-06-17
  • 2012-07-08
  • 2017-11-14
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
相关资源
最近更新 更多