---
title: 身体部位更换和网格/掩码边界故障排除
slug: studio-guide-ch/WNAjW1wZ6MEGTzHtTRUsS
docTags: 
createdAt: 2024-09-02T08:34:13.133Z
---

# 自定义躯干几何形状

## 女性躯干模板

默认的ZEPETO基础身体具有一般中性到男性化的形状。为了获得更明显的女性躯干，应使用替换基础身体的网格元素。要获取示例或起点，请下载Female\_Torso.fbx（[下载](https://media-contentful.zepeto.io/ttn7jks47ozr/Vd5B03wK88WsU7ajkzEm3D6/ZiYjm3wK87X38e5c0d2eaf9f9c635b3c8ead2681a6asU7ajlaRE4AF/Female_Torso.fbx)）文件。
此文件可以加载到Blender中，并将包含两个网格对象：

- Female\_Torso\_V
- guide\_mannequin

![1831](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-_zfQD2V-TSwsM9OTBkc_2-20240904-102336.jpg)



Female\_Torso\_V 对象和 guide\_mannequin 对象的 UV 映射规格与面具相同。Female\_Torso\_V 对象上还有一个名为“skin”的材质。这个材质命名是为了告诉应用程序使用来自头像的皮肤纹理。

![1806](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-Ie0PgaXONtkBWj0SDbbqb-20240904-102336.jpg)



这个躯干处于放松的 A 姿势，需要一些额外的工作才能适应标准的 T 姿势。请参阅[Rigging Guide](docId\:lElJlL0viVdIMboeJkDyl)了解更多关于 A 到 T 姿势转换的详细信息。
要获取一个骨架进行绑定和工作，请将 creator\_base\_set 文件导入场景。将 creator base set 骨架放入标准的 A 姿势。注意，Female\_Torso\_V 网格对象的臀部、手臂和脖子都以与默认面具匹配的环结束。这是为了确保与其他物品配对时基础身体没有视觉断裂。
这个躯干可以用来塑造女性形态的上衣，或者提供现成的躯干部分用于上衣的裸露皮肤。
女性躯干没有包含权重。对于权重绘制，请使用 Creator Base Set 中适当姿势/权重的面具对象进行权重转移操作。这应该为躯干提供适当分布的权重。
在将躯干部分包含在上衣对象中时，确保躯干和上衣对象合并为一个对象。这可以通过选择躯干和上衣网格并转到 Object > Join 来轻松完成。

![1862](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-U6tFIBCfpTVe2DeWO_N4J-20240904-102336.jpg)



每个组件的权重设置在合并网格对象时将按每个网格保留，因此请确保在合并它们之前绑定顶部和躯干对象，以使您的生活更轻松。作为完成过程的一部分，删除被顶部覆盖且不会被看到的躯干网格区域。这将有助于防止顶部和躯干对象之间的剪切问题。



## 自定义躯干

您也可以自定义自己的躯干以在应用程序中使用！如果创建或自定义自己的躯干，网格需要遵循一些要求。

- 躯干网格必须在臀部、颈部和手臂处与基础面具对象对齐
- 躯干网格应遵循与面具相似的UV布局
- 躯干网格应分配一个名为“皮肤”的材质



## 遮罩

对于遮罩，自定义躯干元素将替换基础头像的躯干。有关一般遮罩过程的更多信息，请参阅[Masking Guide](docId\:nPh7hif2S9diFela5L22h)。将面具上被自定义躯干覆盖的躯干区域涂成黑色，直到自定义躯干的端点。理想情况下，这将隐藏基础躯干，并允许自定义躯干无错误地显示。

![1859](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-geZqKYFBlwOCTKkC8XGw9-20240904-102336.jpg)



## Unity 测试

按照指南中的[导出到Unity](docId\:ZQYQatrWxpv-PeLUALwjV)  部分进行必要的准备工作，将躯干物品、骨架和面具导出为 fbx 以在 Unity 中进行测试。

![1802](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-huJHVEB3yvAc3n9bYSZ0P-20240904-102336.jpg)



在 ZEPETO Studio Unity 项目中导入物品并进行测试。对于躯干替换，您的物品将是上衣或连衣裙/西装。

:::hint{type="danger"}
- 检查基础头像体和自定义躯干之间的网格是否有明显的断裂。如果发现任何问题，请返回 Blender 进行修复。
- 使用动画姿势检查头像，以确保权重分布正确，特别是在躯干的边界处。如果在这里发现任何问题，请返回 Blender 并修复权重绘制问题。
- 检查自定义躯干和基础头像之间的接缝线，查看法线连续性是否存在问题。如果这里有问题，需要在 Blender 中进行更改。
:::

如果在 Unity 中没有问题，将预制件导出为 .zepeto 文件。在 ZEPETO Studio 中上传并仔细检查物品。如果没有其他问题，您可以提交物品进行审核。



# 故障排除问题

## 未对齐的法线

如果网格对齐正确，但在自定义身体部位和基础头像身体的边界上出现一条线，且断裂似乎是光照变化引起的，则可能是自定义身体部位的法线未与基础头像身体对齐。

![1212](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-FWZeTT5pKWL3TtDwq6eYG-20240904-102336.jpg)



您可以通过选择带有自定义身体部位和遮罩对象的项目，进入编辑模式，并在右上角的视口覆盖菜单中选择“显示分割法线”按钮来检查顶点法线对齐情况。粉红色的线将从网格的每个顶点出现。这些线代表顶点法线的切线方向。

![1351](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-j7uib_ZppY6ifGySfbmuM-20240904-102336.jpg)



如果粉红色的线在边界处未对齐，我们可能需要将法线数据从网格传输到自定义身体部位。要将法线数据从遮罩网格传输到项目网格，首先选择项目并向项目网格对象添加“数据传输”修改器。

![1074](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-V7BWgy9SqrJh1-LftWsG0-20240904-102336.jpg)



我们想要将“自定义法线”转移到“面角数据”下。我们想要添加面具作为“源”对象，以便我们可以从面具中获取法线信息。

![BoundaryCorrection\_Normals\_DataTransferModifierSettings.jpg](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-6O5GudC2rfiAruSbkghB8-20240904-102336.jpg)



为了将转移限制在边界上的法线信息，我们需要创建一个新的顶点组供修改器使用。在自定义躯干项目的编辑模式下，转到对象数据属性选项卡，并使用‘+’按钮创建一个新的顶点组。为了便于组织，将这个顶点组命名为一些描述性的名称，比如“边界法线目标”。

![606](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-FMBMqLEfxiF3pxaKUrGp6-20240904-102336.jpg)



在取消选择所有其他网格元素的情况下，选择边界边循环，并使用“分配”按钮将选定的网格组件分配到顶点组。

![1856](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-fClCJJOKOapPM2NadN-8C-20240904-102336.jpg)



回到修改器选项卡，在数据传输修改器中，找到并选择顶点组框中的边界目标顶点组。现在，边界区域的网格法线已经从遮罩网格法线中复制。

![609](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-xrwlWMl_8hdp3K4tw7sDI-20240904-102336.jpg)



通过应用修改器将法线应用到网格上。

![604](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-4jrgihvcSDQz_TNbD98J--20240904-102337.jpg)



仔细检查法线是否与法线叠加正确对齐。如果一切正常，继续在Unity中导出并测试您的项目。



## UV 不匹配

如果网格对齐正确，但在自定义身体部位和基础头像身体之间的边界上出现基础颜色调变化，自定义身体部位的 UV 映射和面具的 UV 映射可能不匹配。

![919](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-fwc-Q8vo3GBYEnd6lwpJE-20240904-102337.jpg)



使用皮肤材质需要使自定义身体部位的 UV 与面具的 UV 对齐。我们可以使用 Blender 中的传输网格数据工具将 UV 数据从面具传输到自定义躯干。首先将自定义身体部位几何体从物品网格中分离出来。

![1829](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-4mYJZw-Ep4jnykxEMm8x2-20240904-102337.jpg)



在对象模式下，选择自定义身体部位，然后 shift/添加选择面具对象，使面具对象成为活动选择。转到对象菜单 > 链接/传输数据 > 传输网格数据，并在弹出窗口中选择“UV”。

- 确保“数据类型”设置为“UVs”
- 将“面角映射”更改为“最近角和最佳匹配法线”
- 将“面映射”更改为“最佳法线匹配”
- 所有其他设置可以保持默认设置

![1863](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-QIr4l4sMfbw2M8HTcK_OH-20240904-102337.jpg)

![1317](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-cAPGSv7vo0fWjTL3zjWDY-20240904-102337.jpg)



自定义身体部件上的UV贴图数据现在应该与面具的布局相似。检查自定义身体部件的UV贴图，以验证其布局是否与面具相似。

![1667](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-f9RMuZwGw7amqIUY5saXk-20240904-102337.jpg)



如果一切正常，将自定义身体部件重新与物品合并，并继续在Unity中导出和测试您的物品。



## 未同步的权重

如果自定义身体部件没有按照基础头像身体的预期动作进行移动，可能是自定义身体部件的权重分布存在错误。要解决此问题，请从良好的来源（如面具）转移权重到自定义身体部件。首先将自定义身体部件几何体与物品网格分离。选择面具，然后按住Shift键并添加选择自定义身体部件网格。进入权重绘制模式。转到权重 > 转移权重。在展开的选项中，确保“源层选择”设置为“按名称”。对于“目标层”，如果要转移所有权重，可以选择“所有层”选项。如果只需要转移特定权重（如自定义身体部件网格边界线周围的权重），请选择特定的顶点组。测试并纠正任何权重错误，然后将自定义身体部件重新与物品合并。在Unity中导出并测试物品。
