2.5 常规游戏中模型通用要求介绍

发布时间:2023年12月17日

一、布线和理性

多星点(4个及4个以上边的交点)

如果是在中模阶段,减少使用多星点,因为会在细分是时出现凸点问题,如果要使用多星点,需要通过布线技巧把它移动至平面处,不要让他出现在倒角边缘。

更改前,更改后

更改前,更改后

在模型上挖洞,且要保证都是四边面的情况下,是必然会出现五星点,五星点不可避免,但可以优化。也有叭五星点转换为假四边的方法(模型时把这种布线叫做假四边)

对于布线的合理性,大部分情况下都是指的低模,在次时代流程中,高模只需要做出效果,布线可以随意的来,因为高模的用途只是为了一张法线贴图。

由于Maya和Max中对于三角形的预划分有时是不同的,所以如果四边形的四个点不在一个平面里时,请连接对角线,否则会出现以下情况,这个同样会影响法线烘焙。


二、UV合理性

UV的合理主要是为了提高精度,也就是在资源有限的情况下,达到更好的效果。

UV基础规范:如果使用UDIM(多象限UV),从【0,1】框开始依次摆放,正常情况下全部UV放于【0,1】框内,虽然UV是平铺的,但我们常用的软件,例如SP,绘制过程中,只能再【0,1】框中绘制。

Maya,SP

打直UV能使我们更好的利用空间,提高空间利用率,这也是为什么合理利用UV可以提高精度,能打直的打直,能横竖打直的就不要斜打直,斜打直会成为锯齿的根源。

一般在为了提高利用率的情况下UV是允许有均匀拉伸的,特别是如果后期不会出现纹理制作的情况下,均匀拉伸不会存在任何问题,在精度够的情况下,拉伸也是没有问题的,只是你制作出来的贴图最后也会是拉伸的。

我们一般是使用棋盘格来检查UV的拉伸是否合格,同样带数字的棋盘格也可以拿来检查UV的方向是否和模型方向一致,虽然正放倒放不影响贴图制作,但是行业默认能和模型一致就和模型一致展开UV。

在烘焙时,如果有公用的UV需要挪出【0,1】框,如果不挪出去烘焙时会识别不了你需要烘哪一边作为结果,导致得到的法线贴图出现错误。

硬边的地方UV必须断开,UV边界才能按正确的法线去烘焙,否则烘焙出来的法线贴在模型上必然会出现接缝(不可修复),关于硬边和光滑组在下一节有介绍。


三、光滑组

光滑组是中通过对面的定义来定义软硬边,软边就是如果点处于不同平面时,点会获得所在平面的平均法线,硬边这是拥有多个方向的法线(如图)

3Dmax中光滑组:

当平面1和平面2在一个光滑组时,此时相交边为软边

当平面2单独在另一个光滑组中时(平面1为光滑组1,平面2为光滑组2),此时相交边为硬边

值得注意的是,在三维软件中(maya,max)导出模型法线会处于锁定状态,而导入模型后解锁法线,由于maya和max定义软硬边的方式不同(maya直接对边定义软硬边,max通过定义面的光滑组定义软硬边),会导致光滑组/软硬边丢失,可以通过插件实现在保持软硬边的情况下解锁法线,也就是先记录软硬边信息再去解锁,解锁后重新赋予即可。

由于定义了软硬边,后期的烘焙过程中,烘焙时拾取的是你最后使用的模型的点的法线,如果你在烘焙结束后又去修改了软硬边信息,正常情况下软硬边信息不对等的地方法线会出现错误。


四、模型基本规范

我们制作完模型导出时请检查一下基本信息:

1.该合并的点全部合完了

2.没有非法面,N边面等不规范面的存在

3.有UV,用于贴图

4.不出现镂空面穿帮

5.场景大小设置正确

6.拥有规范命名,方便资产整理(模型一般前缀使用“SM_”,及static mesh)

7.Maya模型请检查历史清除干净没有,Max模型请塌陷编辑器

8.模型的坐标轴归零(习惯问题,否则进入引擎后你可能法线坐标轴不在你模型的周围)

9.进入引擎前最好三角面化


五、常见问题

SP导入模型时出错(可能是没有UV,UV没在(0,1)框内等等,SP的log里面一般会把报错原因直接写出来)。

Maya里制作的模型导入Max(或者反向导入),赋予软硬边缺没有效果变化(导出模型时发现会被锁定,所以请先解锁法线,再重新定义软硬边)。

Maya里制作的模型导入Max(或者反向导入),发现模型大小不一致(检查maya和max的场景单位设置是否一致)。

作业总结

-----------资源目录-----------

目录结点

说明

图例

项目最上层文件夹

项目最上层目录

里面包含项目所用到的所有资源、代码、插件等等

主干

项目主要目录,一般工作都在此处。

分支

简单理解为项目的备份,一般美术不需要关注此处,直接去主干工作即可。

美术资源文件夹

美术用到的所有资源、插件等

资源文件夹内部

可以简单分为几大块:模型、贴图、特效、材质球等。(文件夹内的文件必须用英文命名)具体需要根据项目来走。

美术工程文件夹

里面也是有可打开的项目,主要给美术测场景、特效、镜头表现等等,不涉及复杂的逻辑功能,满足美术表现需求即可

引擎资源文件夹

项目主工程目录(实际运行,打包),程序、策划日常的工作区域

表格文件夹

项目中用到的各种表格,策划日常的工作区域

声音工程文件夹

如果项目接入WWISE、FMOD等第三方音频引擎,就需要另创建一个目录

-----------美术命名规范-----------

后续具体文件名都需要用英文命名,(首字母大写)

角色模型预制体

物体

命名

说明

图例

角色非战斗预制体

xxProjectName_CharacterNamePre_Normal

Pre代表Prefab(预制体),在某些游戏中角色分为战斗与非战斗,预制体需要分开。(视项目而定,也可以只有一个预制体)

角色战斗预制体

xxProjectName_CharacterNamePre_Battle

xxProjectName视项目而定,如果公司只有一个项目,或者很少项目时不需添加,添加项目名还是为了外包收包检查,或者自身是外包人员定制的,防止各个项目的混乱。后续命名就不添加xxProjectName了.

角色模型Mesh

物体

命名

说明

图例

角色模型

CharacterNameMod

Mod代表Model(模型)

角色模型手部

CharacterNameMod_Hand

代表角色模型手部,如果是根节点下手部就不需要添加Mod了直接CharacterName_Hand

角色模型XX部分

CharacterNameMod_XX

代表角色模型XX部,依次类推

另外'_'下划线多不要怕麻烦,主要是为了后期好管理,维护。

角色模型贴图

物体

命名

说明

图例

角色身体法线贴图

CharacterNameT_Body_Normal

T代表Texture(贴图)

角色xx部分yy贴图

CharacterNameT_xx_yy

角色xx部分yy贴图,以此类推

带a通道的角色身体贴图

CharacterNameT_Body_BaseColor_Aph

Aph代表apha值

带a通道的角色xx部位yy贴图

CharacterNameT_xx_yy_Aph

依次类推

角色材质球

物体

命名

说明

图例

角色身体材质球

CharacterNameMat_Body_01

Mat代表Material(材质球)

角色xx材质球

CharacterNameMat_xx

角色xx材质球,以此类推

角色动画

角色动画可以先简单分为两种

一种是通用角色动画,例如大街上行走的NPC,他们就是用的通用的角色动画。

另一种是主角专属动画,例如原神里每个角色都有各自不同的动画表现,需要单独命名。

物体

命名

说明

图例

通用角色女待机动画01

CharacterComAnim_Female_Idle_01

Com代表Common(通用)

Anim代表Animation(动画),不要问为什么是4个字母。。个人感觉相较于Ani更好识别

通用角色男待机动画02

CharacterComAnim_Male_Idle_02

为了展现角色动画的多样性,一般都会给角色做多个动画,所以有02、03等一说

通用角色女死亡动画01

CharacterComAnim_Male_Dead_01

——

xx角色待机动画01

CharacterNameAnim_Idle

Mat代表Material(材质球)

xx角色待机动画02

CharacterNameAnim_Idle

角色xx材质球,以此类推

xx角色技能1连招动画01

CharacterNameAnim_Combo01_01

或者

CharacterNameAnim_Skill01_01

Combo代表连击、Skill代表技能,结合项目命名。

xx角色技能1连招动画02

CharacterNameAnim_Combo01_02

——

xx角色技能1连招动画03

CharacterNameAnim_Combo01_03

——

xx角色死亡动画01

CharacterNamAnime_Dead_01

——

角色特写镜头命名

特写镜头这里就简单说下,特写镜头譬如原神5星角色开大招时都会有个不受玩家控制,固定死的镜头,这就是一个角色特写镜头。

物体

命名

说明

角色特写01

CharacterNameAnim_ShowTime_01

ShowTime(展示时间)

角色特写02

CharacterNameAnim_ShowTime_02

特写02,以此类推

有了角色命名规范,就很好推出场景,特效等的命名格式了,后续如果有需要在写。

-------美术资源制作规范-------

建模阶段

规范项

说明

图例

坐标轴归0

如果模型是放在地面上那么以模型底部为坐标原点,如果模型以靠墙侧则中心点为坐标轴原点。

单位比例统一

默认Unity系统单位1等于1米,需要将DCC工具单位对应到Unity中

方向

Unity默认左手坐标系,Max则是右手坐标系。

Max中先将坐标系设置为Local,然后点击AffectPivotOnly旋转茶壶坐标轴,将其调整为Y轴朝上,Z轴朝壶嘴方向,即可。

清除新项目中的预制物体

如果是新建的项目,在建模前先将预制的物体清除(如灯光、cube、摄像机)。每种DCC不尽相同。

多星点问题

减少多星点的出现

合理的布线

出现不合理的三角面,或者多余的线,需要删除。

且低模阶段减少三角面及四边形以上多边形的出现,尽量全部是四边形。

模型优化

以Blender为例,编辑模式下全选,然后右键选择合并顶点->按距离合并,防止出现顶点重叠的情况

Mesh命名(不要出现中文命名,每个物体都要命名)

物体命名是物体唯一的标识,物体与物体下模型需要命名两次!!命名规则 如:“物件名+部件名+类别名+编号”

顶点与面数量

移动设备每个网格模型控制在300~2500个三角面会达到比较好的效果。

展UV

规范项

说明

图例

打直UV

打直UV,提高利用率,减少不均匀的拉伸,烘焙时,共用的UV移出01框(如重叠的UV),断开硬边避免接缝,接缝处的UV两边对齐,避免Tiling时出现错误

UV保证在【0,1】范围内

超过【0,1】的话,后续在SP中绘图会绘不上

断开硬边

如果硬边不断开的话,硬边处过渡时无法均匀过渡,导致烘焙时出错。

保持连续性,允许均匀的拉伸

如果模型的贴图为四方连续的,UV要保持水平平齐,允许均匀的拉伸。

UV焊接处尽量选择视线看不到的地方

选择看不到的地方,防止穿帮,比如人物的腋窝,手臂大腿内侧等。

动作(待补充)

规范项

说明

图例

模型导出

规范项

说明

图例

再次检查是否有没用到或者重叠的顶点

防止出错

再次检查是否坐标归零

防止出错

再次检查是否单位统一

防止出错

合并顶点

合并顶点,清除场景,删除没有用的一切物件

UV通道

检查是否道出了多余的UV。并且检查材质UV是否在第一通道。

导出设置

选择对应的导出项,场景、物件等一般只导出网格,带有动作的模型则把骨骼也勾选。(图例是Blender,其余DCC大体类似)

导出格式

一般来说导出的是FBX,具体看需求

贴图导出

根据需要看是否导出贴图,PBR的话一般只导出白模,然后再SP里面进行贴图绘制。

SP烘焙

规范项

说明

图例

先烘焙

导入新的模型后先烘焙一遍

贴图导出

选择对应的贴图,或者自定义导出贴图

导入Unity

导入引擎Unity

Metallic/Roughness 流程

规范项

说明

图例

Albedo贴图

勾选sRGB

MetallicSmoothness贴图

不勾选sRGB

Normal贴图

TextureType改为NormalMap

效果对比

SP

Unity

导出完模型和各种贴图后就可以导入引擎里面看效果了。

如果是外包发来的模型就需要另一步验收流程。

-------美术外包验收规范-------

规范项

说明

图例

测试环境

先将模型,角色丢到一个测试环境,测试环境中包括几张环境贴图,模拟不同场景下的光照。

原点位置

首先检查模型原点是否在正确位置。

命名规范

然后检查命名是否付个规范。

材质

检查模型上是否自带材质。

贴图检查

检查贴图是否缺少、贴图命名是否规范,有自发光和Alpha通道的是否正常。

动画

动画是否正常,命名是否规范。

顶点、面数

检查顶点、面数是否超标。

拉伸

对模型进行拉伸缩放,贴图位移、拉伸看是否正常。

是否藏东西

切换视口模式,看角色、物体内部是否正常,是否有冗余的模型。

好多地方不完善,等后面更加熟悉DCC、以及整体流程时再来补充。。

文章来源:https://blog.csdn.net/s178435865/article/details/134974981
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。