模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题


前言

Unity中可以使用的三维模型格式为FBX或者Obj,这些模型往往需要通过CATIA、SolidWorks等三维软件进行设计,而后经3DMax等第三方软件转化格式后才能使用。

但是在实际操作过程中,针对复杂的零件或者装配体模型,其导出的FBX或者Obj格式文件,导入Unity后往往出现模型位置偏移,旋转中心不是其几何中心等相关问题。

这样往往导致,使用Vuforia开发,将模型的localposition设为零后,模型与Vuforia图片并不重合,尤其是在程序运行时动态加载模型,该问题更难以解决。


本博文拟解决的问题如上所述,主要通过设置3DMax等第三方软件进行解决。

一、相关软件

  1. CATIA V5 / SolidWorks:设计创作三维模型.

  2. 3DMax 2014:格式转化,将三维软件的格式转化为FBX/OBJ.

  3. Unity 2017:模型导入.

二、问题根源

出现上述问题的主要原因在于在模型设计阶段,模型的中心就不在其几何中心,尤其是针对装配体,以上的问题的印象更为突出。

为了验证上述问题,笔者在此使用SolidWorks绘制简单的Cube模型,且故意不把其中心放在设计软件的坐标系中心,如下所示。
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第1张图片
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第2张图片
如果不经过处理,通过博文所述的方法,将SW模型转化为Unity可使用的FBX文件后,会出现如题所述问题,如下所示:
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第3张图片

以上问题针对Sw的装配体模型尤其突出,因为装配开始时,第一个固定的零件位置就与设计软件的坐标系中心分离,而后想将模型整体作为一个模型使用,需要将装配体再另存为零件,再进行格式转化,另存过程中,中心不发生变化,故会出现如题所述问题。

二、解决方法

1.简单零件模型

养成良好的设计习惯,在零件设计阶段就注意将模型的几何中心与设计软件的坐标系中心统一,可以直接避免后续的弥补操作。

2.使用第三方软件修改中心

针对复杂零件模型或者装配体生成的整体模型,可以通过3DMax等第三方软件修改模型的中心,具体操作如下。

1)导入Sw模型到3DMax软件,如下图
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第4张图片
2)删除无用相关信息(H键调出菜单)
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第5张图片

3)轴转化
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第6张图片
4)导出
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第7张图片
(注,向上轴选择Z/Y笔者没有发现区别,有相关经验读者可联系我交流)

5)验证
模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题_第8张图片
如上图所示,未经过轴转化,模型中心与世界坐标系不重合,经过轴转化可实现重合。

(上图为了显示出Unity世界坐标系中心,特移动了Unity创建的Cube的一个微小距离,position置零,轴转化后的模型中心与世界坐标系中心重合)


总结

如上,实现CAD软件设计的模型经过第三方软件轴转化后,将模型的旋转中心设定为其几何中心的,欢迎批评指正!

想送你‘一剪宋朝的时光,有漫天飞雪,有红梅簇簇,有你,回头对我笑 .HDarker

你可能感兴趣的:(Unity模型相关)