导入 THREEJS 的某些 fbx 模型的轴心点错误

Wrong pivot point for certain fbx models imported into THREEJS

我正在开展一个项目,该项目需要获取 fbx 模型并在 THREEJS 查看器中查看它们。大多数时候,这些模型都带有正确的枢轴点,但有时却没有。我很难找出导致此问题的原因。

我正在使用此脚本将 fbx 转换为 json:

https://github.com/mrdoob/three.js/blob/master/utils/converters/fbx/convert_to_threejs.py

您可以在此处找到轴心点错误的 fbx 文件示例:

http://s000.tinyupload.com/index.php?file_id=42525924957536854290

此模型仅包含一个网格,是使用 FBX 插件版本 2014.0.1 从 Maya 导出的。枢轴应该靠近模型的中心,但在 threejs 中加载时它位于模型的底部。它似乎将枢轴放置在 (0,0,0)。

我 运行 使用 https://clara.io/ 上的在线模型查看器对该模型进行了测试。当我使用 fbx 导入模型时,一切看起来都很正常,如下所示:

接下来,我使用文件 -> 全部导出 -> Threejs 场景将此模型导出为 THREEJS 场景 json。当我导入 json 时,我刚刚通过 clara.io 导出回 clara.io,枢轴是错误的。这是将其作为 json 重新导入 clara.io

后的模型

任何关于如何使轴心点始终在 Maya 和 Threejs 之间匹配的建议将不胜感激。

问题是 ThreeJS 不支持与模型的转换原点不同的枢轴。这实际上是游戏引擎的标准。

我建议首先在这个对象上 Clara.io 中 "Reset Pivots",然后在这个对象上 Clara.io 和 select 所有顶点进入顶点模式.移动顶点,使它们相对于重置轴。这允许您设置任何您想要的枢轴,因为您正在相对于该模型的原点移动顶点。然后当您导出时,您将拥有新的枢轴。

我们可以考虑添加对烘焙枢轴的支持。但它有点复杂,因为有多个不同的枢轴 - 一个用于缩放,一个单独的用于旋转,所以我想我们必须让您选择要烘焙到对象中的选项。

此致, 本·休斯顿,本@clara.io