> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-zh/3d-jian-mo-yu-dong-hua/create-a-rig.md).

# 创建骨架

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

本文档展示了如何在 Blender 中设置一个基础骨骼绑定。如果你想更熟悉一些绑定概念，请查看 [《骨骼：基本概念》](https://docs.decentraland.org/creator/emotes/avatar-rig/).

{% hint style="info" %}
**💡 提示**：安装 [Decentraland Tools Blender 插件](https://extensions.blender.org/add-ons/decentraland-tools/)。它包含一些实用功能，可帮助你编辑和导出 3D 模型、可穿戴物品和表情动作。
{% endhint %}

### 添加骨架

首先，你需要把你的 3D 模型导入 Blender；如果你已经在 Blender 中完成了这一步，就直接打开你的 blend 文件即可。在对象模式下，按 `Shift+A` 并选择 ***骨架*** ，如下图所示。然后，在 ***对象数据属性***&#x4E2D;，在 ***视口显示***&#x4E0B;，切换 ***前显示***，这样你就能透过网格看到骨骼。网格和骨架应该对齐，因此在添加骨骼之前，务必确保模型已正确放置在世界中心。骨架的原点应位于 0,0,0（X,Y,Z）。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-c6973f5e25776caf3b102a81dcc941a20086a0db%2F01_add_armature.gif?alt=media\&token=9efd3c69-112f-4440-886a-83726d611130)

*添加骨架并让其透过网格显示。*

### 编辑骨架

添加骨架对象后，选中它并进入 ***Edit Mode***。你可以在这里通过挤出原始骨骼来添加其他骨骼（按 `E`），通过复制它（`Shift+D`）或者直接用 `Shift+A`新建一个。骨架应当遵循模型的形状，就像真实的骨骼一样。骨骼可以缩放、抓取和旋转，并且有两部分：头部和尾部。头部是枢轴点，这意味着旋转和缩放都将从那里开始。这也意味着网格变形会在那里发生，因此要尽可能把骨骼放在网格中间位置。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4dae1276b8646cac09fe19802a67508444d47417%2F02_bone_head_tail.png?alt=media\&token=25fdba35-9df7-4c7c-8b55-aee21a823a17)

*骨骼结构。*

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2cd7dcc2ed4b4398b83ce727d4409e83a0e5c6be%2F03_bone_pivot_rotation.gif?alt=media\&token=5199a45b-6c41-4286-8615-254c6dcb2f7e)

*骨骼绕其枢轴点旋转。*

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

### 重命名骨骼

非常重要的一点是，要根据 [Blender 的命名约定](https://docs.blender.org/manual/en/latest/animation/armatures/bones/editing/naming.html)正确重命名所有骨骼。这不仅能让一切更有条理，还能让镜像姿势和权重绘制成为可能。你可以直接把它重命名为它所代表的身体部位，例如 Spine\_01；或者更具体一些，命名为 DEF\_spine.001（DEF 代表变形骨骼，因此你会知道这根骨骼属于变形层级）。

### 骨骼朝向

继续之前，你应该检查骨骼朝向。你可以通过进入 ***对象数据属性*** 并在 ***视口显示***&#x4E0B;，切换 ***轴***&#x4E0B;进行查看。这会让骨骼的轴线可见，从而检查它们是否会朝正确方向旋转。

这些轴应与骨骼希望旋转的方向对齐。如果感觉有点不对，选中骨骼，然后在视口右侧的 ***对象变换*** 菜单中调整 ***滚转*** ，直到朝向感觉正确。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-0c0d71080b074a65d6b05052b04de6441d92cdc1%2F04_bone_roll.gif?alt=media\&token=b068e579-8d58-4a49-ba7e-c090d3e14408)

*修正骨骼滚转。*

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-c48c9252d24dfa90de0f9076edd6ac8d14aa0f59%2F05_toggle_axes.png?alt=media\&token=73472dc0-a1ec-457d-aa98-7bfafd26c5c9)

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

修正骨骼滚转对于手指尤其重要，这样所有关节都会朝同一个正确方向弯曲。不过，你不必为手指中的所有骨骼都这样做，只要先把其中一根调好即可。然后，先选中你想修正的那些骨骼，再最后选中滚转正确的那根，进入 ***骨架 > 骨骼滚转 > 重新计算滚转 > 活动骨骼*** ，它们就都会具有相同的滚转。或者你也可以直接按 `Shift+N` > ***活动骨骼***。这可用于许多存在长骨骼链的情况，例如触手、尾巴、长马尾或机械臂。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6efbb0a40086e781c63a2f5149426342875b2a5f%2F06_bone_roll_fingers.gif?alt=media\&token=566da285-97b0-46bd-b270-6abc153e7baf)

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

### 镜像骨架

你不必为两侧都创建骨骼。先做一侧即可，当你修正好所有命名和骨骼朝向后，选中所有需要镜像的骨骼，鼠标右键单击并选择 ***对称化***。这样所有骨骼都会以正确的朝向被正确镜像。请记住，为了让这个工具生效，骨骼需要按照 Blender 的命名约定来命名。如果名称中有大小写形式的 “L”、“R”、“left” 或 “right”，Blender 就能正确处理对应项。

一些正确命名约定的示例：

* Hand\_L –> Hand\_R
* Hand.L –>Hand.R
* HandLeft –> HandRight

**上面的所有示例都有效，但只需选择其中一种，并在整个骨架中保持一致。**

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-007509c211a7ceead4aaf6607a2be0245302f7fa%2F07_symmetrize.gif?alt=media\&token=262f4898-3432-4f19-a017-dbf0a64d114a)

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

{% hint style="info" %}
**⚠️ 注意！** 只有在骨骼被正确重命名后，对称化才会生效。如果镜像不正确，你可能需要重新检查骨骼名称。
{% endhint %}

### 蒙皮

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

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3760b7b37e04e1e562192100b7a9d4f77d2dfc5e%2F08_skinning.gif?alt=media\&token=e2e9d02f-0ac3-4f4d-8953-6acdc138589c)

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

如果你觉得某根骨骼放错位置了，或者枢轴点不准确，你总是可以回到骨架的 ***Edit Mode*** 并进行调整。这不会对蒙皮造成任何影响，而且你随时可以使用 ***对称化*** 来镜像这些更改。

若要修复奇怪的变形，请进入 ***对象模式***，选中网格并转到 ***Weight Paint***。在 ***对象数据属性*** 中你会找到 ***顶点组***.

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-1bb3ce9a3a5725a63d03d0f1df80f2b3763f42b4%2F09_weight_paint.gif?alt=media\&token=451b0ed9-14b8-4a7e-ae16-340db1e19306)

*在权重绘制中编辑骨骼的影响。*

在开始编辑之前，如果你希望绘制时自动镜像权重绘制，请切换 ***镜像顶点组*** 并选择 ***X*** 在 ***Mirror*** 下的 ***对称*** （在 Blender 3.4.0 中）要编辑影响，请选中你想要的顶点组，并在 ***工具*** 菜单中，在 ***混合***&#x4E0B;，根据需要在 ***添加*** 和 ***减去*** 之间切换。你也可以更改画笔的大小、权重和强度。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-52c7a15a123b6a1bbc7e9ea69f06ffb5cd29b094%2F10_weight_paint_tools.png?alt=media\&token=6052e440-a911-4b97-8cc2-d33ec7fb3d68)

*将“混合”改为添加或移除影响。确保“对称”设置正确。*

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-a63632a48ac6bcae96650bb2183d2b21fec2dda6%2F11_weight_paint_tools_02.png?alt=media\&token=a68dac48-92ee-4878-87bc-4c6c1317a420)

使用 ***模糊*** 工具位于屏幕左侧，可用于平滑权重绘制并使其更均匀。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-726c58dd537ea63e8490e4415d7484fa71cbac51%2F12_blur_tool.gif?alt=media\&token=f86c8e33-a7b2-4406-9b41-64cb4a3c9fde)

*模糊工具。*

### 设置 IK

当你希望某物保持在原位时，IK 至关重要。它最典型的用途是在腿部，但它也可以用于多种情况，例如下面的例子：

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-935e8ce9abfafba6f7bfe06557f0d3d9528725c1%2F13_IK_example_mch_arm.gif?alt=media\&token=aae959f0-2544-40b9-94b3-03555471eb33)

*IK 在机械臂中的使用。*

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-63302e8e083d48163c973c36b9ec5fe21530fc80%2F14_IK_example_buddha.gif?alt=media\&token=079b309b-25c3-4122-a013-3f54ac7890f0)

*IK 在缆线中的使用。*

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

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

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f1374db528e9a5e02f39fa7db7af159fd6596e24%2F15_Duplicating_bones.gif?alt=media\&token=423f2a3f-9628-425f-88d9-6e79b3e2fc57)

*复制这些骨骼并将它们移动到另一个层。*

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6df947d8af4f946e912ec0e018e2c49d7f89da4d%2F16_uncheck_deform.png?alt=media\&token=9149aca0-13b9-400a-ba2c-b6762f31e855)

*选中所有 IK 骨骼，同时按住 `Alt`，取消勾选变形。*

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

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-bfd0bf6509a324354e31305bc7b1e53d1109860a%2F17_IK_bone.gif?alt=media\&token=45655e86-963b-44d9-bf91-4b4bb045d33d)

*创建 IK 骨骼。*

在 ***Pose Mode***，点击胫骨，按 `CTRL+Shift+C` 并选择 ***反向运动学***。它看起来会很乱，但别担心，等你调整几个设置后就会修好。选中胫骨后，进入下面所示的 ***骨骼约束属性*** 。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-b1676c9b0072ce6098038a28e17c022b2bb8c4bd%2F18_constraint_tab.png?alt=media\&token=ee5ba298-60f1-4651-826b-f8704daad3e8)

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

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

### 极向目标

极向目标可让你控制骨骼弯曲的方向。以下是正确将极向目标（或极向量）添加到 IK 链的步骤：

* 在 ***Edit Mode***，复制大腿骨骼并将其放在任意位置。
* 选中膝关节（或大腿骨骼的尾部），按 `Shift+S` > ***Cursor to Selected。***
* 选中复制出的大腿骨骼，按 `Shift+S` > ***选择到游标***.
* 在 ***变换方向***，将其更改为 ***法线*** 并在 ***变换枢轴点*** 中将其更改为 ***活动元素***.
* 在 X 轴旋转骨骼 -90（或者 90，取决于你设置的朝向），使其朝前，然后沿 Y 轴拖动它，直到它在腿前方处于一个合适的位置。你也可以把它稍微缩小一些。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-ec551b2e1c2613ef0b88c60ec7fdde0f26feb0db%2F19_creating_pole_target.gif?alt=media\&token=1808a95b-f331-4d03-9e69-2e09481ba877)

*创建极向目标。*

返回到 ***Pose Mode***，再次选中胫骨，然后进入 ***骨骼约束属性***。对于 ***极向目标*** 选择 ***骨架*** 并且对于 ***骨骼***，选择你刚刚创建的极向目标。若显示变形骨骼，你会看到极向目标让 IK 略微旋转了。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e1e22b302d706bda9fca98b9118220d04928ae31%2F20_pole_target_rotation.png?alt=media\&token=7f548b98-1e8a-4570-9b85-0112a2ebf7c1)

*由于极向目标，IK 链和变形骨骼现在不再对齐。*

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7d1a769971f5aecdf4ec81aded5c3617b3015e62%2F21_pole_target_rotation_fix.png?alt=media\&token=b83fe4a5-6d1e-4586-a6c5-9a975d2cbd24)

*可以通过更改 Pole Angle 来修正旋转。*

这可以通过修改 ***极角***&#x8F7B;松修复。通常 -90° 就能解决问题，但你也可以手动调整，确保它们完全对齐。

最后，通过同时选中 IK 骨骼和极向目标，然后再选中根骨骼，按 `CTRL+P` > ***保持偏移***.

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

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

IK 链已经设置好了，但它应该驱动变形骨骼，而现在并没有这样做，不过你可以使用约束来修复这一点。在 ***Pose Mode***&#x4E2D;，先选中 IK 链中的一根骨骼，再最后选中对应的变形骨骼，按 `CTRL+Shift+C` 并选择 ***复制变换***。对所有骨骼都这样做，在这个示例中就是大腿、胫骨、脚和脚趾。变形骨骼会显示为绿色，这意味着它们带有约束。如果你点击 ***骨骼约束属性***，你可以看到正在使用哪种约束，以及由哪根骨骼驱动。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4b1aad10799e9e884ad22ac6aa34423d1c51f092%2F22_constraints.gif?alt=media\&token=4bf40f37-b64d-4047-a423-37bcdba47fd4)

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

{% hint style="info" %}
**💡 提示**：你不必为另一侧重新设置 IK。在 *Edit Mode*中，只需删除没有 IK 的那一侧的所有骨骼，然后选中所有你想要镜像的变形骨骼和 IK 链，鼠标右键单击并选择 *对称化*。它不仅会镜像骨骼，还会镜像所有约束！
{% endhint %}

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-14fab81d4db0c4694e5f5268a411e47e3f9b6652%2F23_symmetrize_constraints.gif?alt=media\&token=889b8dbe-9ae3-499d-91c9-9a5a00f9f925)

*使用“对称化”选项也可以镜像约束！*

### \*\*非变形骨架和控制器\*\*

通常不建议直接动画化变形骨骼，因为这样可能会破坏骨架，而且给变形骨架添加约束会在导出时影响层级和骨骼行为。

解决方案是创建一个非变形骨架，通过约束驱动变形骨架，并且它可以安全地进行动画，而不会有破坏任何东西的风险。你还可以自定义它们的形状，让骨骼功能更容易识别。它们将成为你骨架的控制器。

这一过程与 IK 设置几乎相同。用 `Shift+D` 复制所有骨骼（除了 IK 设置）并按 `M` 将它们移动到另一个层，并选择另一个槽位。给它们全部重命名，添加 **Control\_** 或 **CTRL\_** 作为后缀，这样你就知道它们属于控制层级。按 `一个` 来全选它们，然后在 ***骨骼属性***&#x4E2D;按住 `Alt` 并取消勾选 ***变形***.

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

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5725fb32569cd799a4059f171977ef2203374bac%2F24_b-bone_scale.gif?alt=media\&token=1cf2e5e5-9e6e-452a-94ea-05f50362fe16)

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

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

你可以把控制骨骼分成不同的组，并为它们分配颜色。进入 ***Pose Mode*** > ***对象数据属性*** > ***骨骼组***。点击 ***+*** 图标来添加一个新组，根据需要重命名并为其选择一种颜色。然后，选中你希望加入该组的骨骼，并点击 ***分配***。你可以创建任意多个组，以保持一切井然有序。你还可以把不同的骨骼组移动到不同的层。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-9724d3bb3b528d34d86dfcd264f3d93a50532718%2F25_bone_groups.png?alt=media\&token=b8a44c12-ef9e-46df-a88e-055dd1d50569)

*骨骼组会帮助你让骨架更有条理，也更直观。*

改进骨架的另一种方法是自定义骨骼的形状。为此，请进入 ***对象模式***&#x4E0A;，按 `Shift+A` 添加一个网格，例如一个圆形。为了保持组织有序，为这些形状创建一个集合，并把刚创建的圆形移到那里。回到姿态模式，在 ***对象数据属性*** > ***视口显示*** 中勾选 ***形状***。选中你想要的骨骼，然后在 ***骨骼属性***&#x4E2D;点击 ***视口显示*** > ***自定义形状***。在 ***自定义对象***，在大纲视图中选择那个圆形。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-017280155b1fd53bb176015d20b67bd2b4cd8cf2%2F26_bone_shape.gif?alt=media\&token=c95dcce8-d6df-4f8b-84c7-d291cc45431b)

*自定义骨骼形状。*

如果形状感觉不对，你总是可以在 ***Edit Mode***&#x4E2D;对其进行编辑，如下所示。确保该形状与骨骼朝向一致。

![](https://2460066822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-479d3b41de60819e9a66f53e0bf76b3216dc4bac%2F27_bone_shape_edit.gif?alt=media\&token=6ba90647-a426-4f6b-95ea-6333104ec95a)

*在编辑模式中编辑形状。*

根据不同控制器的功能创建不同的形状，让你的骨架更直观。

### 弹簧骨骼

除了标准的变形骨架之外，穿戴物还可以包含 **弹簧骨骼** —— 其变换由物理模拟而不是动画驱动的额外骨骼。弹簧骨骼能让头发、耳环、披风和其他配饰根据角色移动和重力做出动态反应。

要向骨架添加弹簧骨骼：

1. 在 **Edit Mode**，从合适的父骨骼中挤出新骨骼（例如 `Avatar_Head` 用于头发）。
2. 给每根骨骼命名时都包含 `springbone` 在名称中（不区分大小写），例如： `SpringBone_hair_left`, `springbone_hair_left_01`, `Hair_SpringBone_left_tip` 这些名称都有效，只要它们包含 `springbone`.
3. 构建 **线性链** ，且至少有 **2 根骨骼** （一个根部和一个末端）。单独的一根弹簧骨骼不会产生任何运动——模拟需要一条带有根骨骼来驱动物理效果、带有末端骨骼来定义终点的链条。链中的每根骨骼至多只能有一个弹簧骨骼子级。
4. 像平常一样为网格绑定弹簧骨骼的权重。
5. 导出为 `.glb` —— 弹簧骨骼会被包含在骨架中。

物理参数（刚度、重力、阻尼）是在上传后的 Builder 中配置的，而不是在 Blender 里。完整指南请参见 [弹簧骨骼](https://docs.decentraland.org/creator/wearables-and-emotes/wearables/spring-bones).

就这样！有了这些信息，你已经准备好制作一个基础骨架了！


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-zh/3d-jian-mo-yu-dong-hua/create-a-rig.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
