For the complete documentation index, see llms.txt. This page is also available as Markdown.

创建骨架

了解如何为 Decentraland 中的角色创建骨架。

本文档展示了如何在 Blender 中设置一个基础骨骼绑定。如果你想更熟悉一些绑定概念,可以查看 《骨骼绑定:基础概念》.

💡 提示: 安装 Decentraland Tools Blender 插件。它包含一些实用功能,可帮助你编辑和导出 3D 模型、穿戴物和表情动作。

添加骨架

首先,你需要将 3D 模型导入 Blender;如果你已经在 Blender 里完成了,就直接打开你的 blend 文件。在对象模式下,按 Shift+A 并选择 骨架 ,如下图所示。然后,在 对象数据属性中,在 视口显示下,勾选 置于前方,这样你就能透过网格看到骨骼。网格和骨架应该对齐,所以在添加骨骼之前,请确保模型在世界中心位置摆放正确。骨架的原点应位于 0,0,0(X、Y、Z)。



添加骨架并使其显示在网格之上。

编辑骨架

添加骨架对象后,选中它并进入 编辑模式。你可以在这里通过挤出原有骨骼来添加其他骨骼(按 E),通过复制来添加(Shift+D),或者直接使用 Shift+A新增一个。骨架应该像真实骨骼一样跟随模型的形状。骨骼可以缩放、抓取和旋转,它们有两个部分:头部和尾部。头部是枢轴点,也就是说,旋转和缩放都会从那里开始。这也意味着网格变形会在那里发生,所以要尽量把骨骼放在网格中心位置。



骨骼结构。



骨骼围绕其枢轴点旋转。

现在不用担心为左右两侧都创建骨骼。先专注于只创建一侧。

重命名骨骼

一个非常重要的点是要根据 Blender 的命名规范正确重命名所有骨骼。这不仅能保持结构清晰,还能让镜像姿势和权重绘制成为可能。你可以直接用它所代表的身体部位来命名,比如 Spine_01;也可以更具体一些,命名为 DEF_spine.001(DEF 代表变形骨骼,所以你就知道这根骨骼属于变形层级)。

骨骼朝向

继续之前,你应该检查骨骼的朝向。你可以通过进入 对象数据属性 并在 视口显示下,勾选 轴下进行查看。这会让骨骼轴线可见,这样你就能检查它们是否会朝正确方向旋转。

这些轴线应该与骨骼希望旋转的方向一致。如果感觉有点不对,选中骨骼,并在视口右侧的 项变换 菜单中调整 滚转 ,直到朝向合适为止。



修正骨骼滚转。



开启轴线显示,这样你就能看到骨骼将朝哪个方向旋转。

修正骨骼滚转对手指尤其重要,这样所有关节都会朝同一正确方向弯曲。不过你不必为手指里的每一根骨骼都单独修正,只要把其中一根调整正确即可。然后,先选中你想修正的骨骼,再最后选中那根滚转正确的骨骼,进入 骨架 > 骨骼滚转 > 重新计算滚转 > 活动骨骼 ,它们就会拥有相同的滚转。或者你也可以直接按 Shift+N > 活动骨骼。这在很多场景下都很有用,例如长骨骼链:触手、尾巴、长马尾或机械臂。



按 Shift+N 以重新计算骨骼滚转。

镜像绑定

你不必创建两侧的骨骼。先做一侧即可,等你修正好所有命名和骨骼朝向后,选中所有想要镜像的骨骼,右键单击并选择 对称化。这样所有骨骼都会被正确镜像,并保持正确的朝向。记住,要让这个工具生效,骨骼必须按照 Blender 的命名规范命名。如果名称中有小写或大写的 “L”、“R”、“left” 或 “right”,Blender 会正确处理对应项。

一些正确命名规范的示例:

  • Hand_L –> Hand_R

  • Hand.L –> Hand.R

  • HandLeft –> HandRight

上面的示例都有效,但你只应选择其中一种,并在整个绑定中保持一致。



使用对称化选项来镜像你的骨骼。

⚠️ 注意! 只有在骨骼被正确重命名时,对称化才会生效。如果它没有正确镜像,你可能需要再次检查骨骼名称。

蒙皮

蒙皮是将网格绑定到骨架的过程。为此,在 对象模式中,先选中网格,再选中骨架,然后按 CTRL+P > 骨架变形 > 使用自动权重。 然后,进入 姿态模式 并测试不同姿势来检查网格变形。大多数情况下都需要进行一些调整,如下所示。



对于蒙皮,通过按下 CTRL+P 将网格设为骨架的子级,并在姿势模式下测试。

如果你觉得某根骨骼放错了位置,或者枢轴点不准确,你总可以回到骨架的 编辑模式 并进行调整。这不会影响蒙皮,你也可以随时使用 对称化 来镜像这些更改。

要修复奇怪的变形,进入 对象模式,选择网格并进入 权重绘制。在 对象数据属性 中你会找到 顶点组.



在权重绘制中编辑某根骨骼的影响范围。

在开始编辑之前,如果你想在绘制时自动镜像权重绘制,请开启 镜像顶点组 并选择 X 在 镜像 下的 对称性 (在 Blender 3.4.0 中)。要编辑影响范围,先选择你想要的顶点组,然后在 工具 菜单中,在 混合下,在 添加 和 减去 之间根据需要切换。你也可以调整画笔的大小、权重和强度。



将混合模式改为添加或移除影响。确保对称性正确。



使用 模糊 工具在屏幕左侧,用来平滑权重绘制并让它更均匀。



模糊工具。

设置 IK

当你希望某个物体保持在固定位置时,IK 至关重要。它最典型的应用是在腿部,但也可以用于多种情况,例如下面的例子:



IK 在机械臂中的应用。



IK 在线缆中的应用。

由于这会改变骨骼层级,最好将其作为单独的设置。首先要做的是复制会受 IK 影响的骨骼链。我们以腿为例。选中这些骨骼,按 Shift+D 复制它们,然后按 M 将它们移动到其他层,并为其选择另一个槽位。

记得重命名复制的骨骼,在名称中添加 IK,这样你就知道它们属于 IK 设置。并且由于它们不应该变形网格,选中它们全部后,在 骨骼属性中,按住 Alt 并取消勾选 变形.



复制骨骼并将它们移动到其他层。



选中所有 IK 骨骼,同时按住 Alt时,取消勾选“变形”。

接下来,你需要创建一根驱动 IK 链的骨骼。选中脚部骨骼的头部并沿 Y 轴挤出。然后,按 Alt+P 取消其父级关系,因为 IK 骨骼不能成为链的一部分,也不能与其他骨骼连接。你需要让脚骨骼成为 IK 的子级,因此先选中脚骨骼,最后选中 IK 骨骼,然后按 CTRL+P > 保持偏移.



创建 IK 骨骼。

在 姿态模式,点击胫骨骨骼,按 CTRL+Shift+C 并选择 反向运动学。它看起来会一团糟,但别担心,等你改几个设置后就会修好。选中胫骨后,进入如下所示的 骨骼约束属性 。



在骨骼约束属性中你可以编辑 IK 设置。

在 目标中,选择 骨架。这样之后,在目标下方就会出现一个名为 骨骼 的选项。为此,选择你创建的 IK 骨骼。在 链长度 中,你要设置受 IK 影响的骨骼数量。由于我们做的是腿,所以希望它影响胫骨和大腿,因此将其设为 2.

极向目标

极向目标可让你控制骨骼弯曲的方向。以下是正确向 IK 链添加极向目标(或极向量)的步骤:

  • 在 编辑模式,复制大腿骨骼并将其放到任意位置。

  • 选中膝关节(或大腿骨骼的尾部),按 Shift+S > 光标到所选。

  • 选中复制的大腿骨骼,按 Shift+S > 选择到游标.

  • 在 变换朝向,将其改为 法线 并在 变换枢轴点 中将其改为 活动元素.

  • 将骨骼在 X 轴旋转 -90(或 90,取决于你设置的朝向),让它朝前,然后在 Y 轴上移动,直到它在腿前方处于一个合适的位置。你也可以把它稍微缩小一点。



创建极向目标。

回到 姿态模式中,再次选中胫骨并进入 骨骼约束属性。对于 极向目标 选择 骨架 ,对于 骨骼,选择你刚刚创建的极向目标。若你显示变形骨骼,就会看到极向目标让 IK 轻微旋转了。



由于极向目标的原因,IK 链和变形骨骼现在不再对齐。



通过更改极角度可以修正旋转。

这可以很容易地通过修改 极角度来修正。通常 -90° 就能解决,但你也可以手动调整,确保它们完全对齐。

最后,将 IK 骨骼和极向目标都设为根骨骼的子级:先同时选中它们,再选中根骨骼,然后按 CTRL+P > 保持偏移.

把大腿和胫骨移动到另一个层,因为动画时你不会用到它们,它们只是 IK 设置的一部分。

将变形骨骼绑定到非变形骨骼

IK 链已经设置好了,但它应该驱动变形骨骼,而现在还没有实现,不过你可以用约束来修正它。在 姿态模式中,先选中 IK 链中的一根骨骼,再最后选中对应的变形骨骼,按 CTRL+Shift+C 并选择 复制变换。对所有骨骼都这样做,在这个例子中就是大腿、胫骨、脚和脚趾。变形骨骼会呈绿色,这表示它们带有约束。如果你点击 骨骼约束属性,就能看到正在使用的是哪个约束,以及是由哪根骨骼驱动的。



绿色骨骼带有约束。你可以在骨骼约束属性中查看它们。

💡 提示:你不必为另一侧重新设置一遍 IK。在 编辑模式中,只需删除没有 IK 的那一侧所有骨骼,然后选中你想镜像的所有变形骨骼和 IK 链,右键单击并选择 对称化。它不仅会镜像骨骼,还会镜像所有约束!



使用“对称化”选项也能镜像约束!

非变形骨架和控制器**

最好不要直接对变形骨骼进行动画,因为这可能会破坏绑定,而且在导出时对变形骨架添加约束会影响层级和骨骼行为。

解决方法是创建一套非变形骨架,通过约束去驱动变形骨架,这样就可以安全地进行动画,而不会有破坏任何东西的风险。你也可以自定义它们的形状,让更容易识别某根骨骼的功能。它们将成为你绑定的控制器。

这个过程与 IK 设置的做法基本相同。使用 Shift+D 复制所有骨骼(IK 设置除外),然后按 M 并选择另一个槽位,将它们移动到另一个层。通过添加 Control_ 或 CTRL_ 作为后缀来重命名它们,这样你就知道这些属于控制器层级。按 一个 选中它们全部,并在 骨骼属性中,按住 Alt 并取消勾选 变形.

现在你需要添加约束,把两个骨架绑定在一起。为了让这个过程更容易,你可以点击 对象数据属性 ,并在 视口显示下,把 显示为 来自 八面体 为 B 骨骼。然后,按 CTRL+Alt+S 把骨骼稍微放大一些,让它们比原来的更大。



更改骨骼形状并放大它们,这样更容易区分两个骨架。

对于约束,先选中一个控制骨骼,再最后选中对应的变形骨骼,按 CTRL+Shift+C 并选择 复制变换。对所有控制骨骼都这样做。

你可以把控制骨骼分成不同组并为它们分配颜色。进入 姿态模式 > 对象数据属性 > 骨骼组。点击 + 图标来添加新组,按你的需要重命名,并为其选择一种颜色。然后,选中你想加入该组的骨骼,并点击 分配。你可以创建任意多个组来保持结构清晰。你也可以将不同的骨骼组移动到不同的层。



骨骼组能帮助你让绑定更有条理,也更直观。

改进绑定的另一种方法是自定义骨骼的形状。为此,进入 对象模式时,按 Shift+A 来添加一个网格,例如一个圆形。为了保持结构清晰,为形状创建一个集合,并把刚创建的圆形移动到那里。回到姿势模式,在 对象数据属性 > 视口显示 中勾选 形状。选中你想要的骨骼,然后在 骨骼属性中点击 视口显示 > 自定义形状。在 自定义对象,在大纲视图中选择那个圆形。



自定义骨骼形状。

如果形状感觉不对,你总可以在 编辑模式中编辑它,如下所示。确保该形状与骨骼朝向一致。



在编辑模式下编辑形状。

根据不同控制器的功能创建不同形状,让你的绑定更直观。

弹簧骨骼

除了标准的变形骨架外,可穿戴物还可以包含 弹簧骨骼 —— 这些额外骨骼的变换由物理模拟而不是动画来驱动。弹簧骨骼能让头发、耳环、披风和其他配饰随角色移动和重力产生动态效果。

要向绑定中添加弹簧骨骼:

  1. 在 编辑模式,从合适的父骨骼上挤出新的骨骼(例如, Avatar_Head 用于头发)。

  2. 命名每根骨骼时都要包含 springbone 这个词(不区分大小写),例如: SpringBone_hair_left, springbone_hair_left_01, Hair_SpringBone_left_tip 这些名称都有效,只要它们包含 springbone.

  3. 构建 线性链 且至少有 2 根骨骼 (一个根部和一个末端)。单独的一根弹簧骨骼不会产生任何运动——模拟需要一条链:根骨骼驱动物理效果,末端骨骼定义终点。链中的每根骨骼最多只能有一个弹簧骨骼子级。

  4. 像平常一样为网格设置到弹簧骨骼的蒙皮权重。

  5. 导出为 .glb —— 弹簧骨骼会包含在骨架中。

物理参数(刚度、重力、阻尼)在上传后于 Builder 中配置,而不是在 Blender 里配置。完整指南请参见 弹簧骨骼.

就是这样!有了这些信息,你已经可以做一个基础绑定了!

最后更新于