# 骨骼

Spine中的大多数动画都会用到骨骼，甚至非动画角色的物体[骨架](/spine-skeletons)也会用到。简单的骨架每张图片可能用一个骨骼。更复杂的骨架可能会将图片绑定到多个骨骼，这样骨骼动起来时图片就会变形。

骨架有一个骨骼层级，并且始终只有一个根骨骼。根骨骼下可能有子骨骼，子骨骼下亦可能有子骨骼，依此类推。

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

骨骼可以添加到[皮肤](/spine-skins#皮肤骨骼)中，如此只有在皮肤可见时骨骼才会激活。

# 骨骼变换

每个骨骼都具有旋转、平移、缩放和剪切属性，这些属性一起称为骨骼的“变换”。骨骼的变换会影响其子骨骼。例如，平移手臂骨骼也会平移手部骨骼。

骨骼变换的这种分层继承使得操作图片变得更容易、更直观。例如，可以通过缩放根骨骼来缩放整个骨架。或者，当手臂骨骼旋转时，如我们所期待的那样，手部骨骼将保持在手臂末端。

骨骼变换可以通过[变换工具](/spine-tools#变换工具)进行操作，并且可以[设置关键帧](/spine-keys#骨骼变换)。

# 创建骨骼

<callout>一些图片编辑器[脚本](/spine-images#脚本)(如Photoshop的脚本)可以创建骨骼，因此当JSON数据导入到Spine中时，骨骼已经存在。</callout>

可以使用[创建工具](/spine-tools#创建工具)创建骨骼。

也可以通过在层级树中选择将成为父级的骨骼，然后在层级树属性中选择`新建...` `骨骼`来创建骨骼。新骨骼将在父骨骼的末梢创建，这样就不需要手动将其放置在那里(如果需要这样放的话)。

# 属性

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

## 变换继承

<callout>不能禁用受[IK约束](/spine-ik-constraints)影响的骨骼的变换继承。</callout>

通常，父骨骼的[变换](#骨骼变换)会影响其子骨骼。继承复选框允许不继承部分父级变换。
* `旋转` 如果不选中此选项，则旋转父骨骼时子骨骼不会旋转。如果父骨骼缩放不均匀(意味着它们的X和Y比例不同)，骨骼的世界角度可能仍会更改。
* `缩放` 如果不选中此选项，则在缩放父骨骼时子骨骼不会缩放。父骨骼的非均匀缩放可能仍会更改子骨骼的世界角度，但大小不会更改。
* `反射` 通常当比例从正值变为负值时，骨骼会翻转指向相反的方向。不选中`反射`时，负比例不会导致骨骼翻转。

## 长度

骨骼的长度可以在骨骼的层级树属性中设置，也可以通过[骨骼长度工具](/spine-tools#骨骼长度工具)设置。

骨骼的长度是不重要的，使用[IK约束](/spine-ik-constraints)、[路径约束](/spine-path-constraints)或[自动权重](/spine-meshes#自动权重)时除外。

可使用十字准线图标在视口中绘制零长度骨骼，在其他方面与任何其他骨骼完全相同。

## 图标

更改骨骼图标有助于区分层级树和视口中的骨骼，特别是当它们的长度为零时。

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

## 名称

选中后，骨骼的名称始终在视口中渲染(如果它不与另一个名称重叠)，即使未[启用](/spine-tools#视口选项)名称也是如此。可以单击该名称以选择骨骼。

## 选择

取消选中`选择`时，不能在视口中选择骨骼。如果在层级树中将其选中，则它在视口中仍将处于选中状态。

当一小块区域中有许多骨骼并且其中一些骨骼不需要经常选择时，这会很有用。

## 着色

<callout>可以选择多个骨骼以同时为所有骨骼设置颜色。</callout>

更改骨骼的颜色有助于区分层级树和视口中的骨骼，从而使选择更容易。例如，对于类人骨骼，后腿和后手臂的颜色可与前腿和前手臂不同。

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

## 设置父骨骼

通过单击`设置父骨骼`或按`P`键，然后单击层级树或视口中的新父骨骼，可以更改骨骼的父骨骼。也可以在层级树中将骨骼拖动到新的父骨骼，即使在不同的骨架中也是如此操作。

## 添加到皮肤

`添加到皮肤`按钮可将骨骼添加到当前活动的皮肤。有关详细信息，请参见[皮肤骨骼](/spine-skins#皮肤骨骼)。

如果当前没有任何皮肤处于活动状态，则会禁用该按钮。不能将根骨骼添加到皮肤。

## 拆分

使用`拆分`按钮可以将骨骼拆分成多个较小的骨骼。与手动创建许多小骨骼相比可以节省时间。

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

选中`嵌套`时，每个新骨骼都是前一个骨骼的子骨骼。取消选中后，所有新骨骼将与原骨骼具有相同的父级。

选中`斐波那契`时，新骨骼的长度将遵循斐波那契序列，这意味着它们会逐渐变小。取消选中后，新骨骼将具有相同的长度。

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

## 分离X和Y

在动画模式下，骨骼属性中会多显示一行。

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

`分离`复选框允许为当前动画的平移、缩放或剪切分别设置X和Y的关键帧。有关详细信息，请参见[分开设置X和Y关键帧](/spine-keys#分离X和Y)。

# 隐藏骨骼

![](/img/spine-user-guide/bones/bone-visibility.png)

骨骼在层级树中有一个可见点。隐藏时，骨骼将不会绘制，也不能在视口中选择，但如果在层级树中选择了骨骼，它仍会在视口中处于选中状态。隐藏骨骼时，它仍将显示在数据导出中，并且仍绘制子骨骼和附件。

<callout>如果隐藏了许多骨骼或插槽，按Ctrl+H可再次显示它们。</callout>

隐藏骨骼仅用于临时减少视口中的混乱，不能设置关键帧。作为代替，你可能希望隐藏所有骨骼插槽的附件，并为其设置[关键帧](/spine-keys#插槽附件)。

右键单击骨骼的可见点将切换隐藏骨骼及所有子骨骼和插槽。

所有骨骼都可以使用[视口选项](/spine-tools#视口选项)隐藏在视口中。

# 骨骼绘制顺序

骨骼在视口中的绘制顺序取决于它们的创建顺序，并且不能更改。创建的最后一个骨骼将绘制在其他骨骼之上。骨骼绘制顺序重要的情况很少见。

# 附件

仅仅制作骨骼动画是不够的，我们需要一种将图片和其他东西附加到骨骼上的方法。这就是“附件”发挥作用的地方！

将附件附加到骨骼上，因此当骨骼变换时，附件也会变换。有些附件是可见的，含有图片，而另一些附件则是概念性的，比如用于检测碰撞的边界框。

但是，附件并不直接附着在骨骼上。而是被分组到一个“插槽”下，该插槽则被附加到一个骨骼上。插槽控制哪些附件可见以及附件的颜色。我们将在[下一节](/spine-slots)中详述关于插槽的内容，并在[稍后](/spine-attachments)更详细地介绍附件。

[下一节: 插槽](/spine-slots)
[上一节: 骨架](/spine-skeletons)
[Spine用户指南: 目录]