Unity3D 模型 怎么做

2015年01月27日 10:06 0 点赞 0 评论 更新于 2025-11-21 15:32

在学习 Unity3D 一段时间后,可能部分人对模型制作这一块还不太了解。本文将详细介绍 Unity3D 模型的制作方法和规范。

一、单位与比例统一

在开始构建模型之前,需要设置好单位。同一场景中所使用的模型,其单位设置必须保持一致,并且模型之间的比例要正确,同时要与程序的导入单位相符。即便在程序中需要对模型进行缩放,也能够统一调整缩放比例。建议统一单位为米。

二、模型规范

1. 模型位置与轴心

所有角色模型最好站立在原点。在没有特定要求的情况下,必须以物体对象中心作为轴心。

2. 面数控制

  • 移动设备:每个网格模型控制在 300 - 1500 个多边形,能达到较好的效果。
  • 桌面平台:理论范围为 1500 - 4000 个多边形。如果游戏中任意时刻屏幕上会出现大量角色,就应该降低每个角色的面数。例如,《半条命 2》中每个角色使用 2500 - 5000 个三角面。
  • 总体控制:正常单个物体的面数应控制在 1000 个以下,整个屏幕的面数应控制在 7500 个以下,所有物体的三角面总数不超过 20000 个。

3. 模型文件优化

仔细检查并整理模型文件,进行最大程度的优化。删除看不到的不必要的面,合并断开的顶点,移除孤立的顶点,同时要注意模型的命名规范。在对模型进行绑定之前,必须进行一次重置变换。

4. 物体复制

对于可以复制的物体,尽量采用复制的方式。例如,一个 1000 面的物体,在烘焙好之后复制出 100 个,其消耗的资源基本和一个物体消耗的资源相同。

三、材质贴图规范

1. 支持的材质类型

目前使用的 Unity3D 软件作为仿真开发平台,对模型的材质有特殊要求。在 3dsMax 中,并非所有材质都能被 Unity3D 软件支持,只有 standard(标准材质)和 Multi/Sub - Objiect(多维/子物体材质)被支持。需要注意的是,Multi/Sub - Objiect 材质中的子材质必须为 standard 标准材质才能被支持。

2. 支持的贴图类型与通道

Unity3D 目前仅支持 Bitmap 贴图类型,其他贴图类型均不支持。只支持 DiffuseColor(漫反射)和 self - Illumination(自发光,用于导出 lightmap)贴图通道。在烘焙 lightmap 后,需要将 Self - Illumination(不透明)贴图通道的 channel 设置为烘焙后的新 channel,并将生成的 lightmap 指向 self - Illumination。

3. 贴图文件格式和尺寸

原始贴图不带通道的采用 jpg 格式,带通道的使用 32 位 tga 或者 png 格式。贴图尺寸最大不要超过 2048,且贴图文件尺寸须为 2 的 N 次方(如 8、16、32、64、128、256、512、1024),最大贴图尺寸不能超过 1024x1024。特殊情况下,尺寸可在这些范围内进行调整。

四、贴图材质应用规则

  1. 贴图不能使用中文命名,且不能有重名。
  2. 材质球命名要与物体名称一致,材质球的父子层级命名也必须一致。
  3. 同种贴图必须使用同一个材质球。
  4. 除需要用双面材质表现的物体外,其他物体不能使用双面材质。
  5. 材质的 ID 和物体的 ID 号必须一致。
  6. 若使用 completemap 烘焙,烘焙完成后会自动生成一个 shell 材质,必须将其转换为 standard 标准材质,并且通道要保持一致,否则无法正确导出贴图。
  7. 带 Alpha 通道的贴图存储为 tga 或者 png 格式,命名时必须添加 _al 以作区分。
  8. 当模型需要通过通道处理时,需要制作带有通道的纹理。制作树的通道纹理时,最好将透明部分改为树的主色,这样在渲染时可以使有效边缘部分的颜色正确。通道纹理在程序渲染时占用的资源比同尺寸的普通纹理要多,通道纹理命名应以 _al 结尾。

五、模型烘焙及导出

1. 烘焙方式

  • LightMap 烘焙贴方式:这种烘焙贴图渲染出来的贴图仅带有阴影信息,不包含基本纹理。适用于制作纹理较清晰的模型文件(如地形),其原理是将模型的基本纹理贴图和 LightMap 阴影贴图进行叠加。优点是最终模型纹理比较清晰,且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出 FBX 文件,无需修改贴图通道。缺点是 LightingMap 贴图不带有高光信息。
  • CompleteMap 烘焙方式:这种烘焙贴图方式渲染出来的贴图本身带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。

2. 烘焙贴图设置

  • completemap 烘焙方式:贴图通道和物体 uv 坐标通道必须为 1 通道,烘焙贴图文件存储为 tga 格式,背景要改为与贴图近似的颜色。
  • lightingmap 烘焙方式:贴图通道和物体 uv 坐标通道必须为 3 通道,烘焙时灯光的阴影方式为 adv.raytraced 高级光线跟踪阴影,背景色要改为白色,以避免出现黑边。

3. 贴图 uv 展开

主要物件的贴图 uv 必须手动展开。

六、模型绑定及动画

  1. 骨骼类型必须为 IK、CAT、BIP 三类,Unity 不支持虚拟体动画,单个物体的骨骼数量不超过 60 个。
  2. 控制动画帧率和帧数,一般情况下为每秒 10 帧,一个动画尽量在 1 秒内完成。
  3. 角色蒙皮、动作调节规范详见(动画规范流程表)。
  4. 导出动画时,分开导出两个文件。先导出没有动作的模型和骨骼,该模型需要带有蒙皮信息;之后调节好动画后,导出只有骨骼的 fbx 文件。

七、模型导出

  1. 将烘焙材质改为标准材质球,通道设置为 1,自发光设置为 100%。
  2. 确保所有物体名、材质球名、贴图名保持一致。
  3. 合并顶点,清除场景,删除无用的物件。
  4. 清理材质球,删除多余的材质球(不重要的贴图可缩小)。
  5. 按照要求导出 fbx 文件(检查是否需要打组导出),导出后重新导入 max 中查看 fbx 的动画是否正确。
  6. 根据验收表格对照文件是否正确。

八、文件备份提交标准

  1. 最终确认后的 max 文件,按照角色模型、场景模型、道具模型分类,并带上贴图,存放到服务器相应的“项目名/model/char”“项目名/model/scene”“项目名/model/prop”文件夹中。动画文件存放到 anim 文件夹中。
  2. 导出给程序的 obj、fbx 等格式文件,统一存放在 export 文件夹下的子文件夹 anim、model、prop 中。

九、项目命名要求

  1. 项目进入策划阶段时,各部门统一为项目命名,在服务器上建立项目名称文件夹,制作人员在本机制作时也建立对应名称的项目文件夹。
  2. 角色模型命名:采用“项目名_角色名字”的格式。如果在 max 文件中需要对模型对象的各部位进行分开命名,则在上述命名基础上加上“_部位”,例如角色头部命名为“项目名_角色名_head”,材质球和贴图的命名也保持一致。
  3. 场景、道具命名:命名为“项目名_场景名称”。在 max 文件中,对应的物体命名为“项目名_场景名物体名”;如果同类物体较多,则命名为“项目名_场景名_物体名_01 - 02……”,按照数字类推的方式命名。材质球和贴图的命名与物体名字对应,同类物体只需使用同一个材质球和同一张贴图。
  4. 带通道的贴图要添加 _al 后缀。
  5. 特效贴图以特效名称命名,贴图添加 _vfx 后缀。

作者信息

feifeila

feifeila

共发布了 3994 篇文章