Unity3D 实用技巧 - 快速学会模型合理导入 Unity3D 引擎

2020-02-14 10:43:17 +08:00
 unn

本文转自 Unity Connect 博主 北京琳云信息科技有限责任公司

学习模型合理导入 Unity3D 引擎

    相信在游戏中,模型相当于游戏必要的元素,例如游戏的一个人物角色,我们可以称它为一个模型,今天和小编一起学习一下,导入 Unity 3d 模型,我们应该注意哪些细节!当然我们知道常用的模型都可以通过 Maya/3D Max 等三维动画软件制作的。

官方学习文档: https://docs.unity3d.com/Manual/FBXImporter-Model.html

1、模型自身规范:

    1.0 所有的模型在原点创建,没有具体的特定要求下,需要以物体对象中心为轴心;

    1.1 模型面数:移动端( 300-1500 个多边形达到比较好的效果) PC 端( 1500-4000 比较适宜)正常的单个物体最好控制在 1000 面以下,所有的物体面数不超过 20000 个三角面;

    1.2 模型大小:模型文件做到最大的优化,对于看不到的面,我们可以采用直接删除,合并断开的点,移除孤立的点;

    1.3 模型命名:命名最好做到规范化,模型在给绑定之前必须做一次重置变换;

    1.4 模型复制:如果物体可以复制的话,就尽量复制;例如一个 500 面的物体,烘培好之后复制出去 50 个,那么他所消耗资源基本和一个物体消耗的资源基本是一样;

    1.5 模型单位:在建模型之前设定好单位,在 Unity3d 中用到的单位设置必须要一样,模型和模型之间的比例要正确,和程序导入的单位要一致,如果到程序中单位需要缩放也尽可能统一调整缩放比例,统一单位为米;

2、模型导入中的规范:

    2.0 模型使用的材质,首先在 3d Max 和 Maya 中,不是所有的材质在 Unity3d 中都可以支持使用,只有 Standard (标准材质)和 Multi/Sub-Object (多维 /子物体材质)被 Unity3d 软件所支持。

    2.1 模型贴图格式和尺寸:常用的图片格式是 .tga 和  .png (带透明通道) 、不带通道为 .jpg ,贴图的尺寸最好为 2 的 N 次方,最大的贴图尺寸不能超过 1024X1024,当然特定的要求,尺寸可以根据具体的需求而定。

    2.2 模型贴图其他注意点:

          2.2.0 贴图命名不要有中文字命名,并且不能有重名;

          2.2.1 材质命名和物体名称最好保持一致,易于整理,材质球的父子层级的命名尽可能一致;

          2.2.2 同种贴图可以使用同一个材质球;

          2.2.3 带 Alpha 通道贴图图片格式最好为 tga 和 png 格式,在命名可以加 _al 加以区分;

          2.2.4 模型需要通过通道处理时,在制作通道纹理,最好将透明部分改成模型的主色,这样渲染可以使有效边缘部分大颜色正确,通道纹理在程序渲染占用的资源同尺寸大普通纹理要多,通道命名也最好以 _al 结尾;

    2.3 Unity 资源导入:

    对于游戏中资源导入可以导入图片,网格等,Project 面板右键( Import New Asset )。

          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、模型在制作软件中具体设置:

    3.0 贴图烘培设置:在进行 Completemap 烘培方式,贴图通道和物体 UV 坐标通道必须为 1 通道。

    3.1 lightingMap 烘培设置时,和 completemap 设置有些不同,贴图通道和物体 UV 坐标必须为 3 通道,烘培时灯光的阴影方式为 adv.raytraced 高级光线跟踪阴影,背景色要改白色,可以避免黑边的情况,主要物件的贴图 UV 必须手动展开;

    3.2 模型绑定及动画

          3.2.0 骨骼必须为 IK、CAT、BIP 三类,Unity 不认虚拟动画,单个物体骨骼数量不超过 60 个;

          3.2.1 动画帧率、帧数的控制,一般情况下每秒 10 帧,一个动画尽量控制 1 秒内完成;

    3.3 模型导出

          3.3.0 将烘培材质改为标准材质球,通道为 1,自发光 100% ;

          3.3.1 合并顶点,删除多余的材质球(不重要贴图缩小);

          3.3.2 物体名称、材质球名、贴图名保持一致;

          3.3.3 按要求导出的 .fbx (检查是否要按组导出,导出 fbx 后,再重新导入 3D Max / Maya 中动画是否正确) 

             .....

    上面虽然没有图片的展示,但是属于实践中的文字总结,希望能帮助到小伙伴们。

原文链接: https://connect.unity.com/p/unity3d-shi-yong-ji-qiao-kuai-su-xue-hui-mo-xing-he-li-dao-ru-unity3d-yin-qing?app=true 欢迎大家戳上方原文链接,下载 Unity 官方技术社区 app,在线技术答疑,发现更多干货~

1839 次点击
所在节点    UNITY
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX