皮肤

皮肤可以让骨架的所有骨骼和动画保持不变,然而替换不同的附件,从而实现重用。这大大减少了对于具有相似骨骼和动画的人物的工作量。

皮肤的关键是 皮肤占位符。皮肤占位符在层级树的插槽之下,就像任何其他附件一样。但它仅仅是实际将使用的附件的占位符,它来自于当前活动的皮肤。皮肤只是皮肤占位符的附件集合。当激活不同的皮肤时,它将会改变整个骨架中皮肤占位符所用的附件。

设置

设置皮肤包括了创建皮肤和皮肤占位符,然后用该皮肤的附件填充皮肤占位符。

皮肤

通过选择层级树中的 皮肤 节点并单击 新建皮肤 以创建皮肤。

皮肤占位符

通过选择层级树中的骨骼或插槽并单击 新建... 皮肤占位符 以创建皮肤占位符。

皮肤占位符可保持每个皮肤的附件,因此它的名称不需要表明它用于哪个皮肤。皮肤占位符名称只需表明它表示哪个附件。例如,如果有“红色”和“蓝色”皮肤,那么“头”就是很好的皮肤占位符名称,而不是“红色头”或“蓝色头”。

附件

要想用皮肤的附件填充皮肤占位符,首先要确保所需皮肤为活动状态。层级树中的可见性圆点表明哪个皮肤为活动状态。此处,“红色”皮肤为活动状态:

皮肤一旦激活后,就可以将附件置于皮肤下占位符以下,以定义活动皮肤的附件。如果有不同的皮肤激活,那么这些附件将消失,将会出现为新激活皮肤中定义的附件。

捷径

如果骨架的所有附件未使用皮肤占位符创建,那么创建皮肤占位符并将现有附件移到它们上面会非常费事。为了更高效地完成该任务,首先使用层级树顶部的的过滤按钮隐藏骨骼和插槽,从而更容易选择多个附件。接下来,创建一个皮肤或确保皮肤处于活动状态,然后选择附件,再选择 新建... 皮肤占位符。这将使用相同的名称创建每个附件的皮肤占位符,并且附件被移到活动皮肤的皮肤占位符之下。

如果不再需要皮肤占位符,那么将附件移动到插槽并并删除皮肤占位符将会非常费事。为了更高效地完成该任务,首先选择皮肤占位符,然后单击层级树底部属性中的“删除”。在“删除”对话框中,选中 '保持当前附件`。这可以将当前皮肤的附件移动到插槽,再删除皮肤占位符。

重用动画

皮肤是对一起的附件进行分组的好方法。例如,男性和女性精灵可能使用不同的图像。您可以创建两个皮肤并在运行时选择使用哪个皮肤。

这是非常好的皮肤用法,而且 Spine 自带了这样实现的“goblins”示例项目,但只对附件分组不是什么难题。例如,运行时代码知道骨架上显示哪些配件,从而使它看起来像男性或女性精灵。

皮肤的真正强大之处来自于:当动画显示附件时,其实是对皮肤占位符创建关键帧,而不是具体的附件。显示的实际附件是当前活动皮肤的皮肤占位符的附件。如果不是这样,那么显示附件的动画就不能重用。

例如,精灵骨架需要有一个动画,通过在眼睛上显示 eyesClosed-maleeyesClosed-female 附件,使它眨眼睛。如果没有皮肤,就需要两个动画。使用皮肤后,只需要一个显示 eyesClosed 皮肤占位符的动画。

合并皮肤

有些项目需要复杂的附件配置。例如头像系统,需要混合和匹配许多不同的脸、身体和衣服。为了解决这个问题,按正常方式创建皮肤占位符,然后为每一个“项目”创建一个皮肤,对附件分组。 接下来,运行时代码通过编程创建皮肤并将每个“项目皮肤”的附件填充进去,以定义所需的附件配置。

例如,可以有定义了 torsosleeveLeftsleeveRight 皮肤占位符附件的 red shirt 皮肤。要配置带有红色衬衫项目的骨架,运行时代码将以编程方式创建一个皮肤并用来自 red shirt 皮肤(以及其他所需的项目皮肤)的所有附件填充它。

Spine 目前还不能实现编辑器中多个皮肤同时处于活跃状态。该功能已规划,但到目前为止,只能在运行时进行皮肤合并。

视频

下一节:事件 上一节:Paths