皮肤
皮肤可使用不同的附件集,从而实现骨架动画的重复利用。皮肤可以用于简单的服装切换,也可以用来将许多不同的部件组合成完整的角色。
皮肤由仅当皮肤可见时才处于活动状态的附件、骨骼和约束组成。使用皮肤视图,骨架可以同时显示多个皮肤。
皮肤的关键是“皮肤占位符”,它是一种附件,与任何其他附件一样位于层级树中的插槽下。但是,它只是将实际使用的附件的占位符,来自当前可见的皮肤。
动画可以像显示和隐藏附件一样显示和隐藏皮肤占位符,方法是设置插槽附件的关键帧。这样,动画就不再局限于显示和隐藏特定附件。而可以显示和隐藏皮肤占位符,实际显示的附件则来自可见的皮肤,从而使动画能够与任何皮肤一起使用。
设置
设置皮肤包括创建皮肤和皮肤占位符,然后使用该皮肤的附件填充皮肤占位符。也可以将骨骼和约束添加到皮肤。
选择层级树中的皮肤
节点,点击新建...
皮肤
可创建皮肤。
皮肤占位符
在命名皮肤占位符时,名称不需要指明它用于哪个皮肤。而应该根据附件代表的名称对其进行命名。
例如,如果你有一个red
和一个blue
皮肤,则head
将是一个很好的头部皮肤占位符名称,而不是red head
或blue head
。
皮肤占位符是通过在层级树中选择骨骼、插槽或附件并单击新建...
皮肤占位符
来创建的。选择附件后,如果骨骼没有活动皮肤,则此选项将被禁用。
已选附件
在创建新皮肤占位符之前,可以选择多个附件。将为每个对象创建一个皮肤占位符。
如果在创建新的皮肤占位符时选择了附件,该附件将被移动到新的皮肤占位符下的活动皮肤。但是,首先会显示一个提供了更多选项的对话框。某些选项将只对网格附件或有关键帧的附件显示。
为每个皮肤复制附件
:为每个皮肤复制附件。当添加与大多数或所有皮肤相同的附件时,此选项非常有用。链接网格
:不是复制网格,而是为其他皮肤创建链接网格。继承变形
:链接的网格将共享源网格的变形关键帧。
复制关键帧
:每个动画中每个复制附件的关键帧也会被复制。重命名附件
:在每个复制的附件前加上皮肤名称。例如,head
,因为red/head
代表red
皮肤。在将每个皮肤的图片组织到子文件夹中时很有用。
属性
导出
如果不选中导出
,则不会导出皮肤,即皮肤及其附件不会在导出的JSON或二进制中,也不会出现在图片或视频导出中。
如果网格附件未导出,则也不会导出其链接网格。
如果附件未导出并且在动画中设置了关键帧,则不会导出关键帧。
颜色
更改皮肤的颜色可以帮助区分层级树中的皮肤,从而便于识别。皮肤颜色在运行时不起作用,仅用于Spine编辑器中的可视化。
添加到皮肤
点击添加到皮肤
按钮将进入添加到皮肤模式,可以给皮肤添加皮肤骨骼和皮肤约束。再次点击添加到皮肤
按钮,或者按空格键
或escape键
可以随时退出。
文件夹
可以将皮肤组织到文件夹中。要创建文件夹,请选择皮肤,然后单击新建...
文件夹
。通过拖动皮肤,可以在文件夹之间移动皮肤。
在导出的骨架数据中,文件夹名称优先于皮肤名称,以创建Spine运行时使用的最终名称。例如,如果文件夹hair
有一个子文件夹long
,其下有一个皮肤brown
,则运行时的皮肤名称为hair/long/brown
。
活动皮肤
层级树中每个皮肤旁边的圆点可控制哪个皮肤是“活动的”。
层级树中的皮肤占位符显示当前活动皮肤的附件。
活动皮肤是正在编辑的皮肤,并且在任何给定时间只能有一个皮肤处于活动状态。活动皮肤始终可见。
皮肤视图允许通过固定多个皮肤同时显示它们,但在任何给定时间只能有一个皮肤处于活动状态。在皮肤视图中选择一个皮肤将使其成为活动皮肤。
皮肤附件
显示所有皮肤附件可用于一次查看所有皮肤的全部皮肤附件。
对于每个皮肤占位符,皮肤可以有一个附件(或无附件)。若要为活动皮肤设置皮肤占位符的附件,请首先确保皮肤处于活动状态,然后将附件拖动到皮肤占位符或使用设置父级。活动皮肤的皮肤占位符以前的任何附件都将被删除。
如果将附件拖到皮肤占位符下的一个现有附件,而不是拖到皮肤占位符,则现有附件的变换将复制到新附件。
要清除皮肤占位符的附件,请将其删除或拖动到其他位置。
皮肤骨骼
可以将一个骨骼添加到一个或多个皮肤,以便该骨骼仅在其所在的皮肤处于活动状态时才处于活动状态。这使骨架可以有仅用于特定皮肤的骨骼。不活动的骨骼不会影响运行时性能。
要将骨骼添加到活动皮肤中,请选择该骨骼,然后单击层级树属性中的添加到皮肤
。还可以在层级树中拖动骨骼并将其放在皮肤上。或者,选择一个皮肤并单击层级树属性中的添加到皮肤
,然后单击任意数量的骨骼或约束以将其全部添加到皮肤中。
如果其他皮肤中的附件权重或约束需要该骨骼,则骨骼将自动添加到这些其他皮肤。发生这种情况时,会显示一条消息并有一个打开spine.log的按钮,其中包含有关更改的详细信息。可以使用撤消恢复更改,但这样做会导致显示警告。
皮肤骨骼在层级树中骨骼的右侧有一个皮肤图标。单击它将选择其所有皮肤下的骨骼。这可以方便查找皮肤或从所有皮肤中删除骨骼。
要从皮肤中移除骨骼,请在层级树中选择皮肤下的骨骼,然后单击删除按钮(删除按钮通常位于此位置)。
皮肤骨骼在Spine Essential版中不可用。
根据层级树视图的设置,摄影表和曲线图中的皮肤骨骼行可能不可见。
皮肤约束
隐藏皮肤骨骼和约束可隐藏层级树中的非活动约束。
可以将约束添加到一个或多个皮肤,以便仅当约束所在的皮肤处于活动状态时,该约束才处于活动状态。这使骨架可以有仅用于特定皮肤的约束。非活动的约束不会影响运行时性能。
要给活动皮肤添加约束,请选择该约束,然后单击层级树属性中的添加到皮肤
。还可以在层级树中拖动约束并将其放到皮肤上。或者,选择一个皮肤并单击层级树属性中的添加到皮肤
,然后单击任意数量的约束或骨骼以将其全部添加到皮肤中。
皮肤约束在层级树中约束的右侧有一个皮肤图标。单击它将选择其所有皮肤下的约束。这可方便查找皮肤或从所有皮肤中删除约束。
要从皮肤中移除约束,请选择层级树中皮肤下的约束,然后单击删除按钮(删除按钮通常位于此位置)。
受约束的骨骼
受约束的骨骼是约束将修改的骨骼。当某些受约束的骨骼因为在皮肤中而处于非活动状态时,约束仍会起作用,只是不会修改不活动的骨骼。
如果所有受约束的骨骼都在皮肤中,则约束也应该在这些皮肤中,因为当所有受约束的骨骼都未处于活动状态时,约束没有任何作用。约束将显示一个警告,直到它被添加到这些皮肤中的至少一个。
皮肤约束示例
皮肤可以使用约束来移动骨骼,以便骨架及其所有动画可以重复用于不同比例的角色。有关更多信息,请参阅不同比例的皮肤约束。
警告
在导出数据以用于Spine运行时之前,应修复所有警告。
当皮肤配置错误时,骨骼、附件和约束的层级树图标上会出现警告。
这可能是因为骨架的多个部分依赖于其他部分。当某些部分添加到皮肤而该皮肤不可见时,这些部分将不可用。这可能会导致骨骼变换无效、阻止渲染附件或阻止应用约束。
骨骼警告
如果骨骼与父骨骼的皮肤不同,则会在骨骼的层级树图标上显示警告。发生这种情况时,骨骼和任何附件将不会显示在视口中。
当父骨骼处于非活动状态时,子骨骼的变换无效。任何依赖子骨骼变换的内容(如使用权重的附件)也将无效。
若要修复骨骼警告,请将子骨骼添加到与其父骨骼相同的皮肤。
取消选中隐藏视口皮肤骨骼时,无论哪些皮肤可见,所有骨骼都处于活动状态。取消选中此设置时,在运行时无法正确渲染的骨骼警告可能会正确渲染。
附件警告
如果出现以下情况,附件层级树图标上将显示警告:
加权到非活动骨骼的顶点无效,并设置为世界0,0。例如,网格的无效顶点显示在世界0,0处。如果所有顶点都无效,则整个网格将位于世界0,0,并且根本看不到。
要修复附件警告,请先修复附件权重使用的骨骼的任何骨骼警告。然后,如果附件位于皮肤中,并且任何这些骨骼也位于皮肤中,则将皮肤骨骼添加到附件的皮肤中。
约束警告
如果出现以下情况,约束的层级树图标上将显示警告:
- 约束的目标骨骼在皮肤中,但约束不在该皮肤中,或者
- 约束的所有受约束骨骼都在皮肤中,但约束不在这些皮肤中。
当约束出现警告时,意味着它要么根本不能应用,要么只能偶尔应用,具体取决于可见的皮肤。
若要修复约束警告,请将约束添加到与目标骨骼相同的皮肤。然后,如果所有受约束的骨骼都在皮肤中,请确保约束至少在其中一个皮肤上。
复制皮肤
复制皮肤时,会显示一个有更多选项的对话框。某些选项将只对网格附件或有关键帧的附件显示。
链接网格
:不是为新的皮肤复制网格,而是创建链接网格。继承变形
:链接的网格将共享源网格的变形关键帧。
复制关键帧
:每个动画中各复制附件的关键帧也会被复制。重命名附件
:在每个复制的附件前加上皮肤名称。例如,head
,因为red/head
代表red
皮肤。当每个皮肤的图片被组织到子文件夹中时很有用。
皮肤工作流程
皮肤是强大的,有很多方法可以利用它们。在使用皮肤时,请记住,使用正确的工作流程可以节省大量时间。
第一个皮肤
如果所有附件都是在没有使用皮肤占位符的情况下创建的,则创建皮肤占位符并逐个移动现有附件将非常繁琐。要更有效地执行此操作,请首先使用层级树筛选器隐藏骨骼和插槽,以便只显示附件。这样就可以方便选择许多附件。接下来,创建皮肤或确保皮肤为活动状态,然后选择你的附件并选择新建...
皮肤占位符
。这将为使用相同名称的每个附件创建一个皮肤占位符,并且附件将移动到活动皮肤的皮肤占位符下。
如果需要,可以使用查找和替换来修复附件名称。例如,添加皮肤名称作为子文件夹前缀,如skinName/imageName
。
相似皮肤
当新皮肤与现有皮肤相似时,复制现有皮肤会很有帮助,这也会复制其所有附件,然后修改新皮肤。
如果将图片或附件拖动到新皮肤的皮肤占位符,则将它们放到现有附件上会复制其变形,而将它们放到皮肤占位符上则不会。
查找和替换可用于快速重命名新皮肤中的所有附件。如果你的图片大小相同,并且使用命名约定(例如skinName/imageName
),则可能只需查找和替换即可完全设置新的皮肤。
程序化皮肤
如果你发现自己用“查找和替换”创建了大量皮肤,另一种解决方案可以让你受益。如果可以使用简单的模式或命名约定派生出Spine项目,那么就没有必要在Spine项目中繁琐地创建所有内容。
如果你的皮肤仅在附件名称上有所不同,请与你的程序员一起创建运行时解决方案。一种方法是在Spine编辑器中仅创建单个皮肤。然后,在运行时,编写代码复制皮肤并根据需要更改名称。
移除皮肤占位符
如果不再需要皮肤占位符,则将附件移动到插槽并删除每个皮肤占位符将非常繁琐。相反,请选择皮肤占位符,然后单击层级树属性中的删除。在删除对话框上,选中保留当前附件
。这将在删除皮肤占位符之前将活动皮肤的附件移动到插槽。任何其他皮肤中的附件都将被删除。
混合和搭配
简单的项目可以使用一个皮肤装配整个骨架。更复杂的项目可能会使用皮肤对附件进行分组,其中每个皮肤都是一个单独的项目或身体部位,然后同时显示多个皮肤以装备骨架。我们的混合和搭配示例项目就使用这种方法。
在Spine编辑器中,皮肤视图允许同时看到多个皮肤。在运行时,这是通过创建皮肤并向其添加多个皮肤来完成的。
视频