创建可穿戴物
创建 Decentraland 可穿戴物的技巧和指南

介绍
本指南介绍了为 Decentraland 可穿戴物创建自定义 3D 模型的基础知识。它解释了 Decentraland 化身系统如何工作,并演示如何正确建模你自己的可穿戴物。
注意:本指南假设你已经具备从基础到中级的 3D 建模知识。如果你是 3D 建模新手, 从这里开始.
在开始之前,请下载示例文件以供参考,其中包含网格和纹理: 可穿戴物参考模型
Decentraland 化身系统
Decentraland 的“化身系统”是由不同身体部件及其子部件组成的集合,这些部件可以用自定义可穿戴物进行装饰。这些部件包括:
身体形状
头部
头部形状
眉毛
眼睛
嘴巴
上半身
下半身
手部穿戴物
脚部
配饰
基础身体形状
下载基础化身示例文件后,将模型载入你的 3D 编辑器中,例如 Blender。
你会注意到每个模型都包含 8 个与骨架相关的不同网格。这些网格分别表示头部、眉毛、眼睛、嘴巴、上半身、下半身、手和脚。你可以将这些示例模型作为自己定制可穿戴物的参考和起点。
目前有两种身体形状:A 或 B。

头部

基础头部附带了多个可作为可穿戴物自定义的网格:眉毛、眼睛和嘴巴作为透明遮罩,渲染在面部前方。
上半身

化身的上半身,即躯干。不包括手。
下半身

下半身包括化身的骨盆和腿部。
手部

A 和 B 两种形状的手部相同,并从化身的手腕处开始。
脚部

脚部包括脚踝和脚。
身体的每个部分都有封口,使其“完全密封”。这些封口是为了防止因蒙皮权重不佳而导致动画穿插问题时出现难看的故障。编辑网格时最好不要移除这些封口。

为可穿戴物构建 3D 模型
面数、材质和纹理限制
为确保 Decentraland 能够为所有玩家流畅运行,创建可穿戴模型时避免使用过多三角形、材质和纹理非常重要。目标是尽可能简化 3D 模型,使其易于渲染,同时又不牺牲过多细节。
每个可穿戴物或配饰可使用的三角形和纹理数量都有上限:
每个可穿戴槽位的三角形不超过 1.5K:帽子、头盔、上半身、下半身、脚和头发。
每个类别的三角形不超过 500:面罩、眼镜、耳环、头饰、顶头部位和胡须。
手部配饰的预算为 1k 三角形。如果手部穿戴物遮住了化身的基础手部,预算可提升到 1.5k 三角形。
每个可穿戴物的纹理不超过 2 张(分辨率为 512x512px 或更低)。所有纹理必须是正方形,分辨率为 72 像素/英寸。
不超过 2 个材质(不计算 AvatarSkin_MAT)
如果是皮肤类可穿戴物,允许的三角形数量为 5k,纹理数量为 5。
可穿戴物的最大宽度、高度和深度尺寸
可穿戴物有距离限制,以确保它们不会遮挡其他玩家屏幕的可视范围,也不会过度侵入场景空间。
可穿戴物的尺寸不能超过:
高度:2.42 米,宽度:2.42 米,深度:1.4 米


贴图
Decentraland 可穿戴物目前支持 3 种贴图类型,分别是:
基础颜色:这是模型颜色和细节的主纹理。
自发光:此贴图用于模型中发光的部分。发光贴图位于单独的材质中,专门用于发光。
Alpha:此贴图用于处理透明度。它使用纹理的不透明度通道。(始终更推荐使用 Alpha Clip 而不是 Alpha Blend,并使用黑白纹理进行镂空)

由于 Decentraland 参考客户端为化身材质使用 Toon Shader,因此某些贴图 并非必要 例如:
法线贴图: 通过将表面法线编码为 RGB 值,用于在低多边形模型上模拟高分辨率细节的纹理。
粗糙度贴图: 用于定义 3D 物体表面粗糙度的纹理。
要在 Decentraland 中使用这些贴图,变通方法是将它们烘焙到一张纹理中。你可以在这里找到更多关于纹理烘焙的信息: https://docs.blender.org/manual/en/latest/render/cycles/baking.html
法线
Decentraland 引擎只渲染单面法线。 (这意味着一个平面只能从一侧看到,另一侧不会被渲染。)因此,为了确保你的 3D 模型法线完全正确,我们可以通过两种不同方式进行检查。
第一种方法是在材质属性设置中切换“Backface culling”,这是一种检查反向法线的好做法,如下图所示:


第二种检查法线是否正确的方法,是在视口叠加选项中切换“Face orientation”。模型会变成蓝色,但不用担心。蓝色面是正确的,而红色面需要修正,你可以在这里找到此选项:

骨架
请记住,不要更改给定骨架的任何规格、命名约定、层级结构或变换。更改其中任何一项都会导致导出后可穿戴物在客户端中停止工作。

确保导入的骨架没有任何 结束 或 中性 骨骼,否则在导出到 builder 后可穿戴物将无法工作。如果你导入的 .fbx 存在这个问题,可以勾选 忽略叶骨骼 在导入骨架时。

眉毛、眼睛和嘴巴
这些网格使用透明着色器,因此你无需做任何额外操作,只需为你想要的新眉毛、眼睛或嘴巴样式创建自己的 png 纹理,并将其正确放置到 UV 映射中即可。这些纹理应为 256x256px,并且需要带有用于透明效果的 alpha 通道。
这里有一些示例 png 纹理:



眼睛和眉毛使用相同的网格和 UV 映射。


嘴巴网格和 UV 映射。
要可视化最终效果,你需要在 Blender 中使用这些节点:


遮罩: Avatar 编辑器提供多种颜色选项,玩家可据此自定义化身。

这些颜色选择会应用到可穿戴物中的特定遮罩上。


左侧图片(Eyes Mask)中的黑色区域表示右侧纹理(Eyes Base)中将被着色的区域。重要的是要记住,虹膜必须始终是灰度的(如果虹膜是纯黑色,染色将不起作用。相反,如果虹膜是纯白色,它会完全被编辑器中选定的颜色染色)。
手部穿戴物
有两种 手部穿戴物 你可以在同一类别下制作。
替换手部:

如果你想创建替换双手的手部穿戴物,你可能需要覆盖 手部 基础网格。这样,手部穿戴物的上限将为 1500 三角形。
手部配饰:

你也可以创建手表、手链、戒指等手部配饰。在这种情况下,不需要覆盖手部,且每件物品的上限为 1000 三角形。
头发和面部毛发
制作自定义头发可穿戴物时,有两件重要的事情需要记住。
首先,尽量贴合头部形状。如果你需要起点,可以随时参考示例文件中提供的头部网格。

其次,如果你希望用户能够在化身编辑器中更改头发或面部毛发的颜色,那么你需要用灰度绘制头发,并在材质命名中使用“Hair”(例如“M_Hair_Short”)。如果你想包含不受染色影响的其他对象,就不要添加这种命名约定。



较低的灰度会显得更暗,较高的灰度会显得更亮,并与用户在化身编辑器中选择的颜色相乘。
基础材质和纹理
化身模型有三种基础材质:一种用于可穿戴物本身,一种用于皮肤,另一种用于眉毛、眼睛和嘴巴。

每个基础网格都带有自己的皮肤纹理。


皮肤纹理采用灰度制作,因此渲染引擎可以根据用户偏好通过编辑器为化身皮肤上色。要能够使用编辑器为皮肤上色,材质名称必须是 AvatarSkin_MAT.

\u0001src="../images/wearables-and-emotes/creating-wearables/19_skin_uv.png"width="600"/>
你可以为你的可穿戴物创建自定义纹理!不过,最好始终为每个可穿戴物使用单个、非常小的纹理文件。使用示例文件中提供的默认 AvatarWearable_MAT 纹理将确保你的可穿戴物具有良好性能!

✨ 如果你想为模型制作自己的纹理,我们推荐使用以下插件来更好地进行 UV 展开:
UVPacker
UvPacker 是一个免费的插件,只需点击几下即可帮助你打包和整理 UV。由于 Decentraland 可穿戴物使用 512x 尺寸,这个工具非常适合创建更好、更有条理的纹理。
你可以直接从这里的网站下载:
https://www.uv-packer.com/download/
UVToolKit
UvToolKit 是一个插件,可帮助你扩展 UV 设置和选项,在 Blender 中创建出色的 UV。
下载链接如下: https://alexbel.gumroad.com/l/NbMya
蒙皮权重
蒙皮权重是确定化身绑定中的哪些骨骼在动画过程中影响哪些可穿戴物的过程。
为新的可穿戴物进行蒙皮权重时,有几个需要牢记的注意事项。
每个资产都必须对完整骨架进行权重绑定。例如,上半身资产在应用蒙皮权重后会是这样的:

在身体部位交界处相接的可穿戴物必须完全权重到同一根骨骼。例如,在这两个绿色区域中,颈部的顶点需要仅完全权重到“Neck”骨骼。

关键骨骼
进行蒙皮权重时要使用的“关键”骨骼有:
头骨: 用于头发、耳环、头饰、眼睛、眉毛、嘴巴以及任何需要跟随头部运动的配饰。
颈骨: 用于头部主体与上半身交界处的顶点。
髋骨: 用于上半身和下半身交界处的顶点。
右腿骨和左腿骨: 用于下半身和脚部交界处的顶点。
右前臂和左前臂 用于手部交界处的顶点。
导出可穿戴物
导出可穿戴物时,请确保除了给定骨架之外没有其他骨骼, 除了弹簧骨骼 (名称中带有 springbone 的骨骼,用于动态物理)。在不同软件之间导入骨架时,一个常见问题是出现 “_end” 或 “_neutral” 骨骼。导出前务必将它们移除。否则,之后可穿戴物很可能无法在客户端中工作。

导出可穿戴物时,先选择对象,再选择骨架。确保不要导出任何其他内容,例如摄像机、灯光或空对象。
接下来,将可穿戴物导出为 glTF2.0 格式。确保只导出带有蒙皮属性的可穿戴物,不要包含动画或形态键等其他不必要的功能。

建模最佳实践
将你的网格从 T 姿势改为 A 姿势
制作可穿戴物时,可视化最终效果并便于处理拓扑和可穿戴物位置的最佳方法是使用 A 姿势模型。为此,你只需按照以下简单步骤操作:
首先选择上半身,然后你需要切换“编辑模式”和“On cage”在骨架修改器中。

现在,在姿势模式下你可以将手臂旋转 60°。

你可以在 A 姿势而不是 T 姿势下编辑网格。

但也要记住,你只需在骨架修改器中重新切换“Edit mode”和“On cage”,就能轻松在 A 姿势和 T 姿势之间切换。

关节变形:
为了在涉及关节(例如手臂或腿部)时获得最佳的可穿戴物拓扑效果,创建环线时遵循良好做法很重要。这里我们可以看到不同环切对网格变形的差异:

确保一切都正确变形的一个好方法,是像下面的示例那样进行权重绘制:


裙子
建模裙子/连衣裙时,一个有用的技巧和良好做法是在褶皱交汇处添加额外的环切。这样在为绑定绘制权重时会非常方便。

有了这些环切,顶点影响看起来会平滑得多,并且在动画裙子/连衣裙时能获得更好的效果。
下面是骨骼影响应如何分布的示例:

帽子
制作帽子时的一个好做法是在帽子的基础网格上添加头发,然后隐藏该类别 hair 并在编辑器中将其隐藏。这样可以防止帽子与其他头发穿插,并减少意外结果。

添加多边形计数
一个很有价值的提示是始终跟踪模型的 polycount。要在 Blender 中做到这一点,你需要在视口覆盖层面板中开启统计信息。

资源
在这个共享文件夹中,你可以找到基础模型、纹理以及其他各种资源,包括完整制作好的可穿戴物示例。创建你自己的作品时,欢迎充分利用这些资源。
最后更新于