优酷动漫 - 角色模型资产标准
版本信息:
版本号 | V1.0 | 时间 | 2023-08-01 |
---|
角色模型规范
角色模型通用规范
角色模型命名规则
(1)Maya工程文件中制作要求命名规范:
- 因各家公司差别较大,此处暂不做特殊限制,以各公司命名规范为准
(2)资产库管理完整模型储存命名规范参考:
- XXX(模型名称)_XXX(模型ID)_LODX.FBX(格式名)
(3)导入虚幻引擎中模型命名规范(虚幻引擎中文件完整命名规范详见【虚幻资产命名规范】文档)
- 骨骼网格体:SKM_XXX(模型名称)_XXX(模型ID)_XXX(版本号)
注意事项:
(1)禁止出现中文,一律采用 英文字母,数字 组合命名。
(2)禁止出现空格和特殊字符,空格一律使用英文下划线 “” 。
(3)模型命名应该与其对应的一套贴图相对应(纹理贴图名称详见【2. 角色纹理贴图规范】)。
(4)资产名称的命名规范:在模型名称以及描述命名部分,即一个完整的命名或单词(拼音)组合中,始终使用帕斯卡命名法则(每个单词都以大写开头,各单词之间不以空格断开或连接号"-",下划线"“等符号连接,例如:DeserEagle,RocketPistol,DuZhong,QiuYueHua等)。
角色模型单位
(1)长度单位一律参照Maya的 厘米单位 为标准,模型参考现实尺寸制作。
(2)1 虚幻单位 = 1 厘米(cm)
角色模型轴向
(1)在Maya资产制作中,一律使用 正Y轴向上,正Z轴向前。
(2)虚幻引擎中,所有模型以 正Z轴向上,正X轴向前。
角色模型中心点
角色模型中心点为世界原点,模型脚部应该贴地,禁止悬浮或插入网格下面:
角色模型面数和LOD
(1)角色模型面数
- LOD等级划分:划分3-5个细节等级
- LOD0:20w以内
- LOD1:10w以内
- LOD2:5w以内
(2)角色模型LOD
- 创建不同细节等级的角色模型作为角色模型的LOD。
- 不同的模型部分也可以存在不同的LOD简化版本。
模型的不同部件之间分别采用不同的细节等级版本,某些部分可以具有属于不同LOD的简化版本, 而其他部分则继续使用具有较高细节的版本。
- 对于复杂模型,可为每个LOD网格体分配不同的材质, 包括不同的材质数量。
出于性能考虑,对于复杂模型,可以在部分LOD中采用材质合并等方法,用不同的材质数量和材质内容,来降低不必要的细节消耗。
- Maya中创建LOD组:所有的网格体都应该按照等级分组到LOD组中
角色模型布线(拓扑)
(1)角色模型布线(拓扑)要求
- 布线均匀,确保大部分的面趋近于正方形。
- 所有模型以四边面为主( 禁止出现大于四边面 ),禁止出现任何零长度边。
- 不要有螺旋线,走线要合理,按照结构布线,把握疏密关系。
- 在活动关节增加更多的关节结构环线(不要低于3条),确保绑定时能够保持关节的形状。在布线合理的同时还要保证切分 UV 的便利。
- 指缝之间做成V字形,不要像真人做成圆的,做成圆的绑定比较难处理手指并拢的缝隙问题。
- 角色模型头部嘴巴、眼睛、服装等模型接缝处顶点对应,其他包裹性模型,包括服装边缘装饰性布条、边框、腰带、盔甲等等饰品,应当尽量与下层服装布线段数一致,顶点尽可能对应。
- 眼皮部分需要有厚度,眼皮和眼球需要紧密贴合。
- 眼球和眼皮接触的边缘需要添加一圈薄片,用来制作眼球与眼皮连接处的眼泪的高光。
- 头部牙齿、舌头、眼球和头部的Mesh不要合并为一个模型。
- 闭嘴状态嘴角不能有缝隙。
- 口腔内壁厚度嘴角位置厚度要体现
- 服装模型禁止出现穿插,即使看不见的地方也不要穿插。如服装将身体大面积覆盖,可将内部网格删除处理,删除内部模型的同时要注意保留一份身体模型作为布料解算碰撞体。
- 活动较频繁的部位以及关节部位,避免出现三角面。
- 如褶皱较大区域造成面的变形,及时通过对角线对变形的面进行纠正,布线要求是根据跨步运动的方式进行的布线,该布线可以确保最终模型呈现出来的动画效果。
- 所有模型边缘需要进行卡线,并增加UV保护边。确保模型增加细分后,物体形状不会发生错误,模型UV不会出现过多的拉伸。
角色模型软硬边(光滑组)
模型尽可能少用硬边(硬边可导致三倍的开销)。
角色模型UV
(1)UV象限要求
- 角色模型UV象限尽可能只用第一象限,引擎中在动态模型使用UDIM会导致较大的消耗(流送虚拟纹理)。
- 纹理细节要求特别高的模型可采用UDIM,需注意UDIM的象限分配不要过多。
- 使用UDIM时要注意UDIM索引从1001开始(下图为UDIM象限示意)UDIM纹理U向计数限制为10个,V向限制在900个象限。
- 使用UDIM时需注意,虚幻引擎Opacity属性暂时无法使用虚拟纹理。
(2)UV 分割规范,摆放合理,利用率高,尽量占满 UV 区域。
(3)部分管状、条状、螺旋形等模型的UV需要拉直铺平处理(按需求自行判断)。
(4)UV 之间需至少间隔 8-16 像素(对应 2K-4K 贴图精度)。
(5)UV 方向:应尽量保证一致,方向应当尽量从上至下;如为了方便摆放而旋转部分 UV 区域,则需要保证同一个部件的 UV 方向一致, UV 旋转之后需要保证方向一致。
(6)UV面朝向:无特殊情况下应当保证UV面朝向一律朝前摆放。
(7)UV 切割需要正确规范。尽量在隐蔽处等位置进行 UV 的切割。模型设置硬边的位置 UV 需要切开。
(8)眼球、眼球眼皮连接处薄片、牙齿、舌头模型UV。
- 眼球UV:左右眼球UV一致
- 眼球眼皮连接处薄片UV不做要求。
- 牙齿、舌头模型放在同一个UV象限。
(9)头部和身体UV
- **头部UV:**单独一个象限,应尽量铺满整个象限,口腔内模型UV可适当缩小
- 身体UV:需要制作两个UV通道,其中UV通道0铺满第一象限;UV通道1需要使用UDIM,UV通道1的所占的比例和头部一致。
角色模型碰撞体准备
(1)模型如需碰撞体,则需要在模型命名上注意添加网格体前缀进行区分。
(2)注意事项:
- 命名规则中"RenderMeshName"名称必须与3D软件中碰撞网格体关联的渲染网格体的命名一致。
- 所有创建的碰撞体应当删除历史冻结变换。
- 可以把渲染网格体和碰撞网格体导出到同一个FBX文件中。
- 如果一个对象的碰撞由多个凸包所定义,那么这些凸包相互未交叉时产生的结果为最佳。
(3)命名规则:
- UCX_[RenderMeshName]_##:自定义凸包,可以创建包裹模型的任何完全封闭的凸型3D形状。注意一定需要完全封闭。
- UBX_[RenderMeshName]_##:盒体,必须使用常规的矩形3D对象来创建。无法移动顶点或使其改变为矩形棱柱之外的其它形状。
- UCP_[RenderMeshName]_##:胶囊体,两端半圆的圆柱体对象。胶囊体不需要过多分段(8段为佳),不能对单个顶点进行移动。
- USP_[RenderMeshName]_##:球体,不设置过多分段(8段为佳),不能对单个顶点进行移动。
使用角色基础网格体
在满足以上模型面数、拓扑、光滑组、UV的要求下,制作角色基础网格体,在项目中统一使用标准基础网格体。
(1)统一使用同一套角色规定的基础身体和头部拓扑点序,在雕刻和变形过程中保持模型点序不发生改变。
(2)模型制作中在保证模型点序(拓扑)不变的情况下,注意模型形状和拓扑的对称性。
毛发
以Maya Xgen为毛发制作范例:
(1)毛发生长模型:
- 直接从基础模型提取部分面片作为毛发生长模型。
- 毛发生长模型UV可重新展开,确保制作时绘制的各种遮罩分辨率足够高。
- 毛发生长模型在绑定时需拷贝角色头部蒙皮权重,如果毛发生长模型下方模型存在修型,需要拷贝修型并制作相同的驱动或使用包裹方式。
(2)毛发缓存导出要求
以Maya Xgen为毛发导出标准
- 文件格式:Alembic,导出时注意勾选 写入最终宽度(Write Final Width)。
- 添加毛发组ID属性。
- 为毛发缓存创建导线属性。
- 无需导出毛发生长模型。
服装
**(1)服装模型布线:**需满足上述 角色模型通用规范/角色模型布线(拓扑)中的要求。
(2)光滑组:服装转折边为保证法线光滑正确性,需对转折部分角度较大的地方进行三角化处理。
(3)布料解算碰撞体:制作身体模型时要注意保留一个完整带绑定的身体模型作为布料解算碰撞体。
(4)布料代理:
- 制作有厚度、单独的包边、布面镶嵌配饰等服装时,需要制作单面片布料代理文件。
- 布料代理文件要尽量包裹住服装模型,并且布线一定要是均匀四边面,禁止出现超过四边的面、任何零长度边、多余的游离顶点。
角色纹理贴图规范
PBR流程
(1)按照PBR流程中金属度流程(DirectX标准)贴图要求出图,主要贴图为(其他贴图自行添加):
- BaseColor
- Specular(按需)
- Roughness
- Metallic
- Normal(DirectX标准,法线为切线法线)
- Emission
- Displacement
(2)Substance Painter基础设置选择:(详见【Substance Painter工程设置】文档)
- 材质球:
- 普通材质:ASM 一 PBR Metallic Roughness (starter_assets)
- 皮肤材质:ASM 一 PBR Metallic Roughness SSS (starter_assets)
- 色彩管理:Legacy(SRGB)(若允许的情况下,建议升级使用更好的ACES)
- 着色器设置:
- 无需Alpha(Opacity)通道设置:pbr-metal-rough
2. 需Alpha(Opacity)通道设置:pbr-metal-rough-with-alpha-blending(需注意纹理集设计)
- 导出模板设置:
- 默认输出模板选择:Unreal Engine 4 ( Packed)
- 自定义输出模板:(优酷可提供该模板,与母材质配合使用)
额外贴图需求
**(1)Wrinkle map(按需制作):**制作绑定需要的表情皮肤细节补充贴图(wrinkle map,可以分为颜色、法线、置换等贴图)
- Normal:至少需要制作抬眉、皱眉蹙鼻、咧嘴大笑。
- BaseColor(按需添加):只添加Normal纹理不足以体现足够的细节,需要使用颜色贴图增加细节。
(2)面部Cavity贴图:需保留一张面部的Cavity贴图,用来在材质中增加细节。
(3)细节补充纹理:
- 整体皮肤细节Normal(Micro Normal):
- 单独的嘴唇细节Normal(Micro Normal,用于增加嘴唇细节)
(4)面部妆容分区Mask:
- 制作面部妆容分区遮罩贴图用于后期调整妆容。
- 将各种Mask进行通道盒并,尽量减少贴图的数量。
- Mask分类:】
- EyeEyelinerLipstickMask(R=EyeShadow眼影, G=Eyeliner眼线,B=Lipstick口红)
- FoundationHighLightBlusherMask(R=Foundation粉底, G=HighLight高光, B=Blash腮红)
- StainScarDirtMask(R=Stain涂装, G=Scar伤疤, B=Dirt脏迹)
纹理贴图命名规范
纹理命名规则供参考,建议可尽量靠近,详细以各公司/工作室内部规范为准
(1)一般模型贴图命名要求(适用于单象限UV模型)
- **无需LOD等级贴图命名:**XXX(模型名称)_XXX(模型ID)_XXX(贴图属性).XXX(格式名)
- 法线、置换贴图除外
- **需LOD等级贴图命名:**XXX(模型名称)_XXX(模型ID)_XXX(贴图属性)_LODX.XXX(格式名)
(2)使用UDIM的模型贴图命名要求
- 无需LOD等级贴图命名:XXX(模型名称)_XXX(模型ID)_XXX(贴图属性).10XX(UDIM索引从1001开始).XXX(格式名)
- 法线、置换贴图除外
- 需LOD等级贴图命名:XXX(模型名称)_XXX(模型ID)_XXX(贴图属性)_LODX.10XX(UDIM索引从1001开始).XXX(格式名)
(3)无缝纹理贴图命名要求:
- **无需LOD等级贴图命名:**XXX(模型名称)_XXX(模型ID)_XXX(贴图属性).XXX(格式名)。
- **需LOD等级贴图命名:**XXX(模型名称)_XXX(模型ID)_XXX(贴图属性)_LODX.XXX(格式名)。
(4)纹理贴图导入虚幻引擎中模型命名规范要求(虚幻引擎中文件完整命名规范详见【虚幻资产命名规范】)
- T_XXX(模型名称)_XXX(模型ID)_XXX(贴图属性)_X(贴图属性, BaseColor=D; Roughness=R; Metallic=Me; Normal=N; Emssion=E; Displacement=Dp)
注意事项:
(1)禁止出现中文,一律采用 英文字母,数字 组合命名。
(2)禁止出现空格和特殊字符,空格一律使用英文下划线 “” 。
(3)贴图命名应该与其对应模型的命名相对应。
(4)资产库纹理存储的命名规范:在贴图名称以及描述命名部分,即一个完整的命名或单词(拼音)组合中,始终使用帕斯卡命名法则(每个单词都以大写开头,各单词之间不以空格断开或连接号”-",下划线"“等符号连接,例如:DeserEagle,RocketPistol,DuZhong,QiuYueHua等)。
纹理贴图分辨率
(1)纹理贴图长宽分辨率统一为 2 的幂次方(支持非正方形贴图,但长宽分辨率需满足要求),如果想使用Mipmap,纹理长宽分辨率不能超过8192px(8K)。
**虚幻支持纹理格式:**bmp、float、pcx、png、psd、tga、jpg、exr、dds立方体贴图纹理(32位 / 通道、8.8.8.8 ARGB 32 bpp、未签名)、hdr立方体贴图纹理(LongLat展开)
(2)使用UDIM(SVT流送虚拟纹理)
- UDIM纹理U向计数限制为10个,V向没有限制。制作纹理时要注意UV分配U向是否超过10个。
- 单张贴图的分辨率不超过4096px。
- 各UDIM图像可启用不同分辨率的非统一像素密度虚拟纹理。需注意分配纹理贴图的大小,模型有些部分的贴图精度需求不高时,该部分应尽量采用比较低的分辨率。
- 例如:导入由4个图像文件构成的UDIM虚拟纹理(两个2048×2048纹理和两个128×128纹理),并以2×2模式排列,则逻辑上虚拟纹理将采样此类图像,如同单个4098×4098纹理。UE会拉伸128×128小图像以填充2048×2048大图像所填充的相同区域,而不影响硬盘或运行时内存的使用。在本例中,将128×128小纹理填充到2048×2048纹理分辨率不会消耗内存。
纹理贴图格式
(1)需要使用颜色RGB信息的贴图导出:选择导出8位JPG或PNG。保持导出的颜色纹理JPG或PNG文件即可,无需刻意二次压缩。
(2)地形Height高度图一律使用16bit PNG或16bit RAW格式。
(3)Displacement置换贴图,统一使用exr和高压缩比的格式储存两张,可供选择(方便后期在虚幻引擎中制作POM视差材质效果,以及方便为静态网格体增加细节)。
纹理贴图通道合并和体积压缩
(1)通道合并(只能将使用灰度信息的贴图进行通道合并,由于虚幻引擎中各种压缩方式对G(绿色通道)压缩比例都是最小的,因此将重要的Roughness贴图放在G通道)
- 根据目标材质的材质属性(详见UE母材质),在制作材质贴图时判断哪些通道进行合并,并在制作好贴图后,指认目标母材质,在后续复用中,始终保持(如无特殊需求情况下)使用最初指认的母材质。
- 目标材质的材质属性,影响着主要需要哪些贴图,以及哪些贴图可以利用合并通道(只需要灰度信息的贴图)来进行压缩贴图数量和贴图的体积,以下列举几种常用的通道合并的方案:
- ORM(或称为ARM)贴图:将AO、Roughness、Metallic三种灰度贴图(不需要颜色信息的贴图)按先后顺序分别合并在一张图中的R、G、B三个通道,并将贴图命名后缀改为三个通道所携带的贴图的缩写。该贴图类型适用于金属或非金属和金属相结合的材质。
- ORD贴图:将AO、Roughness、Displacement三种灰度贴图(不需要颜色信息的贴图)按先后顺序分别合并在一张图中的R、G、B三个通道,并将贴图命名后缀改为三个通道所携带的贴图的缩写。该贴图类型适用于普通非金属(或全金属)、不透明、非遮罩的材质。
- ART(或称为ORT)贴图:将Opacity、Roughness、Translucency三种灰度贴图(不需要颜色信息的贴图)按先后顺序分别合并在一张图中的R、G、B三个通道,并将贴图命名后缀改为三个通道所携带的贴图的缩写。该贴图类型适用于普通非金属、需要次表面颜色、需要使用遮罩的材质。
- DRA(或称为DRO)贴图:将Displacement、Roughness、Opacity三种灰度贴图(不需要颜色信息的贴图)按先后顺序分别合并在一张图中的R、G、B三个通道,并将贴图命名后缀改为三个通道所携带的贴图的缩写。该贴图类型适用于普通非金属、不透明、有遮罩的材质
(2)可将Opacity遮罩信息存储在纹理的Alpha通道里。
(3)纹理分层:因UV象限使用多数为单象限,在贴图精度不够的情况下,需要将贴图拆分为各种贴图的Mask加底层循环贴图。例如有花纹的衣服贴图,可将花纹单独拆分出来BaseColor、Normal、Roughness和Opacity贴图,将底层布纹单独导出一套分辨率较低的贴图,在引擎中使用material layer组装。
纹理贴图LOD
法线贴图
(1)需按照对应的LOD等级进行烘焙,LOD降低一个等级就要按照模型最高精度到此LOD等级进行重新烘焙。
(2)法线烘焙时应使用平滑UV,切线法线进行烘焙。
角色材质规范
Maya材质规范
(1)通用模型材质命名规则:M_AS_XXX(角色命名)_XXX(模型部位或材质属性)
(2)需解算导出缓存使用的模型材质命名和要求:
若命名和解算部分命名规则不一致,容易导致进UE后丢材质,优酷可提供插件解决该问题,但建议按如下方式规范命名
- 赋予材质:进UE前要一定要将导出的Alembic文件统一在模型物体模式下统一赋予同一Lambert材质(一定要做),然后在模型面模式下依次赋予不同物体不同的材质。
- 修改命名:在材质节点编辑器(Hypershader)中,把材质Shading Group名改成和材质属性名一样,Shading Group名中最后的两个字母SG不要动。
- Maya导出abc:导出abc,勾选写入uv,写入面集(一定要做)。
- UE中创建材质:在ue中将之前做好的命名保持和这个shading group名字一致(要带SG)。
- Alembic导入UE:导入的时候勾选寻找材质,然后就会自动匹配了。
(3)Arnold材质:使用标准的Arnold Ai Standard Surface材质
- BaseColor SRGB
- Speacular SRGB
- Roughness Raw Alpha为亮度
- Metallic Raw Alpha为亮度
- Normal Raw Alpha为亮度
- Displacement Raw Alpha为亮度
UE材质规范
**(1)母材质:**角色材质主要类型为Surface型,由于角色为动态骨骼网格体模型,因此使用UDIM会出现很大的性能消耗。
优酷可提供一套角色母材质,若使用公司自有的母材质,通常材质将具备如下要求,供参考:
- 母材质主要类型:
- Surface母材质(通用材质)& Surface母材质VT(开启虚拟纹理特性时,统一更换为改VT母材质)
- 命名规范:M_Surface_Material & M_Surface_Material_VT
- 材质属性
- Material Domain:Surface
- Blend Mode:Opaque
- Shading Model:Default Lit
- Foliage母材质(遮罩)& Foliage母材质 VT(开启虚拟纹理特性时,统一更换为改VT母材质)
- 命名规范:M_Foliage_Material & M_Foliage_Material_VT
- 材质属性
- Material Domain:Surface
- Blend Mode:Masked
- Shading Model:Two Sided FoIiage
- Transmission母材质(透明或半透明)& Transmission母材质 VT(开启虚拟纹理特性时,统一更换为改VT母材质)
- 命名规范:M_Default_Transmission_Material & M_Default_Transmission_Material_VT
- 材质属性
- Material Domain:Surface
- Blend Mode:Opaque
- Shading Model:Subsurface
(2)材质函数
- 命名规范:MF_XXX(材质函数的作用类型命名)
- 将通用的材质节点,制作成材质函数,通过复用材质函数来减少材质节点数量,优化材质的编译。
(3)材质实例
- 命名规范:MI_XXX(材质名或模型名)_XXX(材质或模型ID)_XXX(贴图分辨率,如2k;4k;8k)
- 按照模型或贴图材质的材质属性选择对应的母材质。
(4)材质图层
- 命名规范:ML_XXX(材质图层名)
(5)材质图层混合
- 命名规范:MLB_XXX(材质图层混合名)
(6)次表面描述文件(次表面描述文件需要针对角色设置)
- 命名规范:
- 针对单一角色:SP_XXX(模型名)_XXX(模型ID)
- 针对不同角色公用:SP_XXX(公用命名)