一.实验目的:
掌握第三方软件生成的3D模型资源的导出方法(通常是fbx格式),了解Unity对导入的3D模型的特殊要求
作业内容:
(1)在网络上收集阅读与Unity 3D 模型导入相关的文档,看看主要存在几种问题及解决方案
(2)选择一种可能存在的问题,在3Ds Max或Maya中模拟生成的文献描述的模型并导入Unity,测试是否会出现类似的问题,尝试相应的解决方案
二.导入流程:
经查阅资料,可以得知向unity中导入文件的流程如下:
方法1:
1.unity并非支持所有外部模型的所有属性,例如maya的.mb文件就可以在unity中使用网络/材质/动画/骨骼的功能,但是3D Studio格式中的.3ds格式在unity中却仅支持网络一种属性。所以需要先查阅支持格式,并确定要使用的文件类型和制作软件。
2.确定制作软件后,在软件内创建一个英文路径(例如Vehicle),点击File------New Project---Create---将文件命名
3.在软件内对该对象进行创建,若创建后模型分为几部分,选择一个主体作为导入后的母模型。创建完成后将该文件保存在文件夹内准备导入(例如maya2016创建的是.mbf文件)
4.打开unity,创建一个场景,并将创建的模型.mbf文件拖入Assets框内,成功后会留下模型文件和材质贴图文件
5.将模型文件拖入场景内,并按照场景的需要进行旋转/缩放,注意模型的Scale Factor面板内有物体的属性默认值。
方法2:前2步同上;
3.创建完成后,点击File----Export,将所选择模型文件进行导出,格式选择FBX模式,并将导出文件直接保存到unity场景的Assets文件夹内。此时保存的模型若不需要骨骼/材质等特性,就可以暂时将这些选框从FBX EXPORT面板内勾选掉。
4.在Unity中打开Project----文件栏找到刚导入的FBX模型,选中后用方法1中修改大小的方法修改FBX模型的尺寸,并将它放置在合适的位置上。
二.导入结果:
如下图:
其中汽车是大二上学期的期中作业,蓝色炮台是最近用MAYA做出来的,远处的悬浮球是该unity中添加的3D Object。三个物体均可以在unity中显示,但是导入的时候遇到了以下问题:
1.物体的大小发生了巨大的变化,由于UNITY和Maya使用的标尺不同,因此导入进去的模型一开始都非常小,例如汽车由于使用了外部图片作为标尺,因此长宽高只有不到2000x1000x500像素,导入到unity中之后几乎长度和球的半径差不多。
经过网上查阅资料得知,3DMAX和Maya中使用的单位均是inch,而unity中的最小单位是米。因此换算后,模型在导入Unity时被缩小了100倍,应该在导入后从SCALE FACTOR中将XYZ的值分别扩大100倍。
2.炮台也是如此,但是由于设计的时候使用了厘米制单位,因此导入到unity中后大小和原来在maya中的视觉大小差距不大。因此解决方法是在制作XBF文件时就将物体大小转换为UNITY可识别的单位,并将大小换算至unity中合适的大小。
3.其他未出现但是查阅资料获得的问题:
3Dsmax中导出的模型会遇到轴向旋转问题,部分模型导入后轴心发生90度的旋转,解决方式是在3DMAX中勾选调节仅影响轴选项即可。
导入后部分材质的性质遭到破坏-----需要按照顺序将模型物体的材质存放在material文件夹中,将贴图存放在texture文件夹中,将模型存放在object文件夹内。
光晕导入后无法识别---Camera的Far Clip plane数值过小-----光晕在unity的设置下太远/太高导致看不到-----解决方式是将光晕位置贴近或者将Far Clip plane数值增大。
部分过于复杂的模型无法显示------模型的多边形poly数量过多----unity的内置限制是单个物体面数不能超过65000个三角形-----需要在原建模软件中合理分配物体的多边形数量(多边形数量可以在物体属性/Properties中查看Faces属性。)