首页 > 其他分享 >2.5 常规游戏中模型通用要求介绍

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

时间:2023-12-22 21:32:15浏览次数:40  
标签:贴图 动画 游戏 角色 模型 UV 常规 命名 2.5


一、布线和理性

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

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

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

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

2.5 常规游戏中模型通用要求介绍_贴图_03

更改前,更改后

2.5 常规游戏中模型通用要求介绍_图例_04

2.5 常规游戏中模型通用要求介绍_角色模型_05

更改前,更改后

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

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

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

2.5 常规游戏中模型通用要求介绍_图例_06

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


二、UV合理性

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

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

2.5 常规游戏中模型通用要求介绍_图例_08

2.5 常规游戏中模型通用要求介绍_贴图_09

Maya,SP

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

2.5 常规游戏中模型通用要求介绍_贴图_10

2.5 常规游戏中模型通用要求介绍_图例_11

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

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

2.5 常规游戏中模型通用要求介绍_角色模型_12

2.5 常规游戏中模型通用要求介绍_角色模型_13

2.5 常规游戏中模型通用要求介绍_图例_14

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

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


三、光滑组

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

2.5 常规游戏中模型通用要求介绍_贴图_15

2.5 常规游戏中模型通用要求介绍_贴图_16

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

2.5 常规游戏中模型通用要求介绍_角色模型_18

3Dmax中光滑组:

2.5 常规游戏中模型通用要求介绍_图例_19

2.5 常规游戏中模型通用要求介绍_贴图_20

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

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

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

当平面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的场景单位设置是否一致)。

作业总结

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

目录结点

说明

图例

项目最上层文件夹

项目最上层目录

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


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

主干

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


2.5 常规游戏中模型通用要求介绍_图例_24

分支

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


2.5 常规游戏中模型通用要求介绍_贴图_25

美术资源文件夹

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


2.5 常规游戏中模型通用要求介绍_角色模型_26

资源文件夹内部

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


2.5 常规游戏中模型通用要求介绍_贴图_27

美术工程文件夹

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


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

引擎资源文件夹

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


2.5 常规游戏中模型通用要求介绍_角色模型_29

表格文件夹

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


2.5 常规游戏中模型通用要求介绍_角色模型_30

声音工程文件夹

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


2.5 常规游戏中模型通用要求介绍_图例_31

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

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

角色模型预制体

物体

命名

说明

图例

角色非战斗预制体

xxProjectName_CharacterNamePre_Normal

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


2.5 常规游戏中模型通用要求介绍_角色模型_32

角色战斗预制体

xxProjectName_CharacterNamePre_Battle

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

角色模型Mesh

物体

命名

说明

图例

角色模型

CharacterNameMod

Mod代表Model(模型)


2.5 常规游戏中模型通用要求介绍_贴图_33

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

角色模型手部

CharacterNameMod_Hand

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

角色模型XX部分

CharacterNameMod_XX

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

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

角色模型贴图

物体

命名

说明

图例

角色身体法线贴图

CharacterNameT_Body_Normal

T代表Texture(贴图)


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


2.5 常规游戏中模型通用要求介绍_贴图_36

角色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(材质球)


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

角色xx材质球

CharacterNameMat_xx

角色xx材质球,以此类推

角色动画

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

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

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

物体

命名

说明

图例

通用角色女待机动画01

CharacterComAnim_Female_Idle_01

Com代表Common(通用)

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


2.5 常规游戏中模型通用要求介绍_角色模型_38

通用角色男待机动画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

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


2.5 常规游戏中模型通用要求介绍_角色模型_39

单位比例统一

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


2.5 常规游戏中模型通用要求介绍_图例_40

方向

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

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


2.5 常规游戏中模型通用要求介绍_图例_41

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

清除新项目中的预制物体

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


2.5 常规游戏中模型通用要求介绍_角色模型_43

多星点问题

减少多星点的出现


2.5 常规游戏中模型通用要求介绍_贴图_44


2.5 常规游戏中模型通用要求介绍_贴图_45

合理的布线

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

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


2.5 常规游戏中模型通用要求介绍_图例_46

模型优化

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


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

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

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


2.5 常规游戏中模型通用要求介绍_图例_48

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

顶点与面数量

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

展UV

规范项

说明

图例

打直UV

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


2.5 常规游戏中模型通用要求介绍_角色模型_50

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

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


2.5 常规游戏中模型通用要求介绍_贴图_51

2.5 常规游戏中模型通用要求介绍_图例_52

断开硬边

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


2.5 常规游戏中模型通用要求介绍_图例_53

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

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


2.5 常规游戏中模型通用要求介绍_贴图_54

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

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


动作(待补充)

规范项

说明

图例


模型导出

规范项

说明

图例

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

防止出错


再次检查是否坐标归零

防止出错


再次检查是否单位统一

防止出错


合并顶点

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


UV通道

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


导出设置

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


2.5 常规游戏中模型通用要求介绍_角色模型_55

导出格式

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


贴图导出

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


SP烘焙

规范项

说明

图例

先烘焙

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


2.5 常规游戏中模型通用要求介绍_图例_56

贴图导出

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


2.5 常规游戏中模型通用要求介绍_图例_57

导入Unity



导入引擎Unity

Metallic/Roughness 流程

规范项

说明

图例

Albedo贴图

勾选sRGB


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

MetallicSmoothness贴图

不勾选sRGB


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

Normal贴图

TextureType改为NormalMap


2.5 常规游戏中模型通用要求介绍_角色模型_60

效果对比


SP


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

Unity


2.5 常规游戏中模型通用要求介绍_图例_62

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

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

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

规范项

说明

图例

测试环境

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


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

原点位置

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

命名规范

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

材质

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

贴图检查

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

动画

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

顶点、面数

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

拉伸

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

是否藏东西

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


2.5 常规游戏中模型通用要求介绍_图例_64

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

标签:贴图,动画,游戏,角色,模型,UV,常规,命名,2.5
From: https://blog.51cto.com/u_136836/8938839

相关文章

  • 微信开发者之猜数字小游戏js代码
    // pages/game/game.jsPage({  /**   * 页面的初始数据   */  data: {  },  initial: function() {    this.setData({      answer: Math.round(Math.random() * 100),//获取随机数      count: 0,//回合数      tip: '',//提示语......
  • 【江鸟中原】————简单小游戏
    一、引言 经过一段实践学习之后,我开始运用学习过的知识,自己实践创作了一个鸿蒙小型游戏。二、游戏介绍 我所创作的是一个贪吃蛇的小游戏,这个游戏主要思路是在一个1010方格上随机出现一个格子,当贪吃蛇的头出现在格子上时,则贪吃蛇整体长度加1。当贪吃蛇的头部在1010方格之外时,则......
  • LED光源驱动IC降压恒流芯片AP5219最大电流2.5A
    产品描述AP5219是一款PWM工作模式,高效率、外围简单、内置功率管,适用于5V~100V输入的高精度降压LED恒流驱动芯片。输出最大功率可达25W,最大电流2.5A。AP5219可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮模式。AP5219工作频率固定在130KHZ,同时内置抖频电路,可以降低对其......
  • harbor1.1.2无损升级到最新版本harbor2.5.0
    目标将老版本的harbor1.1.2无损升级到最新版本harbor2.5.0,后面有条件可以随版本更新基础环境信息hostIP:192.168.56.35httpdocker-compose路径:/usr/src/harbordata路径:/data升级步骤下面是升级版本需要的安装包,同样也意味着版本升级步骤harbor-offline-installer......
  • P2197 【模板】Nim 游戏
    原题链接题解说的很详细,我来讲讲我对为什么要用异或判断的想法异或为零是先手必败状态的一个属性,我们通过属性来判断类别。代码#include<bits/stdc++.h>usingnamespacestd;intmain(){intt;cin>>t;while(t--){intn;cin>>n;......
  • 《鱿鱼游戏》线下 VR 体验大受欢迎;谷歌 7 亿美元和解美反垄断诉讼丨 RTE 开发者日报 V
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • Unity引擎2D游戏开发,实装攻击判定
    判断伤害触发动画帧观察动画,发现只需要在第4帧时才进行伤害,即发生剑影的那一帧。其他动画同理添加碰撞盒目前不需要再玩家Player身上建立过多的碰撞体,因为采用新的方式选中Player,右击选择CreateEmpty,创建一个子级对象。命名为,AttackArea并在AttackArea下方再创建三个......
  • Unity引擎2D游戏开发,三段攻击动画的实现
    新建三段动画的Animation将Project中的三段攻击动画的素材,拖入到Animation窗口,分别命名为BlueAttack1,BlueAttack2,BlueAttack3在Animator中创建动画图层并进行进一步的操作创建新的动画图层,命名为AttackLayer在窗口中创建新的State,作为默认上一层的state入口将之前创建好......
  • P1129 [ZJOI2007] 矩阵游戏 建模部分
    link题解没一个说为什么能用最小割的...(当然可能是只有我不知道)设交换后行、列数相同的第\(x\)行和第\(y\)列(\(x,y\)为原始位置),发现它们的交点现在位于\((i,i)\),原来位于\((x,y)\)。因为无论怎么交换位置,原来的交点仍是交点。所以可以得出一个构造方案:先选定\(n\)个点......
  • 12.5
    在Java中,可以通过打印异常的堆栈轨迹(stacktrace)来跟踪异常的传播路径。堆栈轨迹会显示异常是如何从发生的地方一直传播到当前位置的,包括每个调用栈帧中的方法调用信息和异常信息。要打印异常的堆栈轨迹,可以使用异常对象的 printStackTrace() 方法,或者使用日志框架(如Log4j、S......