# 权重视图

权重用于将附件顶点绑定到骨骼，因此当骨骼变换时，顶点也会变换。权重使骨骼可以在被操纵时自动变形附件，这比移动单个顶点设置复杂变形动画更容易、更高效。

<callout>设置复杂网格时，请仔细[规划你的权重](/blog/Mesh-weight-workflows)。</callout>

使骨骼影响网格顶点的其他名称包括：线性混合蒙皮、混合蒙皮、多矩阵蒙皮、骨架子空间变形，或者有时简单地称为“蒙皮”。为了避免与Spine中不相关的[皮肤](/spine-skins)功能混淆，我们使用“权重”名称。

虽然权重最常用于[网格附件](/spine-meshes)，但也适用于[路径](/spine-paths)、[边界框](/spine-bounding-box)和[剪裁附件](/spine-clipping)。在本文其余部分中使用了“网格”，但权重适用于任何类型的附件。

![](/img/spine-user-guide/weights/view.png)

有关如何使用权重的一些聪明的方法，请参阅权重[提示](/spine-tips#权重)。

# 绑定

在调整权重之前，需要将骨骼绑定到网格。有如下两种方法：

1. **先选择网格**<br>使用任意工具选择网格，然后在权重视图中点击`绑定`进入绑定模式。接下来，单击要绑定到网格的每个骨骼。完成后，再次点击`绑定`退出绑定模式，或者按`空格键`或`escape键`退出绑定模式。
1. **先选择骨骼**<br>使用任意工具选择任意数量的骨骼，然后单击权重视图中的`绑定`进入绑定模式。接下来，单击一个网格以将骨骼绑定到该网格。

![](/img/spine-user-guide/weights/bind-mode.png)

当骨骼第一次绑定到网格时，会[自动计算](#自动)权重。之后，当骨骼变换时，顶点会受到影响，图像也会变形。

![](/img/spine-user-guide/weights/rotate.png)

# 骨骼列表

骨骼列表显示绑定到选定网格的骨骼。

![](/img/spine-user-guide/weights/bones-list.png)

将为每个骨骼指定一种颜色。选择`权重`工具时，骨骼将以匹配的颜色显示在视口中。

![](/img/spine-user-guide/weights/bound.png)

在视口中选择一个顶点后，骨骼列表将显示每个骨骼对该顶点的权重。如果选择了多个顶点，并且一个骨骼对它们有不同的权重，则会显示一个星号(`*`)。有权重的骨骼的名称将在骨骼列表中高亮显示。

在骨骼列表中选择骨骼，然后单击`删除`可解绑骨骼。未绑定的骨骼将不再影响网格。如果删除所有骨骼，网格将恢复为仅受其附加到的骨骼的变换影响。

右键单击一个骨骼将在层级树和视口中选择该骨骼。

## 三角形顺序

可以通过上下拖动骨骼来更改骨骼列表中骨骼的顺序。骨骼的顺序决定了在同一网格中的其他三角形之上绘制网格的哪些三角形，如果网格本身重叠，顺序就很重要。

首先确定哪个骨骼对三角形的顶点有最高权重，以对网格的三角形进行排序。然后，该骨骼在权重视图中的顺序用于确定在其他三角形之上绘制哪些三角形。

![](/img/spine-user-guide/meshes/weights-order.gif)

# 饼图

如果选中该选项并选择了`权重`工具，则会为每个顶点显示饼图，以指示每个骨骼的权重。饼图中的切块与骨骼列表中每个骨骼的颜色相匹配。选定的顶点有较大的饼图。

![](/img/spine-user-guide/weights/pies.png)

# 叠加

如果选中此选项并选择了`权重`工具，网格将使用骨骼颜色填充，以显示每个骨骼的权重。

![](/img/spine-user-guide/weights/overlay.png)

# 已选

选中后，仅为选定顶点和有骨骼列表中选定骨骼权重的顶点绘制饼图。此外，叠加对所有未选中的骨骼使用黑色，这样可以更容易地看到暗淡的颜色。

![](/img/spine-user-guide/weights/selected-black.png)

# 权重工具

![](/img/spine-user-guide/weights/weights-tool.png)

每个顶点都有每个骨骼的权重，该权重确定骨骼的影响。虽然[自动权重](#自动)通常做得很好，但仍可以使用`权重`工具手动调整权重。

若要更改选定顶点的权重，请首先选择权重将增加或减少的骨骼。这可以通过单击骨骼列表或视口中的骨骼来完成。接下来，在视口中拖动以更改选定顶点的权重，具体取决于[模式](#模式)。

## 模式

![](/img/spine-user-guide/weights/mode.png)

`模式`及其下方的滑块决定了`权重`工具的工作方式。

在使用`权重`工具之前，首先选择要调整权重的骨骼。这可以通过单击骨骼列表或视口中的骨骼来完成。

### 直接

`直接`模式提供对单个权重值的精确控制。在骨骼列表中选择顶点和骨骼后，在视口中上下拖动以调整这些骨骼的权重。或者，可以使用“权重”滑块来设置精确的权重。

要在未选择任何顶点的情况下选择顶点，可拖动进行框选。通过按住`ctrl`(Mac上为`cmd`)，然后单击或拖动框选，可以选择其他顶点。按`空格键`或`escape键`或在任何空白处单击可以取消选择已选顶点。

### 画笔

`权重`工具有三种画笔模式：

* `添加` 为选中的骨骼添加权重。
* `删除` 删除选定骨骼的权重。
* `替换` 将所选骨骼的权重设置为特定值。

每种画笔模式都有三个设置：

* `强度` 设置将应用的最大权重。
* `大小` 设置画笔的大小。
* `羽化` 为权重从`强度`下降到0%的画笔大小百分比。

![](/img/spine-user-guide/weights/brush.png)

如果未选择任何顶点，画笔将影响所有顶点。否则，画笔仅影响选定顶点。

单击可选择顶点或按住`ctrl`(Mac上为`cmd`)进行框选。按`空格键`或`escape键`或在任何空白处单击可以取消选择所选顶点。

## 调整权重

当增加一个骨骼的权重时，影响顶点的其他骨骼的权重就会减少，以使权重总和为100%。仅通过添加权重来调整权重通常更为直观。

当减少一个骨骼的权重时，影响顶点的其他骨骼的权重就会增加，以使权重总和为100%。如果一个骨骼有100%的权重，则该权重不能减少，因为没有其他骨骼可以赋予该权重。

## 测试权重

调整权重后，可以变换骨骼以查看权重的行为。

切换到其他工具时，将保存对`权重`工具的选择。这样可以切换到变换工具，通过操纵骨骼来尝试权重，然后切回`权重`工具进一步调整权重，而不需更改选择。

可以在设置模式下变换骨骼，然后使用撤消来恢复对骨骼的更改。但是，最好使用动画模式变换骨骼，这样设置模式就不会受到影响。禁用[自动关键帧](/spine-keys#自动关键帧)时，单击时间轴上的任意位置会将变换的骨骼重置回设置姿势。

创建一个在调整权重时可最大范围移动骨骼的动画非常有用。这样，你就可以专注于权重的行为方式，而根本不需要切换到骨骼变换工具。播放动画时，`权重`工具的`直接`模式最易使用。此外，还可以使用[预览视图](/spine-preview)在调整权重时查看动画播放，而无需在视口中播放动画。

# 自动

`自动`按钮会自动计算权重。这不是使用顶点和骨骼之间的简单距离，Spine会使用考虑到网格地形的复杂算法来选择最佳权重。

如果在视口中选择了任何顶点，则仅为选定顶点计算权重。当需要修复部分网格的权重，但又不想丢失为网格其余部分手动设置的权重时，这会很有帮助。

如果在骨骼列表中选择了任何骨骼，则仅计算选定骨骼的权重。当自动权重不能按需要的方式计算骨骼的权重时，这会很有帮助。在这种情况下，可以在不选择骨骼的情况下应用自动权重，以提供接近你所需的权重，然后可以手动设置进一步的权重。

# 平滑

`平滑`按钮用于将选定顶点的权重与其相邻顶点平均。顶点的相邻顶点是由外壳边(青色)或手动创建的内部边(橙色)连接的顶点。如果未选择任何顶点，则所有顶点都会受到影响。“平滑”可以分散骨骼的权重，并能产生更平滑的变形。可以多次单击以增加权重分布。

平滑可能会导致不必要的[顶点变换](/spine-metrics#顶点变换)。可以使用`修剪`来去除较小的权重。

# 修剪

`修剪`按钮可移除阈值以下的权重。设置权重时，通常会出现一些骨骼对某些顶点产生较小影响的情况，特别是在使用`平滑`之后。这些权重不太可能产生明显差异，但仍会导致计算额外的[顶点变换](/spine-metrics#顶点变换)。移除不必要的权重可以减少渲染网格所需的顶点变换数量。

`骨骼`滑块确定每个顶点可以有权重的最大骨骼数。当一个顶点有超过指定数量的骨骼的权重时，最低的权重将被移除并分布到其他有权重的骨骼。

`阈值`滑块可设置从顶点移除权重的阈值。移除的权重将分布到具有权重的其他骨骼。

调整这些滑块可以实时预览结果，并显示要移除的骨骼数量。

使用[层级树筛选器](/spine-tree#筛选器)只显示网格，然后选择所有网格并点击`修剪`可以修剪多个网格。

# 更新绑定

“更新绑定”按钮可将当前顶点重新绑定到骨骼，丢弃旧的绑定位置。

![](/img/spine-user-guide/weights/update-bindings-button.png)

当骨骼绑定到网格时，此时的网格顶点会相对于每个骨骼进行存储。移动骨骼时，顶点也会移动以保持与骨骼相同的位置。骨骼权重确定每个骨骼对顶点的影响程度。例如，如果骨骼的权重为100%，则顶点将精确地与骨骼一起移动。

<callout>有关`更新绑定`的更多示例，请参见我们的[网格绑定教程](/blog/Mesh-binding-tutorial)和[旋转钻石教程](Rotating-diamond-tutorial)。</callout>

如果骨骼在绑定到网格后进行了变换，则调整权重将更改顶点位置。之所以会发生这种情况，是因为每个骨骼都希望顶点位于不同的位置。有时，调整权重时顶点移动是可以接受的。其他时候则不行，这时就要用到`更新绑定`。

#### 不更新绑定示例

在本例中，不需要更新绑定。调整权重会导致顶点移动，但是可以接受的。

考虑有一个长尾巴的骨架。图像弯曲得越多，扭曲程度就越大，因此最好从弯曲范围中心附近的图像开始。长尾巴需要在两个方向上弯曲很多，所以最好使用瘦长的长方形，绑在骨骼上并添加权重。

![](/img/spine-user-guide/weights/tail1.png)

但是，尾巴在设置模式下完全笔直会看起来很奇怪，因此可以旋转骨骼，这样尾巴在设置模式下就会弯曲。

![](/img/spine-user-guide/weights/tail2.png)

由于骨骼被旋转以弯曲尾巴，因此自绑定网格以来，骨骼变换已更改。现在，每个骨骼都希望顶点位于不同的位置，因此当权重调整时，顶点就会移动。这是可以接受的，因为调整权重控制弯曲尾巴的变形方式，并且此设置姿势保持精确位置并不重要。

#### 更新绑定示例

在本例中，更新绑定用于在调整权重时防止顶点移动。

考虑一个骨架的手臂有加权网格。如果手臂骨骼在设置模式下旋转以达到所需的精确设置姿势，则调整权重修复手臂在动画中的弯曲方式将在设置模式下移动顶点，从而破坏设置姿势。在这种情况下，可以使用`更新绑定`在旋转手臂后设置新的绑定姿势。然后，当权重更改时，设置模式中的顶点将不会移动。

# 复制骨骼

当骨骼被[复制](/spine-tree#属性)时，该骨骼下的所有子骨骼、插槽和附件也会被复制。以这种方式复制有权重的附件时，如果可能，会修改权重以使用相应的复制骨骼。

# 视频

[Bilibili](https://www.bilibili.com/video/BV1Jf4y1y7UY/)
<iframe src="//player.bilibili.com/player.html?bvid=BV1Jf4y1y7UY&autoplay=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>!!

[youtube:d-YeActEi38&list=PLwGl7Ikd_6GRFo7d0uRu_fN2RIlvkxW7b?modestbranding=1&rel=0]

[下一节: 欢迎屏幕](/spine-welcome-screen)
[上一节: 层级树视图](/spine-tree)
[Spine用户指南: 目录]