导入 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 FileImport 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] 如果:
    • 值为空、truews: 强制去除图层的空白.
    • 值为 falsecanvas: 强制图层使用画布大小.
    • 值为 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 导入功能需要使用其他方法来获取像素数据:

下一节: 命令行界面 上一节: 导入