Unity合理导入模型
前言
相信在游戏中,模型相当于游戏必要的元素,例如游戏的一个人物角色,我们可以称它为一个模型,今天学习一下导入 Unity 3d 模型,我们应该注意哪些细节!当然我们知道常用的模型都可以通过 Maya/3D Max 等三维动画软件制作的。
正文
官方学习文档:https://docs.unity3d.com/Manual/FBXImporter-Model.html
- 模型自身规范:
1.0 所有的模型在原点创建,没有具体的特定要求下,需要以物体对象中心为轴心;
1.1 模型面数:移动端( 300-1500 个多边形达到比较好的效果) PC端( 1500-4000 比较适宜)正常的单个物体最好控制在 1000 面以下,所有的物体面数不超过20000 个三角面;
1.2 模型大小:模型文件做到最大的优化,对于看不到的面,我们可以采用直接删除,合并断开的点,移除孤立的点;
1.3 模型命名:命名最好做到规范化,模型在给绑定之前必须做一次重置变换;
1.4 模型复制:如果物体可以复制的话,就尽量复制;例如一个 500 面的物体,烘培好之后复制出去 50 个,那么他所消耗资源基本和一个物体消耗的资源基本是一样;
1.5 模型单位:在建模型之前设定好单位,在 Unity3d 中用到的单位设置必须要一样,模型和模型之间的比例要正确,和程序导入的单位要一致,如果到程序中单位需要缩放也尽可能统一调整缩放比例,统一单位为米; - 模型导入中的规范:
2.0 模型使用的材质,首先在 3d Max 和 Maya 中,不是所有的材质在 Unity3d 中都可以支持使用,只有 Standard(标准材质)和 Multi/Sub-Object(多维/子物体材质)被 Unity3d 软件所支持。
2.1 模型贴图格式和尺寸:常用的图片格式是 .tga 和 .png (带透明通道) 、不带通道为 .jpg ,贴图的尺寸最好为 2 的 N 次方,最大的贴图尺寸不能超过 1024X1024 ,当然特定的要求,尺寸可以根据具体的需求而定。
2.2 模型贴图其他注意点:
2.3 Unity资源导入:对于游戏中资源导入可以导入图片,网格等,Project 面板右键( Import New Asset )。2.2.0 贴图命名不要有中文字命名,并且不能有重名; 2.2.1 材质命名和物体名称最好保持一致,易于整理,材质球的父子层级的命名尽可能一致; 2.2.2 同种贴图可以使用同一个材质球; 2.2.3 带Alpha 通道贴图图片格式最好为 tga 和 png 格式,在命名可以加 _al 加以区分; 2.2.4 模型需要通过通道处理时,在制作通道纹理,最好将透明部分改成模型的主色,这样渲染可以使有效边缘部分大颜色正确,通道纹理在程序渲染占用的资源同尺寸大普通纹理要多,通道命名也最好以 _al 结尾;
2.3.0 图片设置: TextureType:贴图类型。 AlphafromGrayscal :使用灰度创建 Alpha,当需要unity为贴图创建一条 alpha 通道,使用它转换得到的灰度值来渲染透明度,可以开启它。 WrapMode:所谓的包裹模式,决定贴图会无限次平铺还是只绘制一次。Repeat 就是重复平铺。Clamp 会让贴图的边缘拉升并在改变大小时候填满任何缝隙。 FilterMode:所谓的图像过滤模式,在拉伸时候对贴图过滤,比如 [Point] 点过滤,在很近看贴图时候,可能感觉不均。Bilinear 它会时近看贴图显得模糊。Trilinear 它会在不同 mipmap 层次之间模糊。 AnisoLevel:设置各项异性过滤器的级别,同属的可以理解为当你从一个比较陡的角度来看,贴图现实的可以有多细腻,渲染的等级越高,越占内存。想要确定贴图页面会占用多大内存,可以长X宽,再乘以他的位深度 [bpp,每像素位数] ,如果贴图包含 mipmap ,还需要扩大 1.33 倍。 2.3.1 网格设置: 网格就是那些 Maya ,C4D,3DSMAX,C3D,LW 等软件导出的文件。比如导入一个 .fbx 文件。选中后,在Inspector面板中,我们能看到下面的属性: ScaleFactor:缩放系数,使用这个属性在导入资源后设置其大小,调整资源在场景现实过大,或者过小的问题。 MeshCompression:网格压缩的比例( Off,Low,Medium,High )不可否认,压缩时可以节约内存的。 OptimizeMesh:为提高 GPU 性能记录网格顶点和索引。 GenerateColliders:是否在场景中让网格对象具有碰状体表现,通俗的说就是实心的,不可以穿体而过。 SwapUVs:交换 UV ,当你导入一个网格对象时候,着色器可能会使用错误的 UV 通道,如果发现资源异常(比如带光照图时候),可以选中这个复选框。 Generate Lightmap UVs:为UV2生成光照贴图。 Normals&Tangents:该项设置计算法线切线 Normals:计算法线,import 表示使用导入的网格法线,Calculate 表示从新计算网格法线。 Tangents:计算切线,import 表示使用导入的网格切线,Calculate 表示从新计算切线。 Smoothing angle:法线平滑角度,告诉引擎在角度值为多少时候把一个边缘视为硬边缘。 Split Tangents:是否分离切线,如果模型在场景渲染后现实 UV 缝隙,要开启它。 Materials: Import Materials:是否导入材质,默认选中。 Material Naming:材质名字生成模式。 Material Search:材质搜索方案。
- 模型在制作软件中具体设置:
3.0 贴图烘培设置:在进行Completemap 烘培方式,贴图通道和物体 UV 坐标通道必须为1 通道。
3.1 lightingMap 烘培设置时,和 completemap 设置有些不同,贴图通道和物体 UV 坐标必须为 3 通道,烘培时灯光的阴影方式为 adv.raytraced 高级光线跟踪阴影,背景色要改白色,可以避免黑边的情况,主要物件的贴图 UV 必须手动展开;
3.2 模型绑定及动画
3.3 模型导出3.2.0 骨骼必须为 IK 、CAT、BIP 三类,Unity 不认虚拟动画,单个物体骨骼数量不超过 60 个; 3.2.1 动画帧率、帧数的控制,一般情况下每秒 10 帧,一个动画尽量控制 1 秒内完成;
3.3.0 将烘培材质改为标准材质球,通道为 1 ,自发光 100% ; 3.3.1 合并顶点,删除多余的材质球(不重要贴图缩小); 3.3.2 物体名称、材质球名、贴图名保持一致; 3.3.3 按要求导出的 .fbx (检查是否要按组导出,导出 fbx 后,再重新导入 3D Max/Maya 中动画是否正确)
to be continued…
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tamsiree!
评论