> 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-he-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)

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

### 编辑骨架

添加骨架对象后，选中它并进入 ***编辑模式***。你可以在这里通过挤出原有骨骼来添加其他骨骼（按 `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)

*骨骼结构。*

![](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)

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

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

### 重命名骨骼

一个非常重要的点是要根据 [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)

*修正骨骼滚转。*

![](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)

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

修正骨骼滚转对手指尤其重要，这样所有关节都会朝同一正确方向弯曲。不过你不必为手指里的每一根骨骼都单独修正，只要把其中一根调整正确即可。然后，先选中你想修正的骨骼，再最后选中那根滚转正确的骨骼，进入 ***骨架 > 骨骼滚转 > 重新计算滚转 > 活动骨骼*** ，它们就会拥有相同的滚转。或者你也可以直接按 `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)

*按 `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)

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

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

### 蒙皮

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

![](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)

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

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

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

![](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)

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

在开始编辑之前，如果你想在绘制时自动镜像权重绘制，请开启 ***镜像顶点组*** 并选择 ***X*** 在 ***镜像*** 下的 ***对称性*** （在 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)

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

![](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)

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

![](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)

*模糊工具。*

### 设置 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)

*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)

*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)

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

![](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)

*选中所有 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)

*创建 IK 骨骼。*

在 ***姿态模式***，点击胫骨骨骼，按 `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)

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

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

### 极向目标

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

* 在 ***编辑模式***，复制大腿骨骼并将其放到任意位置。
* 选中膝关节（或大腿骨骼的尾部），按 `Shift+S` > ***光标到所选。***
* 选中复制的大腿骨骼，按 `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)

*创建极向目标。*

回到 ***姿态模式***&#x4E2D;，再次选中胫骨并进入 ***骨骼约束属性***。对于 ***极向目标*** 选择 ***骨架*** ，对于 ***骨骼***，选择你刚刚创建的极向目标。若你显示变形骨骼，就会看到极向目标让 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)

*由于极向目标的原因，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)

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

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

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

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

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

IK 链已经设置好了，但它应该驱动变形骨骼，而现在还没有实现，不过你可以用约束来修正它。在 ***姿态模式***&#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)

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

{% hint style="info" %}
**💡 提示**：你不必为另一侧重新设置一遍 IK。在 *编辑模式*中，只需删除没有 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)

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

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

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

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

这个过程与 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)

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

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

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

![](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)

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

改进绑定的另一种方法是自定义骨骼的形状。为此，进入 ***对象模式***&#x65F6;，按 `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)

*自定义骨骼形状。*

如果形状感觉不对，你总可以在 ***编辑模式***&#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)

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

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

### 弹簧骨骼

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

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

1. 在 **编辑模式**，从合适的父骨骼上挤出新的骨骼（例如， `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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
