制作 3D 物品 - Blender

索具

16min

Blender 兼容性考虑

ZEPETO 骨架是在 Maya 中设置的,并使用 Maya 的默认关节方向。在 Maya 中,关节链可以对齐到任何轴,而在 Blender 中,骨骼严格沿 Y 轴指向。虽然看起来可能很奇怪,但为了与 ZEPETO 头像兼容,重要的是不要改变默认骨骼的骨骼方向。

Document image


Blender 不支持将网格绑定到非休息姿势的骨架。当将权重绑定到骨架时,请使用在姿势模式下应用于所需休息姿势的骨架或设置为休息姿势的 A 姿势的重复骨架。

什么是绑定?

绑定是将数据应用于项目以使其与ZEPETO头像一起移动的过程。如果没有绑定,项目在应用程序中将不会与头像一起移动。通过绑定过程,我们将告诉我们的项目如何跟随头像的骨架。 更技术性地说:在3D应用程序中,角色的3D几何通常由关节或骨骼控制。这些关节或骨骼是特殊的3D对象,它们不会在渲染中显示,但会设置角色如何移动的规则,通常作为枢轴点。绑定是保存数据的过程,这些数据告诉网格的顶点它们应该多紧密地跟随给定的关节或骨骼。在Blender中,这种类型的数据称为“顶点组”。 权重可以通过数值分配或“绘制”到模型上。由于虚拟绘制影响比为单个顶点分配小数更易于接近,我们将专注于这种权重绘制方法以节省时间和精力。 关节和骨骼在3D软件中具有类似的功能目的,但在术语上有些许差异。关节表示3D空间中的单个点,没有软件定义的优先方向。Maya使用关节,通常倾向于将关节的X轴对齐指向链条上的下一个骨骼。骨骼在功能上也表示空间中的单个点,但具有软件定义的方向,期望其他角色遵循。Blender使用骨骼,其Y轴设计为指向链条上的下一个骨骼。这种骨骼和关节之间的差异在Blender中处理绑定时会产生一些问题,我们需要解决这些问题。

绑定要求

  • 必须包含“hips”和“hips_scale”骨骼
  • 通常,在权重绘制时尽量防止面具穿过你的项目
  • 确保当骨架移动时,身体和物品不会塌陷
  • 最大皮肤权重影响固定为4
    • 这些是Blender的默认设置,但要手动设置权重影响,请进入项目网格的权重绘制模式。在3D视口的权重菜单中,选择“限制总数”。展开视口左下角出现的菜单,并确保“限制”值设置为4。

一般来说,连衣裙使用上部和下部的骨架,而其他物品的选择范围更有限。 Creator Base Set 附带的面具对象具有 ZEPETO 头像的权重。使用面具对象的权重作为加权物品的基础是有用的。要将面具权重转移到物品的权重,请使用 Blender 的权重转移功能。

过程

使用 Creator Base Set 内容

使用 creatorBaseSet_zepeto.fbx 文件中包含的面具和骨架对象。这些对象具有一组定义的对象名称、骨骼名称和骨骼方向,ZEPETO studio 将查找这些内容以使物品在应用程序中工作。保持名称相似很重要,以免在 Unity 中的转换过程中混淆。

非 T 姿势的休息姿势

Blender 将其初始加权数据应用于骨架的“休息姿势”。这意味着,如果您在 A 姿势中建模物品并尝试将其应用于 T 姿势休息姿势骨架,物品可能会在初始绑定操作中移出正确位置。为了解决这个问题,将物品绑定到其休息姿势设置为物品建模姿势的骨架是有用的。 拥有非 T 姿势休息姿势骨架的一个有用方法是创建原始骨架和面具的副本,将休息姿势应用于新复制的骨架,并根据休息姿势对服装物品进行绑定。出于组织目的,应根据新姿势重命名复制的面具和骨架。将每个骨架和面具组放在各自的集合中也有助于组织。 将休息姿势应用于骨架相对简单:

  1. 将骨架摆成您想要的姿势
  2. 选择附加的面具元素,并在修改器属性选项卡中找到骨架修改器 a. 在骨架修改器的下拉菜单中,选择“应用”
Document image


3. 选择骨架元素并进入姿势模式

  • 选择所有骨骼并进入视口顶部的姿势菜单
  • 进入“应用”,然后选择“将姿势应用为休息姿势”
Document image




4. 返回对象模式并选择面具元素

  • 在修改器选项卡中,添加一个新的骨架修改器
Document image

  • 在对象目标位置,找到并选择你的姿势骨架
Document image


现在骨架有了一个新的休息姿势,面具元素将跟随这个新的休息姿势。

📘 ZEPETO 对 A 姿势有特定的旋转,这些旋转出现在带有顶部元素的 ZEPETO 模板项目中

ZEPETO A 姿势在总共 4 根骨头上有旋转:

  • 肩骨“shoulder_L”和“shoulder_R”在 Z 轴上旋转 -7.5 度
  • 臂骨“upperArm_L”和“upperArm_R”

使用 Euler XYZ 旋转而不是 Blender 的默认四元数设置来应用骨头旋转可能更容易。在骨头首选项选项卡中更改这些旋转轴以便于使用。

Document image

Document image


一般工作流程

使用 creatorBaseSet_zepeto.fbx 文件中包含的面具和骨架对象。这些对象具有一组定义的对象名称、骨骼名称和骨骼方向,ZEPETO studio 将查找这些以使项目在应用程序中工作。保持名称相似很重要,以免在 Unity 中的转换过程中混淆。

  1. 确保骨架适合项目并设置在其休息姿势
  2. 如果衣服是按照 T 姿势建模的,未修改的创建者基础集骨架将默认工作 a. 如果衣服是 ZEPETO 的 A 姿势,您可能需要设置骨架以适应 A 姿势
  3. 选择服装项目,然后选择骨架
  4. 将父对象应用于骨架,并使用空权重
Document image


5. 将面具的权重转移到项目上

  • 选择面具,然后选择项目
  • 进入权重绘制模式
  • 使用“转移权重”操作在权重 > 转移权重中
  • 确保“转移权重”操作是按名称进行的
Document image

Document image


6. 旋转关节以检查项目上的权重是否设置正确

  • 使用权重刷工具编辑关节权重。确保变形器权重已归一化。
Document image

  1. 当骨骼权重校正完成后,重置所有骨骼的变换

🚧 ZEPETO 头像使用缩放骨骼来适应多个体型。

当骨架同时具有缩放骨骼和非缩放骨骼时,将权重应用于缩放骨骼,并使非缩放骨骼不带权重。

Blender 的对称性和骨骼命名系统阻止了提供的装备使用内置的权重镜像工具轻松镜像顶点组。权重对称性必须手动应用或通过插件镜像。

裙子

绑定裙子元素需要一些额外的注意。由于任何带有腿部元素的标准行为,裙子在 ZEPETO 中更难绑定。裙子会像一套扩展的裤子一样跟随物品的腿部移动。这可能会导致裙子的中间部分在腿部分开时拉伸。这是不可避免的,但通过一些仔细的权重绘制,可以使拉伸变得平滑。

绑定清理

A姿势到T姿势

当绑定和修正完成后,绑定需要恢复到T姿势以进行导出。为此,我们将把绑定到A姿势骨架的物品放入T姿势,应用T姿势的物品,并重新绑定到T姿势骨架。 更详细地说:

  1. 在姿势模式下选择A姿势骨架。
  2. 将骨架骨骼移回T姿势 a. 对于ZEPETO A姿势,这可以通过在Z轴上旋转肩膀_L和肩膀_R骨骼7.5度以及在Z轴上旋转上臂_L和上臂_R骨骼40度来轻松完成。
  3. 在对象模式下选择物品
  4. 在修改器属性选项卡中找到骨架修改器
  • 点击下拉菜单并点击应用
Document image


5. 给物品添加一个骨架修改器

  • 将骨架对象指向原始的creatorBaseSet T姿势骨架
Document image


6. 对项目的网格或权重进行修正,以解决从权重转移中出现的任何错误

由于变形的工作原理,移动回T姿势的网格在返回T姿势时可能会在肩部/上臂区域失去一些体积。编辑网格以增加体积是一个相对简单的修复。使用T姿势蒙版作为网格边界区域的参考。

删除骨骼

当所有权重都已确定并准备导出时,删除对项目没有影响的骨骼集。ZEPETO studio 限制了项目可以上传的骨骼数量为100。删除未使用的骨骼可以预防这个骨骼数量问题,因为Blender的导出器会导出骨架中的每一个骨骼,即使它们没有顶点组或权重。 如果一个项目需要许多额外的骨骼,可能需要删除非缩放骨骼以减少骨骼数量。如果需要,删除具有相应缩放骨骼的非缩放骨骼,除非它们是扭转骨骼或髋骨。如果不包括髋骨,项目将会损坏。

Document image