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

Posted

技术标签:

【中文标题】导入 THREEJS 的某些 fbx 模型的枢轴点错误【英文标题】:Wrong pivot point for certain fbx models imported into THREEJS 【发布时间】:2015-04-25 07:01:46 【问题描述】:

我正在做一个需要获取 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 导入模型时,一切看起来都很正常,如下所示:

接下来,我使用 File -> Export All -> Threejs Scene 将此模型导出为 THREEJS Scene json。当我将刚刚通过 clara.io 导出的 json 导入 clara.io 时,枢轴是错误的。这是将其作为 json 重新导入 clara.io 后的模型

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

【问题讨论】:

【参考方案1】:

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

我的建议是首先在 Clara.io 中对此对象“重置枢轴”,然后在 Clara.io 中在此对象上进入顶点模式并选择所有顶点。移动顶点,使它们相对于重置轴。这使您可以设置所需的任何枢轴,因为您正在相对于该模型的原点移动顶点。然后,当您导出时,您将拥有新的支点。

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

最好的问候, 本休斯顿,ben@clara.io

【讨论】:

非常感谢您的回答。现在对我来说很有意义。现在我只需要看看是否有自动化的过程来解决这个问题。我正在开发的系统不需要任何人触摸模型来修复枢轴。 我们可以在导出到 ThreeJS 时将其作为一个选项添加——烘焙轴:无、旋转、缩放。

以上是关于导入 THREEJS 的某些 fbx 模型的枢轴点错误的主要内容,如果未能解决你的问题,请参考以下文章

关闭在threejs中点亮一个.fbx模型

三个Js加载FBX不显示所有模型部分

FBX 导出:对象枢轴设置为场景中心

在线急等,关于网页中如何通过threejs 导入带动画的模型

iOS Xcode 从 Maya 导入 COLLADA .dae 3D 模型,同时尊重枢轴点

Three.js 对模型多个动画切换展示(fbx)