按分类 3D建模优化指南
19 分
本指南旨在帮助创作者的物品在zepeto内顺畅实现,避免出现质量错误,并最大限度地提高渲染效率。指南分为“强制要求”和“建议要求”,请在制作物品前务必查看以下内容。 📌 强制要求 如果出台新的强制规定或更改标准,我们将提前通知,以便创作者们能够充分了解。此外,如果需要强制执行新规定,我们将提前告知准确的强制执行时间。(例:由于urp环境变化而导致的 built in shader 使用指南等) 💡 建议要求 建议要求是我们为确保物品在zepeto应用程序内无错误正常运行而建议的优化标准。但是,如果超出建议范围,且被判定在实际应用程序环境中难以正常穿戴或运行,可能会受到事后驳回处理或禁止销售等制裁措施,因此请尽量考虑建议指南进行制作。 此外,本指南是为了提供更舒适的服务环境而建议的优化标准,并非必须严格遵守的强制性规定。 💡 通用要求:建模优化 ㅣ✔️ 建议在所有类别中尽量避免使用blendshape 建议在上传至zepeto的所有物品中不包含blendshape数据 。这并非旨在限制创作者们的精巧表达,而是为了优化移动端环境,以便所有用户都能顺畅游玩世界而提出的建议事项。 数据容量的指数级增长(文件过载) 隐藏坐标数据的累积: 为了记录网格的运动和形态变化,混合形状必须在内部额外存储大量顶点(vertex)位置移动的坐标数据。 图层堆积现象: 这些数据在fbx文件内部的结构,类似于 动画图层层层堆叠 。这导致整个资源的数据容量过重。 实时运算过载(导致设备发热及卡顿) 移动端实时运算的局限: 在多个虚拟角色同时聚集的3d世界空间中,移动设备实时处理这些混合形状数据将面临极大负担。 硬件性能下降: 结果导致硬件严重过载,进而引发用户设备剧烈发热和帧率下降(卡顿)。 内存超限及应用强制关闭(崩溃) 内存(ram)不足现象: 当包含混合形状的物品同时在世界中加载时,会瞬间占满移动设备有限的ram容量。 致命的 oom 错误: 这会导致内存不足 (oom,out of memory) 现象,并引发最严重的故障——智能手机系统(ios/android)为了保护设备而强制关闭 zepeto 应用(崩溃/弹出)。 多边形计数(polycount) triangle单位标准: 所有类别的拓扑运算及数据限制标准均以三角形(triangles)为单位,而非四边形(quads)。 导出(export)前确认: 在blender、maya、3ds max等工具中进行fbx导出之前,针对3d视口布局中的tri(triangle)计数,请确认其是否低于各类别建议的最大数值。 支持背面剔除(backface culling)的建模 适配 backface culling 环境: zepeto引擎为优化渲染运算,默认采用 背面剔除(backface culling) 方式。 结构性收尾处理建议: 在播放动画时,内部可能会暴露的服装袖子内侧、裙子内部、领口(collar)等部位,为了防止因 face normal 方向翻转而呈现透明透视的现象,建议将面完全封闭,或通过产生物理厚度的对象收尾建模来进行操作。 清理不良网格数据(clean up) 如果建模数据中残留“不良碎片”,将会引发图形处理错误,并成为导致引擎崩溃(crash)的主要原因。提交前请务必通过 “clean up”清理这些不必要的数据。 未形成面(face)而悬浮在空中的孤立顶点(isolated vertices)或长度为0的边(edge)会产生不必要的计算开销,请预先删除。 避免 non manifold 结构: 这是一种在数学上可运算但现实世界中无法存在的结构。请确认以下 四大 类型,并在建模时进行清理。 非流形(non manifold)四大缺陷类型 单条边(线)上,3个以上面在几何上相互嵌套相邻形成的y字形或t字形结构 两个或多个独立面不共享边界,仅通过一个顶点(vertex)相交连接而形成的沙漏状结构 在完全封闭的网格空间内部,存在从外部无法看到的“幽灵面”横亘其中的结构(主要由网格合并/提取错误引起) 在连续的网格流中,特定面的法线向量(normal vector)方向被反转,导致与相邻面方向不一致的状态 删除不可见面 base body mesh culling :由于附加了服装外层或饰品物品而被放置在内侧, 建议果断删除被基础虚拟形象身体(base body)完全遮挡的mesh面。 资源优化: 删除不必要的内部网格可减轻gpu负担,从而提升渲染性能。这不仅有助于提升游戏的流畅性,对降低内存占用率也大有裨益。 关节部位拓扑密度优化 对于膝盖、肘部、肩膀等活动频繁的关节部位,请布置 至少3条以上的环形边(loop edge) ,以确保贴皮后网格能够自然弯曲。相反,对于形状变化极小的固定部位,应避免不必要地将面分割得过细,而应 尽可能简化 处理,从而提升角色的运行性能。 ㅣ✔️ 服装类(dr、top、otr、btm) 最大三角形数量建模规范 dr(一套服装): 最多 10,000 个三角面 top(上衣)/ otr(外套): 最多 6,000 个三角面 btm(裤子、裙子): 最多 5,000 个三角面 建模指南 接缝线(seam line)顶点对齐: 上装(top)与下装(btm)相接的腰部边界线是虚拟角色移动时变形最剧烈的部位。因此,请确保 上装与下装边界面上的顶点数量及线流(拓扑结构)完全 一致。 如果边界面的顶点结构或法线(normal)方向不一致,角色移动时衣服之间会产生缝隙或空隙,导致内部透出,从而产生瑕疵。关键是要仔细调整,使边界面的网格像一件衣服一样自然地连接起来。 关节部位的3 loop边结构: 像膝盖、肘部、骨盆这样活动幅度较大的关节部位,在弯曲时网格容易扭曲或变形。为了防止这种现象并确保动作流畅,请 在关节弯曲部位密集且均匀地 布置 3 4条以上的边(edge) 。 服装边缘处理(营造厚度感): 对于袖口或下摆等服装边缘部位,不要仅用一条线简单收尾,而应向内加衬布, 像真实服装一样 处理出 具有厚度的 效果。 不过,那些深入衣服内部、 从外部绝对看不见的 布料,则无需刻意保留。请将这些隐藏的布料整齐地剪除或整理干净,务必避免因多余的多边形而降低游戏性能。 ㅣ✔️ 发丝类 (f hair, m hair) 最大三角形数量建模规范 f hair(女性发型): 最多 10,000 个三角面 m hair(男性发型): 最多 10,000 个三角面 建模指南 双层结构建模(solid base mesh + alpha plane mesh) :为了同时兼顾视觉完成度和移动设备性能的优化,请将总多边形数量的70%建模为包裹头骨的封闭式不透明网格,以确保体积感。 请将剩余的30%多边形以alpha平面形式布置在轮廓外侧,用于表现发梢、碎发和侧发等细节。 确保防止z冲突的间距: 3d图形引擎存在一个顽固的问题,即当多层透明平面重叠时,会根据摄像机视角混淆计算顺序,无法准确判断哪个平面在前面、哪个在后面。 如果alpha平面之间的距离过近,或者发束网格相互交错,就会根据摄像机角度的不同,导致透明面闪烁的 排序 问题。建模时请确保alpha平面网格之间保持最低限度的物理距离。 ㅣ✔️ 紧贴身体及变形类道具(sox、glove、nail、tail、wing、shoulder) 最大三角形数量 shoulder(肩饰): 最多 5,000 个三角面 glove(手套)/ bag(包): 最多 4,500 个三角面 wing(翅膀): 最多 4,000 个三角面 sox(袜子): 最多 3,500 个三角面 tail(尾巴): 最多 2,000 个三角面 nail(美甲): 最多 1,500 个三角面 建模指南 手指拓扑同步 :在建模手套(glove)和指甲(nail)时,手指关节的弯曲位置必须与zepeto默认引导模型中手指关节(finger joint)的偏移坐标完全吻合,不得有丝毫偏差。请确保每个关节至少保留3条边。 接触面优化: 指甲艺术及手套内侧等与手指皮肤完全接触、物理上100%嵌入的内侧面,请为优化目的将其完全删除。 ㅣ✔️ 可佩戴类饰品(sh、headwear、eyemask、glasses、bracelet、necklace、earring、ring) 最大三角面数 sh(鞋子)/ headwear(头饰): 最多 4,000 个三角面 eyemask(面罩): 最多 3,000 个三角面 glasses ring(眼镜、手链、项链、耳环、戒指): 最多 2,000 个三角面 建模指南 圆柱形建模优化 :制作戒指(ring)、手镯(bracelet)、眼镜框(glasses)等曲线型刚体道具时,请将初始圆柱形基本图形的侧面数量(sides)限制在 6 8个之间 ,以构建低多边形结构。 不足的曲面轮廓需通过柔和边缘和法线贴图进行补全。 ㅣ✔️ 特殊体型类(mask、body) 这是难度最高的技术类别,需要完全覆盖基础角色模型的固有外观(头部及全身网格),或引导体型发生变化。 最大三角数 body(特殊体型躯干): 最多 10,000 个三角面 mask(特殊体型面部): 最多 5,000 个三角面 建模指南 颈部接缝线(neck seam line)匹配 :面部蒙版(mask)与身体(body)相接的颈部边界区域,其顶点索引号、绝对3d坐标值以及顶点法线方向,必须与zepeto基础身体建模完全一致。若该焊接线偏差哪怕仅0 001mm,都会导致颈部分离并出现缝隙,从而产生瑕疵。 参考)用于商品优化的各类别数据 所有数据 均以上限(maximum limit) 为基准。 除dr(套装)外的所有类别均以1张贴图为基准。 max triangle count (tris) 推荐 / max max texture resolution (map size) 推荐 / max max material (允许按属性添加额外着色器) dr one piece outfit 10,000 512x512 (2 images) 4(推荐) top top 6,000 512x512 3(推荐) otr outerwear 6,000 512x512 3(推荐) btm pants, skirts 5,000 512x512 3(推荐) sox socks 3,500 / 4500 256x256 / 512x512 3(推荐) sh shoes 4,000 256x256 / 512x512 3(推荐) f hair women's hair 10,000 256x256 / 512x512 3(推荐) m hair men's hair 10,000 256x256 / 512x512 3(推荐) headwear headwear 4,000 256x256 / 512x512 3(推荐) shoulder shoulder 5,000 512x512 3(推荐) glasses glasses 2,000 256x256 / 512x512 3(推荐) bracelet bracelet 2,000 256x256 / 512x512 3(推荐) necklace necklace 2,000 256x256 / 512x512 3(推荐) earring earrings 2,000 256x256 / 512x512 3(推荐) bag bag 4,500 256x256 / 512x512 3(推荐) glove glove 4,500 256x256 / 512x512 3(推荐) ring ring 2,000 256x256 / 512x512 3(推荐) nail nail art 1,500 / 2000 256x256 / 512x512 3(推荐) eyemask mask 3,000 512x512 3(推荐) wing wing 4,000 512x512 3(推荐) mask special face shapes 5,000 512x512 3(推荐) body special body types 10,000 512x512 3(推荐) tail tail 2,000 / 3000 256x256 / 512x512 3(推荐)
