javascript - 使用 Three.js 通过 BVH 为 MakeHuman 角色制作动画

标签 javascript animation three.js blender

我正在尝试使用 BVH 通过网页上的网格物体的骨架来制作动画。这是我正在尝试做的总体过程:

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

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

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

desired result

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

buggy result

正如你所看到的,事情变得一团糟。我还必须缩小才能看到整个图像。

我尝试过使用不同的装备、不同的文件格式,在重定向后重新保存 BVH,等等。我也尝试遵循示例 here (向下滚动查看说明),但它说要删除骨架修改器,当我这样做时,不会导出任何骨骼,并且 Three.js 会抛出错误。

我很茫然。是否有一个最新的示例可以展示如何做我想做的事情?

最佳答案

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

关于javascript - 使用 Three.js 通过 BVH 为 MakeHuman 角色制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970791/

相关文章:

javascript - 如何理解这个逻辑和三元运算符的例子?

javascript - three.js 3d 模型作为超链接

android - 打开 Whatsapp 之类的对话框时显示动画?

javascript - keyup 后继续触发 keydown 事件

javascript - 在 chrome 检查器扩展中操作之前, react 三个 js 场景不会呈现

javascript - 我如何判断 javascript 函数是否可以跨浏览器工作

javascript - Svg 圆形填充 CSS

swift - 动画在 Swift 中完成时调用函数

javascript - 如何使用 Three.js 制作球形多面体(足球或橄榄球)

javascript - 如何将 Object3d.toJSON() 操作卸载给 Web Worker?