# 导出

<callout>也可以使用[命令行界面](/spine-command-line-interface)导出Spine项目文件。我们的[导出脚本](https://github.com/EsotericSoftware/spine-scripts/tree/master/export)可以一次自动导出多个项目。</callout>

Spine可以导出单张图片、图片序列、视频、JSON或二进制数据。

要打开导出对话框，请在主菜单中选择`导出`或按`ctrl+E`(Mac上为`cmd+E`)。

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

要重复上次导出，请按`ctrl+shift+E`(Mac上为`cmd+shift+E`)。

# 数据

Spine可以将骨架数据导出为JSON或二进制。然后，这些数据可以由我们的[Spine运行时](/spine-runtimes)加载，并像在Spine中一样显示在你的应用程序中。

<callout>由于这些原因，建议使用[命令行界面](/spine-command-line-interface)编写脚本自动导出你的所有Spine项目。</callout>

数据导出将Spine项目文件中的数据转换为Spine运行时可以读取的格式。用于导出的Spine编辑器的版本必须与Spine运行时的版本匹配。当Spine运行时更新到较新版本时，必须再次从Spine项目文件导出数据。因此，确保Spine项目文件的安全非常重要。有关更多信息，请参见[版本控制](/spine-versioning)。

数据导出会为项目中的每个骨架创建一个数据文件。不能只导出单个骨架、骨架的一部分或单个动画。

## JSON

<callout>如果数据文件的大小很重要，请使用二进制。<br><br>如果在运行时加载数据文件的速度很重要，请使用二进制。</callout>

JSON数据比二进制数据大得多，加载JSON数据要慢得多，因此通常首选在应用程序中使用二进制数据。但是，JSON是人类可读的，如果需要，很容易编写工具来解析和操作数据。

将数据导出到JSON，处理JSON数据，然后将数据[导入](/spine-import)回Spine项目是完全合理的。执行此操作时，请确保勾选了[非必要数据](#非必要数据)。

有关更多信息，请参见[JSON格式](/spine-json-format)。

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

!table 设置, 描述

!row 输出文件夹
将在此文件夹中为项目中的每个骨架创建一个JSON文件。文件的名称将使用骨架的名称。

!row 扩展名
JSON文件将使用此文件扩展名。

!row 格式
Spine可以选择以类似JSON的格式编写，这些格式稍小、更易于阅读和编辑。
* `JSON` 标准JSON。
* `JavaScript` 与JSON相似，但只有在必要时才会引用名称。数据是有效的JavaScript。
* `Minimal` 与JSON相似，但大部分名称和值都不带引号。此格式需要宽松的JSON解析器，如[libgdx](http://libgdx.com/)中的解析器。

!row 代码美化
选中后，JSON的格式将更便于人类阅读。这会使文件稍微大一些。

!row 版本
如果选择较旧的JSON版本，Spine会尝试写入与该较旧版本的Spine运行时兼容的数据。这在许多情况下是不可行的，数据会丢失并显示警告。

如果意外使用较新版本的Spine保存了项目，则导出到旧版本运行时仅作为恢复部分工作的最后手段。有关更多信息，请参见[恢复工作](/spine-versioning#从新版本恢复工作)。

!row 非必要数据
选中后，JSON数据中将包含运行时通常不需要的附加数据。这会使文件稍微大一些。如果将JSON数据导回Spine，则会使用这些数据。有关更多信息，请参见[导入](/spine-import#非必要数据)。

!row 动画清理
选中后，将对导出的数据执行动画[清理](/spine-keys#清理)。这不会修改项目文件。

!row 警告
选中后，Spine将在导出后显示任何警告消息。

!row 打包
选中后，将在数据导出时打包纹理图集。有关详细信息，请参见[导出数据时打包](/spine-texture-packer#导出数据时打包)。

!table

## 二进制

二进制数据比JSON小得多，在运行时解析非常快。然而，它不是人类可读的，而且也不容易编写工具来解析和操作数据。

有关更多信息，请参见[二进制格式](/spine-binary-format)。

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

!table 设置, 描述

!row 输出文件夹
将在此文件夹中为项目中的每个骨架创建一个二进制文件。文件的名称将使用骨架的名称。

!row 扩展名
二进制文件将使用此文件扩展名。

!row 非必要数据
选中后，二进制数据中将包含运行时通常不需要的附加数据。这会使文件稍微大一些。如果将二进制数据导回Spine，则会使用此数据。有关更多信息，请参见[导入](/spine-import#非必要数据)。

!row 动画清理
选中后，将对导出的数据执行动画[清理](/spine-keys#清理)。这不会修改项目文件。

!row 警告
选中后，Spine将在导出后显示任何警告消息。

!row 打包
选中后，将在数据导出时打包纹理图集。有关详细信息，请参见[导出数据时打包](/spine-texture-packer#导出数据时打包)。

!table

# 图片

## GIF

Spine可以导出GIF动画，从而可以轻松地在网上分享动画。GIF是一种只有256种颜色的图片格式，因此可能会出现一些质量损失。GIF也不支持半透明，因此像素只能是不透明或透明的。

Spine的GIF导出非常复杂，会尽可能生成质量最高的GIF，而不会优先考虑小尺寸文件。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 颜色
GIF中的最大颜色数量。

!row 颜色抖动
应用于GIF颜色的抖动量。抖动会分散颜色以防止渐变中的硬边。

!row Alpha阈值
低于此值的Alpha值将被视为0。如果您的插槽采用[加法混合](/spine-slots#混合)，则设置为 0。

!row Alpha抖动
应用于GIF透明度的抖动量。抖动可以分散透明度以防止硬边。可以选择分散类型和如何使用Alpha范围以获得最佳效果。如果您的插槽采用[加法混合](/spine-slots#混合)，则设置为 0。

!row 背景
要使用的背景色。

!row 透明
选中后，完全透明的像素将是透明的，而不是背景色。如果取消选中，则指定的颜色将用于GIF的背景。

!row 哑光
半透明像素使用哑光颜色使其不透明。

!row 质量
质量越高，颜色越好，但导出时间越长。

!row FPS
GIF动画每秒的帧数。50通常提供[最佳结果](/support#Why-does-my-exported-GIF-play-back-at-a-different-speed-than-in-Spine)。

!row 永远
选中后，动画将连续循环。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!table

## PNG

Spine可以导出PNG图片文件。PNG是一种支持透明度的无损图片格式，因此不会出现质量损失。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 背景
要使用的背景色。

!row 压缩
压缩程度越高，文件越小，但导出时间越长。

!row FPS
PNG序列每秒的帧数。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!row 打包
选中后，导出的图片将打包到纹理图集中。这很方便，但单独运行纹理打包器可以更好地控制打包。有关更多信息，请参见[纹理打包](/spine-texture-packer#打包)。

!table

## APNG

Spine可以导出APNG图片文件。APNG是一种支持透明度的无损动画图片格式，因此不会出现质量损失。大多数现代浏览器都支持它，它的质量比GIF高得多，但文件通常更大。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 背景
要使用的背景色。

!row 透明
选中后，APNG的背景将设置为透明。

!row 压缩
压缩程度越高，文件越小，但导出时间越长。

!row FPS
PNG序列每秒的帧数。

!row 永远
选中后，动画将连续循环。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!table

## PSD

<callout>将动画中间的当前姿势导出为PSD中的图层非常有用，这样你可以更轻松地重新绘制该姿势的附件图片。</callout>

Spine可以导出Adobe Photoshop PSD图片文件。将在PSD文件内为每个动画帧创建一个图层。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 背景
要使用的背景色。

!row 透明
选中后，PSD内图片的背景将设置为透明。

!row 编码
用于创建PSD的压缩类型。
* `RAW` 一种未压缩格式。编码速度很快，但导出的PSD非常大。
* `RLE`  编码速度快，导出的PSD小。
* `ZLIB` 编码速度慢，导出的PSD非常小。

!row FPS
PSD图片序列的每秒帧数。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!table

## JPEG

Spine可以导出JPEG图片。JPEG是一种不支持透明度的有损图片格式，因此根据指定的质量，可能会出现一些质量损失。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 背景
要使用的背景色。

!row 质量
质量越高，图片越好，但文件越大。

!row FPS
JPEG序列每秒的帧数。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!table

# 视频

## AVI

<callout>请注意，不同的分辨率和编码对视频播放的支持有所不同。某些视频播放软件无法播放某些视频文件，而其他软件可以正常播放。</callout>

Spine可以导出AVI视频文件。AVI文件的RAW和PNG编码支持透明度，这可以方便地使用单个文件将Spine动画引入到其他软件中。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 编码
用于编码AVI视频的编解码器。

!row 背景
要使用的背景色。

!row 压缩
压缩程度越高，文件越小，但导出时间越长。

!row 质量
对于基于JPEG的编解码器，质量越高产生的图片越好，但文件也越大。

!row FPS
AVI视频的每秒帧数。

!row 永远
选中后，动画将连续循环。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!table

## MOV

<callout>请注意，不同的分辨率和编码对视频播放的支持有所不同。某些视频播放软件无法播放某些视频文件，而其他软件可以正常播放。</callout>

Spine可以导出QuickTime MOV视频文件。MOV文件的RAW和PNG编码支持透明度，这可以方便地使用单个文件将Spine动画引入到其他软件中。

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

请参见[常规设置](#常规设置)。

!table 设置, 描述

!row 编码
用于编码MOV视频的编解码器。

!row 背景
要使用的背景色。

!row 透明
选中后，MOV视频的背景将设置为透明。

!row 压缩
压缩程度越高，文件越小，但导出时间越长。

!row 质量
对于基于JPEG的编码，质量越高产生的图片质量越好，但文件也越大。


!row FPS
MOV视频的每秒帧数。

!row 永远
选中后，动画将连续循环。

!row 包含最后一帧
取消选中时，将省略每个动画的最后一帧。取消选中此选项对于第一帧和最后一帧相同的循环动画非常有用，选中此设置时，同一帧将导出两次。

!table

# 常规设置

大多数图片和视频导出都有这些设置。有关其他导出设置，请参见特定导出部分。

!table 设置, 描述

!row 默认值
将所有导出设置重置为默认值。

!row 预览
打开导出对话框的预览面板。

!row 导出类型
将导出动画或当前骨架姿势。

!row 骨架
所有骨架在同一导出、单独导出中一起渲染，或者仅导出选定的骨架。

!row 动画
将导出当前动画、所有动画或所选动画。

!row 皮肤
将导出当前可见的皮肤、所有皮肤或所有皮肤和没有任何皮肤处于活动状态的骨架。

!row 输出类型
创建单个文件、每帧一个文件、每个动画一个文件、有多个层的单个文件或有一个帧的单个文件。

!row 输出文件
要写入的文件(导出单个文件时)。

!row 输出文件夹
将写入文件的文件夹，包括每个文件的文件名开头(导出多个文件时)。

!row 输出前缀
将写入文件的文件夹(导出多个文件时)。

!row 最大边界
选中后，每个导出的文件都将具有相同的尺寸。

!row 重复动画
播放每个动画的次数。

!row 播放后暂停
播放每个动画后暂停的秒数。

!row 骨骼
选中后，将渲染骨架骨骼。

!row 图片
选中后，将渲染骨架网格和区域附件。

!row 其他
选中后，将渲染其他骨架附件。

!row 平滑
控制应用于图片的平滑度。平滑是一种在放大时模糊图片以隐藏像素结构的方法，意味着图片显示大于其实际大小。

* 0禁用平滑，使用最近邻过滤。这对于像素艺术非常有用。
* 1-10使用10%到100%之间的线性过滤。
* 11使用双三次过滤。这可能比线性过滤更锐利，并稍微更好地保留细节。

当平滑大于零时，导出会受到[Spine设置](/spine-settings#平滑)的`视口`部分中`各向异性过滤`复选框的影响。启用各向异性过滤可提高导出质量。

!row 多重采样抗锯齿
多重采样抗锯齿(MSAA)的采样数。请参见[外壳边缘](/spine-meshes#外壳边缘)。

!row 裁剪
选中后，将导出指定的边界，而不使用骨架的边界。前两个数字是X和Y世界坐标。接下来的两个数字是要导出的区域的宽度和高度。启用后，可以通过拖动预览面板中的橙色角来调整边界。

!row 大小
要执行的重新调整大小的类型。

!row 比例
图片的相对比例(以百分比表示)。

!row 适合
选中后，输出图片将适合指定的像素值。

!row 放大
如果选中此选项，并且图片小于指定的大小，则图片将按比例拉伸，直到其中一边与指定的大小匹配。

!row 填充
选中后，将向图片添加额外空间以匹配指定的大小。

!row 范围
选中后，将仅导出指定范围的帧。

!table

# 预览面板

预览面板显示导出的预览。

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

底部的帧滑块和箭头可选择要预览的帧。这些帧可能与Spine编辑器中时间轴上显示的帧不对应，因为它们取决于导出设置中指定的FPS。

白色方框显示导出的边界。当选中`裁剪`时，边界有橙色的角，可以拖动，并且可以拖动框来设置裁剪的边界。

帧的尺寸以像素为单位显示，并显示用于导出的估计文件大小。

可以拖动预览面板的边缘来调整预览区域的大小。

# 禁用导出

骨架、动画、附件和皮肤都有一个`导出`属性，可以取消选中该属性以将其从导出中排除。例如，在将骨架或附件用作背景或动画参考时这非常有用。

要这样做，请在层级树中选择骨架、皮肤或附件，然后取消选中层级树底部属性中的`导出`。

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

如果未导出一个附件，但在动画中设置了它的关键帧，则不会导出该关键帧。如果未导出一个网格，也不会导出任何与它关联的网格。

[下一节: 纹理打包](/spine-texture-packer)
[上一节: 版本控制](/spine-versioning)
[Spine用户指南: 目录]