模型规范专题
# 前言 数字模型制作规范
本文提到的所有数字模型制作,全部是用 3D MAX 建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个 VR 模型制作完成时,它所包含的基本内容包括场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、坐标、纹理尺寸、纹理格式、材质球等必须是符合制作规范的。一个归类清晰、面数节省、制作规范的模型文件对于程序控制管理是十分必要的。
首先对制作流程作简单介绍:素材采集 ---> 模型制作 ---> 展UV坐标 ---> 贴图制作 ---> 场景塌陷、命名 ---> 灯光渲染测试 ---> 场景烘培 ---> 场景调整导出
# 第一章 模型制作规范
- 单位比例:在没有特殊要求的情况下,单位为米(Meters),如下图所示:



提示
Max 中实际的 1cm 导入到 Unity3d 中就是实际的 1m,所以在 Max 中显示 1m 实际设置为 1cm 。
确定底图:在模型分工之前,必须确定模型定位标准,一般这个标准会是一个 CAD 底图。制作人员必须依照这个带有 CAD 底图的文件确定自己分工区域的模型位置,并且不得对这个标准文件进行任何修改。导入到 MAX 里的 CAD 底图最好在(0,0,0)位置,以便制作人员的初始模型在零点附近。
多余面数:删除场景中多余的面,在建立模型时,看不见的地方不用建模,对于看不见的面也可以删除,主要是为了提高贴图的利用率,降低整个场景的面数,以提高交互场景的运行速度。如 Box 底面、贴着墙壁物体的背面等。
避免闪面:保持模型面与面之间的距离推荐最小间距为当前场景最大尺度的 二千分之一。例如:在制作室内场景时,物体的面与面之间距离不要小于 2mm;在制作场景长(或宽)为 1km 的室外场景时,物体的面与面之间距离不要小于 20cm。如果物体的面与面之间贴得太近,会出现两个面交替出现的闪烁现象。模型与模型之间不允许出现共面、漏面和反面,看不见的面要删掉。在建模初期一定要注意检查共面、漏面和反面的情况。
复制模型:可以复制的物体尽量复制。如果一个 1000 面的物体,烘焙好之后复制出去 100 个,那么他所消耗的资源,基本上和一个物体所消耗的资源一样多。
Poly 建模:建模时最好采用 Editable Poly 多边形建模,这种建模方式在最后烘焙时不会出现三角面现象,如果采用 Editable Mesh 在最终烘焙时可能会出现三角面的情况。如下图所示:

- 模型的塌陷:当一栋建筑模型经过建模、贴纹理之后,然后就是将模型塌陷,这一步工作也是为了下一步烘焙做准备。所以在塌陷的时候要注意一些问题:
a 按照 “一建筑一物体” 的原则塌陷,体量特别大或连体建筑可分塌为 2-3 个物体,但导出前要按建筑再塌成一个物体,城中村要按照院落塌陷。
b 用 Box 反塌物体,转成 Poly 模式,这时需检查贴图有无错乱。
c 塌陷物体,按楼或者地块来塌陷,不要跨区域塌陷。
d 按项目对名称的要求进行严格的标准的命名。
e 无特殊要求前提下,所有物体的质心要归于中心,检查物体位置无误后锁定物体。
2
3
4
5
注意
所有物体不准出现超过 20000 三角面的情况,否则导出时出错。
- 模型命名:模型不能使用中文命名(包括中文标点符号),必须使用英文命名,命名中不能包含 “.” 字符。地形、建筑、角色模型不允许出现重名,必须按规范命名。所有美术资源后缀统一为小写字母。材质名称命名:“mat” 开头。纹理贴图命名:“tex” 开头。

- 树木模型:树的种植方法,用十字交叉树或简模树。在种植树木的时候,要考虑到与周围建筑的关系,不能乱种树,要根据现状放置不同的树种、位置;重点建筑地块需种简模树,并在原地与之对应的种上十字片树(替换用);导出时模型树和与之对应的十字片树为单棵的,其它十字片树可塌一起,但面数不能超过1万。
注意
总体原则是控制面数,有的项目也会在 Unity3d 中的地形上刷树木,根据不同项目会有对应制作规范。
- 模型级别:也就是模型的精细程度,有时我们在建模的时候要根据建筑所处的具体位置,重要程度对该建筑进行判断是建成何种精度的仿真模型。可以将建筑分为五个等级。其中,一级为最高等级,五级为最低等级。如无特殊需求前提下,一般手游项目模型等级为一级,大型项目会考虑采用分级建模。单个物体的面数不要太大,毕竟是做虚拟现实,而不是制作单张效果图。单个物体面数要控制到 8000 个面以下。
a 角色质心点:所有角色模型最好站立在原点。没有特定要求下,必须以物体对象底部为质心点。
b 主角面数:主角模型控制在 900-1300 个三角面(以最终导入 Unity3d 中的三角面数量为准)。贴图控制在1张,最好 256*256,最多 512*512。
c 小怪面数:小怪模型控制在 600-900 个三角面(以最终导入 Unity3d 中的三角面数量为准)。贴图控制在 1 张,最大 256*256。
d 武器面数:武器模型控制在 115 个三角面,187 个顶点以内。贴图控制在 1 张,最大 256*256,最好 128*128。
e 场景面数:场景(地形、建筑、其他装饰物)面数控制在 10000 面左右,贴图控制在最多 2 张 512*512。
2
3
4
5
- 镜像物体:用镜像复制的方法来创建新模型,需要加修改编辑器修正一下。
a 需要选中镜像后的物体,然后进入 Utilities 面板中单击 Reset XForm,然后单击 Reset Selected。
b 进入 Modfiy 面板选取 Normal 命令,反转一下法线即可。
c 将模型转换为 Editable Poly ,不要带着修改器导出模型。
2
3
- 缩放物体:如果在 MAX 中对模型进行过缩放,需要加修改编辑器修正。
a 需要选中缩放后的物体,然后进入 Utilities 面板中单击 Reset XForm,然后单击 Reset Selected。
b 将模型转换为 Editable Poly,不要带着修改器导出模型。
2
- 烘焙黑缝:烘焙的物体黑缝解决办法,在烘焙的时候,如果图片不够大的时候,往往会在边缘产生黑缝。处理如下:
a 如果做鸟瞰楼体比较复杂可以把楼体合并成一个物体变成多重材质,然后对楼体进行整体完全烘焙;这样可以节省很多资源。
b 对于建筑及地形,须检查模型的贴图材料平铺的比例,对于较远的地表(或者草地),可以考虑用一张有真实感的图来平铺,平铺次数少一些。对于远端的地面材料,如果平铺次数大了,真实感比较差。
2
# 第二章 材质贴图规范
材质和贴图类型
我们目前使用的是 Unity3d 软件作为仿真开发平台,该软件对模型的材质有一些特殊的要求,在我们使用的 3dsMax 中不是所有材质都被 Unity3d 软件所支持,只有下面几种材质是被 Unity3d 软件所支持。
Standard(标准材质):默认的通用材质球。基本上目前所有的仿真系统都支持这种材质类型。
Multi/Sub-Object(多维/子物体材质):将多个材质组合为一种复合式材质,分别指定给一个物体的不同次物体选择级别。要注意的是,在VR场景制作中,Multi/Sub-Object 材质中的子材质一定要是 Standard 标准材质。否则不被 Unity3d 支持。我们在制作完模型进行烘焙贴图前都必须将所有物体塌陷在一起,塌陷后的新物体就会自动产生一个新的 Multi/Sub-Object 多维/子物体材质。因此,这种材质类型在我们的仿真制作中经常使用。
贴图通道及贴图类型
Unity3d 目前只支持 Bitmap 贴图类型,其它所有贴图类型均不支持。只支持 Diffuse Color (漫反射) 同 Self-Illumination (自发光,用来导出 Lightmap) 贴图通道。Self-Illumination(不透明)贴图通道在烘焙 Lightmap 后,需要将此贴图通道额 Channel 设置为烘焙后的新 Channel ,同时将生成的 Lightmap 指向到 Self-Illumination。
贴图的文件格式和尺寸
模型的透明贴图为 PNG,Unity3d 不支持 DDS 格式贴图。模型贴图文件尺寸必须是2的N次方 (8、16、32、64、128、256、512),建筑的原始贴图不带通道的为 JPG,带通道的为 32 位 TGA,但最大别超过 2048。在烘培时将纹理贴图存为 TGA 格式。UI 贴图尺寸可以不遵循 2 的 N 次方设计。
贴图和材质应用规则
a 贴图不能以中文命名,不能有重名。 b 材质球命名与物体名称一致。 c 材质球的父子层级的命名必须一致。 d 同种贴图必须使一个材质球。 e 除需要用双面材质表现的物体之外,其他物体不能使用双面材质。 f 材质球的 ID 号和物体的 ID 号必须一致。 g 若使用 CompleteMap 烘焙,烘焙完毕后会自动产生一个 Shell 材质,必须将 Shell 材质变为 Standard 标准材质,并且通道要一致,否则不能正确导出贴图。 h 带 Alpha 通道的贴图,在命名时必须加 _al 以区分。
1
2
3
4
5
6
7
8通道纹理应用规则
模型需要通过通道处理时需要制作带有通道的纹理。在制作树的通道纹理时,最好将透明部分改成树的主色,这样在渲染时可以使有效边缘部分的颜色正确。通道纹理在程序渲染时占用的资源比同尺寸普通纹理要多。通道纹理命名时应以 -al 结尾。
# 第三章 模型烘焙及导出
模型烘焙
第一步 场景灯光
a 渲染方式:采用 Max 自带的 Light Tracer 光线追踪进行渲染。 b 灯光效果控制:该项目在烘焙前会给出固定的烘焙灯光,灯光的高度、角度、参数均不可调整,可以在顶视图中将灯光组平移到自己的区块,必须要用灯光合并场景然后烘焙。
1
2第二步 烘焙贴图方式
建筑模型的烘焙方式有两种:一种是 LightMap 烘焙贴方式,这种烘焙贴图渲染出来的贴图只带有阴影信息,不包含基本纹理。具体应用于制作纹理较清晰的模型文件 (如地形),原理是将模型的基本纹理贴图和 LightMap 阴影贴图两者进行叠加。优点是最终模型纹理比较楚,而且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出 FBX 文件,不用修改贴图通道。缺点是 LightingMap 贴图不带有高光信息;另一种是 CompleteMap 烘焙方式,这种烘焙贴图方式的优点是渲染出来的贴图本身就带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。
第三步 烘焙贴图设置
CompleteMap 烘焙方式,在进行 CompleteMap 烘焙设置时,应注意以下几点:
a 贴图通道和物体UV坐标通道必须为 1 通道,见下图所示:
b 烘焙贴图文件存储格式为 TGA 格式。
c 烘焙设置见下图所示:
LightingMap 烘焙方式,在进行 LightingMap 烘焙设置时,和 CompleteMap 设置有些地方不同:
a 贴图通道和物体 UV 坐标通道必须为 3 通道,见下图所示:
b 烘焙时灯光的阴方式为 Adv.RayTraced 阴影,见下图所示:
c 烘焙设置见下图所示:
d 用 LightingMap 烘焙时,背景色要改为白色,可避免有黑边的情况;而用 CompleteMap 烘培时,背景色要改为与贴图近似的颜色。
e 在使用 LightingMap 烘焙后,需要将材质改回 Standard,然后将新生成的 Map 拷贝到 Standard 的 Self-Illumination 内,并设置正确的贴图通道。
4 贴图 UV 编辑
必须手动进行 UV 编辑。
模型导出
1 将烘培材质球改为标准材质球,通道为 1,自发光 100。
2 将所有物体名、材质球名、贴图名保持一致。
3 合并顶点(大小要合适)。
4 清除场景,除了主要的有用的物体外,删除一切物件。
5 清材质球,删除多余的材质球(不重要的贴图要缩小)。
6 按要求导出 FBX(检查看是否要打组导出)。
7 根据验收表格对照文件是否正确。
# 第四章 场景模型验收
模型制作流程
模型验收流程
模型验收标准
# 第五章 模型备份提交标准
1 UV 坐标:存放地型和建筑烘培前编辑的 UV 坐标。
2 导出 FBX:存放最终导出的地型和建筑的 FBX 文件。
3 烘培贴图:存放地型的最终贴图和建筑的最终烘培贴图,TGA 格式的,同时这里面有一份转好的贴图。
4 原始贴图:存放地型和建筑在制作过程中的所有的贴图。
5 Max 文件:原始模型未做任何塌陷的,有 UVW 贴图坐标的文件。
6 最终确认后的 Max 文件分角色模型、场景模型、道具模型带贴图存放到服务器相应的 "项目名/model/char","项目名/model/scene" ,"项目名/model/prop"文件夹里面。动画文件对应的存放至 anim 文件夹中。
7 导出给程序 obj、fbx 等格式文件统一存放至 export 文件夹下的子文件夹 anim、model、prop文件夹下。
提示
烘焙前模型文件:已经塌陷完的,展好 UV 的,调试好灯光渲染测试过的文件。
烘焙后模型文件:已经烘培完的,未做任何处理的文件。
导出模型文件:处理完烘培物体,合并完顶点,删除了一切没用物件的文件。
# 第六章 项目命名要求
1 项目进入策划时,各部门统一为项目命好名称,服务器建立项目名称文件夹,制作人员本机制作时建立对应名称的项目文件夹。
2 角色模型命名:项目名_角色名字,Max 文件中模型对象如果需要分开各部位时,应在此命名的基础上_部位,如角色头部命名为:项目名_角色名 _head ,以此类推。对应的材质球、贴图都将命名一致。
3 场景、道具命名:项目名_场景名称,Max 文件中对应的物体为项目名_场景名物体名,同类的比较多的情况下,命名为:项目名_场景名_物体名_01-----02……同类型的物体以数字类推方式命名。材质球、贴图对应物体名字。同类物体只需要给同一个材质球,同一贴图即可。
4 带通道的贴图:要加 _al 后缀。
5 特效贴图以特效名称命名,贴图加入 _vfx 后缀。
6 建筑模型命名:区域名_jz_编号;如:SH01_01_jz_01、SH01_01_jz_02……。
7 建筑贴图命名:模型名_编号;如:SH01_01_jz_01_01……。
8 地形模型命名:区域名_dx_编号;如:SH01_01_dx_01……。
9 地形贴图命名:模型名_编号;如:SH01_01_dx_01_01……。
10 镂空贴图:要加 “_al” 后缀。
11 需要加特效的玻璃要加 “_bl” 后缀(需要加特效的要单独一个物体烘焙)。
# 第七章 创建各资料路径
1 航片存放路径。
2 各区域 CAD 导出的 MAX 文件。
3 照片资料。
4 公共纹理库资料。
5 客户提供的所有资料。
# 模型绑定及动画
1 骨骼必须为 IK、CAT、BIP 三类,Unity3d 不认虚拟体动画,单个物体骨骼数量不超过 60 个。
2 动画帧率、帧数的控制,一般情况下为每秒 10 帧,一个动画尽量控制在 1 秒内完成。
3 角色蒙皮、动作调节规范详见---(动画规范流程表)。
4 导出动画,分开 2 个文件,导出没有动作的模型、骨骼,模型需要带有蒙皮信息。之后调节好做动画后导出的就是只有骨骼的 fbx 文件。
# 第九章 其他注意事项
1 围墙、护栏、雨棚、车棚等要按实际制作。
2 照片与图纸不符时,以实际照片为主。
3 沿街店铺尽量与实际一致。
4 预估尺寸时尽量去借助照片中的参照物,如人、汽车、树木等。
5 除重点建筑外尽量简化模型,贴图做精,能用贴图表现结构的尽量用贴图表现。
6 绿化的种类、颜色尽量去实际一致。
7 建筑顶部的结构及顶部的附属设施尽量按实际制作。
8 建筑贴图时顶部要留出女儿墙的高度,避免出现窗户顶到建筑顶部。
9 建筑要制作入口。
10 地形、绿化要丰富。
11 书报亭、公交站、变电箱、烟囱、信号塔等要简单制作,以丰富场景。
12 所有贴图 UV 大小要准确,避免失真。