导入 PSD
Spine 可以导入 Adobe Photoshop 或其他能生成 PSD 文件的图形软件输出的 Adobe Photoshop PSD 文件. PSD 文件中的图层将作为附件导入到 Spine 项目中. 此外, 还可以通过在图层名称中添加标注来自动创建皮肤、占位符、槽位等元素.
PSD 导入功能提供了与 PhotoshopToSpine 脚本 类似的功能, 但速度更快, 且无需持有 Adobe Photoshop.
下面列出了可输出 PSD 文件的软件(典型主流软件):
- Affinity
- Clip Studio Paint
- GIMP
- Krita
- Paint Tool SAI
- Photopea
- Procreate
使用方法
要打开 PSD 导入对话框, 请从主菜单中选择 Import PSD.

Import PSD 对话框有三个部分: Input PSD File, Output PNG File 和 Import Data.

导入 PSD 文件
选择 PSD 文件路径并设置导入选项. 可用选项包括:
PSD File: 要导入的 PSD 文件路径.Scale: 在写入图片文件之前对图层进行缩放. 当 PSD 分辨率较高但希望在 Spine 中使用给定尺寸的图片时, 此选项非常有用.Padding: 在每张图片周围添加的透明像素数量. 这可以避免图片边缘不透明像素产生锯齿伪影.Trim whitespace: 勾选时, 去除每张图片边缘周围的空白; 取消勾选时, 所有图片都使用 PSD 画布的大小.Ignore hidden layers: 不输出隐藏的组和图层.
导出 PNG 文件
指定从 PSD 文件提取的图片应输出到哪个文件夹. 可用导出选项包括:
Folder: 保存 PNG 图片的文件夹.Overwrite confirmation: 启用后, 输出的图片会覆盖现有文件, 此时会弹出确认对话框.Images path: 下拉框允许你选择:- 项目中的 skeleton. 路径将被置为指定 skeleton 的图片文件夹.
PSD Path: 路径设置为包含 PSD 文件的文件夹 +/images.
覆盖图片时请务必小心. 一旦图片文件被覆盖, 将无法恢复.
导入数据
此部分与 导入数据 对话框的功能相同. 请参阅该文档以了解其行为.
PSD 设置
PSD 中的组和图层名称可以控制 Spine 输出图片文件的方式.
原点
PSD 中参考线的位置决定了 Spine 中的 0,0 原点. 第一条水平参考线决定 y, 第一条垂直参考线决定 x. 如果没有水平和/或垂直参考线, 则使用宽度的一半和高度的一半. Spine 会忽略每条轴上第一条之后的参考线, 因此可以添加参考线而不影响导入过程. 您也可以通过在图层上使用 [origin] 标记来控制原点, 如下节所述.
编辑器中的原点可能位于像素的边缘或像素的中心, 具体取决于参考线的位置(可以放置在像素之间), 或者如果没有参考线, 则取决于画布的宽度/高度(奇数尺寸会导致编辑器原点在像素中心). 建议将原点放置在像素边缘, 以避免产生模糊的伪影.
标记
在组或图层名称中使用标记(Tags)可以告诉 Spine 如何处理这些图层. 标记要用方括号括起来, 例如 [tag:value]. 标记是必需的, 而 :value 取决于标记, 可能是必需的或可选的. 如果省略 :value, 则使用图层或组的名称作为值. 标记可以插入到图层名称的任何位置, head [slot] 或 [slot] head 都行. 某些标记只能用于图层, 而有的只能用于组, 但大多数标记两者都兼容.
组和图层兼容标记
- 新骨骼下的
[bone]或[bone:name]图层、槽位和其他骨骼. 新骨骼将被创建在第一个可见图层的中心. 带有骨骼标记的组可以嵌套. 若骨骼已存在, 则不会更新骨骼位置. [slot]或[slot:name]图层会被置入槽位.- 皮肤占位符中的
[skin]或[skin:name]图层. 带有 skin 标记的图层将以图片形式保存到磁盘中, 以皮肤名称作为子文件夹名称. [scale:number]缩放图层. 其附件会反向缩放, 使其在 Spine 中保持一致的显示效果.[rotate:degrees]旋转图层. 其附件会反向旋转, 使其在 Spine 中保持一致的显示效果. 旋转图片可以优化 atlas 排列.[pad:number]为图层或组的子级添加number数量的间距. 用于添加与间距选项设置不同的间距.[folder]或[folder:name]图层将被输出到磁盘上的子文件夹中. 带有 folder 标记的组可以嵌套.[overlay]图层用作所有下层图层的裁剪蒙版.[trim]或[trim:true]或[trim:ws]或[trim:false]或[trim:canvas]或[trim:mask]如果:- 值为空、
true或ws: 强制去除图层的空白. - 值为
false或canvas: 强制图层使用画布大小. - 值为
mask: 强制根据图层蒙版的大小裁剪图层. 在使用Remove whitespace选项时就能控制图片的大小. 当网格需要在边缘周围留出空白以便在 Spine 中插入顶点时, 图层蒙版会很有用.
- 值为空、
[ignore]该图层、组和子组将被忽略.[!bones]表示[bones]标记将忽略此图层或组.[!slots]表示[slots]标记将忽略此图层或组.[!name]表示[name:pattern]标记将忽略此图层或组.[!path]表示[path:pattern]标记将忽略此图层或组.[!bone]表示[bone:pattern]标记将忽略此图层或组.[!slot]表示[slot:pattern]标记将忽略此图层或组.
仅图层可用的标记
这些标记只能应用于具有 [merge] 标记的图层或组.
[mesh]或[mesh:name]表示图层是网格, 而当指定name时是链接网格(linked mesh).name必须与已有的网格名称匹配. 当使用[mesh:name]时, 链接网格将使用源网格的大小.[path:name]指定图层在磁盘上的图片文件名, 当需要与附件不同文件名时使用.[origin]图层的中心可指定 Spine 编辑器的原点. 该图层的图片不会被输出.
仅组可用的标记
这些标记只能应用于组.
[merge]该组中的图层将合并为单个图层, 输出单张图片.[bones]为所有直接子项添加[bone]标记.[slots]为所有直接子项添加[slot]标记.
模式是包含星号 (*) 的字符串. 该模式用于所有子图层, 星号被替换为子图层中的名称或值. 例如: [name:prefix*suffix]
当值为模式时, 这些标记具有不同的行为:
[name:pattern]为组中的图层名称添加前缀或后缀. 名称转换在应用以下其他模式标记之前进行.[path:pattern]为组中的图层路径添加前缀或后缀. 即使图层没有[path]标记, 也会应用图层路径模式.[bone:pattern]为组中的图层骨骼添加前缀或后缀.[slot:pattern]为组中的图层槽位添加前缀或后缀.
附件属性
图层顺序、标记值和图层名称决定了 Spine 如何创建槽位、附件、占位符、皮肤和图片路径. 当 PSD 文件包含许多组和图层并使用大量标记时, 了解 Spine 如何解释它们会对实现你的预期效果有所帮助.
Spine 通过从最外层的祖先组(ancestor)遍历到各图层来获取图层的层次结构. 如果图层或组同时包含 [skin] 标记和 [folder] 标记, 则优先使用 [skin] 标记.
Spine 按以下方式为图层分配属性:
-
槽位: 层次结构中最近的[slot]标记的值(如果存在). 否则为图层的名称. 在槽位名称中使用/可以创建槽位文件夹. -
皮肤: 从层次结构中选择[skin]标记的值. 层次结构中最近的[skin]标记决定皮肤的名称, 其余[skin]标记决定输出皮肤图片的文件夹. -
占位符: 组层次结构中[folder]标记的值 + 图层名称. -
附件: 组层次结构中[folder]和[skin]元素的值 + 图层名称. -
附件图片路径: 组层次结构中[folder]标记的值 + 图层名称. 如果图层有[path]标记, 则使用它而不是图层名称.
斜杠
以 / 开头命名图层或槽位、皮肤、文件夹或路径标记值, 可以防止该值受到父组的影响. 例如, [path:/name] 不会使用父组中的 [folder] 标记.
如果斜杠在名称或标记值内部, 则表示子文件夹. 例如, [path:subfolder/name] 会将图片输出到子文件夹中的 subfolder/name.png.
混合模式
Spine 可以识别组或图层上的几种 Photoshop 混合模式, 使 Spine 中的槽位也采用正确的混合模式.
Normal对应于 Spine 中的Normal混合模式.Multiply对应于 Spine 中的Multiply混合模式.Screen对应于 Spine 中的Screen混合模式.Linear Dodge对应于 Spine 中的Additive混合模式.
绘制顺序
导入 PSD 文件时, Spine 会尝试使绘制顺序反映 PSD 中的图层顺序. 然而, 在某些情况下这是不可能的. 例如:
A [slot:slot-folder-1/A]B [slot:slot-folder-2/B]C [slot:slot-folder-1/C]
slot-folder-1 不能同时在 slot-folder-2 之前和之后. 在这种情况下, 文件夹位置由该文件夹中最后一个找到的槽位决定.
限制
Spine 只能导入每个图层的像素数据. PSD 文件中使用了 Photoshop 渲染的非像素数据的 PSD 功能包括:
- 图层样式
- 渐变图层蒙版
- 调整图层和填充图层(当未保存为像素数据时)
- 图层的百分比填充
如果使用了这些功能, PSD 导入功能需要使用其他方法来获取像素数据:
- 将不支持的图层转换为智能对象. 然后 Photoshop 就会在 PSD 文件中保存结果图层的像素数据.
- 改用 PhotoshopToSpine 脚本 或 spine-script 仓库中的其他脚本.
- 使用 SpineCompatiblePsd 脚本 创建兼容 Spine 的 PSD.