Unity3D 美术资源规范

2015年01月18日 13:26 0 点赞 0 评论 更新于 2025-11-21 14:43

在 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 - Object(多维/子物体材质)可以被支持。需要注意的是,Multi/Sub - Object 材质中的子材质必须为 standard 标准材质才能被支持。

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

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

四、贴图文件格式和尺寸

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

五、贴图材质应用规则

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

六、模型烘焙及导出

1. 烘焙方式

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

2. 烘焙贴图设置

  • CompleteMap 烘焙设置:贴图通道和物体 uv 坐标通道必须为 1 通道,烘焙贴图文件存储为 tga 格式,背景要改为与贴图近似的颜色。
  • LightingMap 烘焙设置:贴图通道和物体 uv 坐标通道必须为 3 通道,烘焙时灯光的阴影方式为 adv.raytraced 高级光线跟踪阴影,背景色要改为白色,这样可以避免黑边的情况。主要物件的贴图 uv 必须手动展开。

七、模型绑定及动画

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