我正在开发一个项目,需要获取 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 导出回 clara.io 的 json 时,枢轴是错误的。这是将其作为 json 重新导入 clara.io 后的模型
任何有关如何使 Maya 和 Threejs 之间的枢轴点始终匹配的建议将不胜感激。
最佳答案
问题是 ThreeJS 不支持与模型的变换原点不同的枢轴。这实际上是游戏引擎的某种标准。
我建议首先在 Clara.io 中在此对象上“重置枢轴”,然后在 Clara.io 中在此对象上进入顶点模式并选择所有顶点。移动顶点,使它们相对于重置轴。这使您可以设置所需的任何枢轴,因为您正在相对于该模型的原点移动顶点。然后,当您导出时,您将拥有新的数据透视表。
我们可以考虑添加对烘焙枢轴的支持。但它有点复杂,因为有多个不同的枢轴 - 一个用于缩放,另一个用于旋转,所以我想我们必须为您提供要烘焙到对象中的选项。
最诚挚的问候, 本·休斯顿,[email protected]
关于three.js - 导入 THREEJS 的某些 fbx 模型的枢轴点错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682529/