命令行界面

我们的导出脚本可以一次自动导出多个项目。

Spine的命令行界面(CLI)允许从命令行运行Spine来导出、导入、打包纹理图集等。作为软件构建过程的一部分,这最常用于自动导出所有项目和打包纹理图集。

以这种方式运行时,Spine会启动,执行一个或多个导出或纹理打包,然后退出。

大多数CLI参数都可以无头使用,即可以在未配置显示用户界面的计算机上使用。但是,要导出图片或视频,需要OS窗口系统和OpenGL。

使用

使用--help参数运行Spine时,会显示CLI参数的说明。另外,当Spine使用--advanced参数运行时,会显示高级参数。

编辑器

Spine [-hvlft] [-x <host:port>] [-u <version>] [<path>]

-h, --help      打印基本CLI帮助并退出。
--advanced      打印高级CLI帮助并退出。
-v, --version   打印版本信息并退出。
-l, --logout    注销,删除激活码。
-u, --update    要加载的Spine更新的版本号。
-f, --force     强制下载Spine更新。
-x, --proxy     检查和下载更新时使用的代理服务器。
-t, --notimeout 在检查和下载更新时禁用超时。
project.spine   要打开的Spine项目文件的路径。

要获取最新的补丁版本,与-u--update一起使用的版本号的补丁部分可以使用xx。例如,要获取最新的4.0版本:

Spine --update 4.0.xx

如果你想得到最新的稳定版本,你可以指定latestlateststablestable为版本号。如果你想获得最新的测试版本,你可以指定latestbetabeta

导出

Spine [-i <path>] [-m] [-o <path>] -e <path>
Spine [-i <path>] [-m] [-o <path>] -e json[+pack]|binary[+pack]

导出JSON、二进制、图片或视频:
-i, --input   文件夹、项目或数据文件的路径。覆盖导出JSON。
-m, --clean   在导出之前执行动画清理。
-o, --output  写入导出文件的路径。覆盖导出JSON。
-e, --export  导出设置JSON文件的路径。

导出设置JSON文件是使用Spine点击导出对话框底部的保存按钮创建的。

大多数执行导出的生成脚本都希望使用--update指定Spine编辑器版本。

CLI上指定的输入和输出路径是可选的。如果指定,它们将覆盖在导出设置JSON文件中指定的任何输入或输出路径。

输入路径是项目、JSON或二进制文件的路径。输出路径可以是文件或文件夹,具体取决于导出设置。

参数--clean-all会清理所有导出,所以不需要为每个导出都指定--clean

如果指定了--clean参数,则会在导出前执行动画清理。这不会修改项目文件。

如果指定了jsonbinary而不是导出设置JSON文件的路径,则使用默认设置执行JSON或二进制导出。如果指定了json+packbinary+pack,则也会使用默认设置进行纹理打包

导入

Spine -i <path> [-s <scale>] -o <path> -r [<name>]

将JSON、二进制或项目的骨架导入到另一个项目中:
-i, --input   要导入的文件夹、项目或数据文件的路径。
-o, --output  要导入到的项目文件的路径。如果不存在,则创建。
-s, --scale   缩放要导入的项目。
-r, --import  执行骨架导入。骨架名称可以省略。

输入路径是一个项目、JSON或二进制文件。也可以是包含.spine.json.skel文件的文件夹。

输出路径是一个项目文件。

如果指定了--scale,则在导入项目骨架之前会对其进行缩放

如果将项目导入到另一个项目中,则会导入所有骨架。如果使用--import指定了骨架名称,并且只导入了一个骨架,则该骨架将被重命名。如果导入多个骨架,骨架名称将被忽略,骨架将保留其现有名称。

如果将JSON或二进制文件导入到项目中,并且使用--import指定了骨架名称,则骨架将被重命名。如果未指定骨架名称,则使用不带扩展名的JSON或二进制文件名命名骨架。

清理

清理: Spine -i <path> -m

动画清理:
-i, --input   项目文件或文件夹的路径。
-m, --clean   执行动画清理并保存项目。

对项目中的所有动画执行动画清理,项目文件随更改一起保存。

输入路径为项目文件或包含.spine文件的文件夹。

打包

Spine -i <path> [-j <path>]... -o <path> -p <name>
Spine -i <path> [-j <path>]... -o <path> [-n <name>] -p <path>

纹理图集打包:
-i, --input   要打包的图片文件夹的路径。
-o, --output  写入纹理图集和PNG文件的路径。
-j, --project 确定网格使用哪些图片的项目路径。
-n, --name    纹理图集名称,图集和PNG文件的前缀。
-p, --pack    纹理图集名称或打包设置JSON文件的路径。

输入和输出路径是文件夹路径。

--pack-p参数为:

  • 写入输出文件时使用的纹理图集名称。在这种情况下,将使用默认纹理打包设置,但可以通过输入文件夹中的pack.json文件进行自定义。
  • 打包设置JSON文件的路径,该文件是使用Spine点击纹理打包器设置对话框底部的保存按钮创建的。 如果未指定名称,则不带文件扩展名的打包设置JSON文件名将用作纹理图集名称。

可以使用--project指定一个或多个项目文件。启用去除空白后,纹理打包器将在这些项目中查找每个图片文件。任何找到的使用图片文件的网格都会被考虑在内,这样去除空白就不会删除网格中的部分图片。当指定--project-j时,将忽略currentProject纹理打包器设置,如同设置为true

解包

Spine -i <path> -o <path> -c <path>

纹理图集解包:
-i, --input 图集图片文件夹的路径。
-o, --output 写入解包图片文件的路径。
-c, --unpack 纹理图集文件的路径。

信息

Spine -i <path>

项目信息:
-i, --input   文件夹、项目或数据文件的路径。

信息为每个项目文件的输出信息。这对于了解保存项目时使用的Spine版本、项目中有多少动画以及其他信息非常有用。

输入路径为包含.spine文件、项目文件、JSON或二进制数据文件的文件夹。

高级

高级:
-Xmx2048m          设置最大内存使用量(以MB为单位,默认值2048)。
--trace            启用额外日志记录和诊断检查。
--auto-start       自动启动。
--no-auto-start    不自动启动。
--ping             测试每个服务器的延迟(否则每4天执行一次)。
--server x         设置首选服务器,而不考虑ping(如jp/us/eu)。
--disable-audio    禁用所有音频支持。
--pretty-settings  更美观地格式化设置文件。
--keys             默认启用热键弹窗。
--hide-license     不在启动程序上显示姓名和电子邮件(如在串流时)。
--ui-scale x       设置界面比例(如200)。
--icc-profile x    设置用于色彩管理的ICC配置文件的路径。
--intro            显示Esoteric Software标志简介。
--clean-all        为所有导出执行动画清理。
--mesh-debug       在网格上显示调试信息。
--export-selection 在图片和视频导出中显示编辑器选择。
--ignore-unknown   如果无法识别CLI参数,不显示错误。

示例

Spine --export /path/to/export.json
Spine --export "/path/with spaces/to/export.json"
Spine --input /path/to/project.spine --output /path/to/output/
      --export /path/to/export.json
Spine -i /path/to/project.spine -o /path/to/output/ -e /path/to/export.json
Spine -i /path/to/project.spine -o /path/to/output/ -e binary+pack
Spine -e /path/to/export1.json -e /path/to/export2.json
Spine -i /path/to/images/ -o /path/to/output/ --pack /path/to/pack.json
Spine -i /path/to/images/ -o /path/to/output/ -n name -p /path/to/pack.json
Spine -i /path/to/project1.spine -o /path/to/output/ -e /path/to/export1.json
      -i /path/to/project2.spine -e /path/to/export2.json -i /path/to/images/
      -o /path/to/output/ -p /path/to/pack.json
Spine -i /path/to/skeleton.json -o /path/to/project.spine -r skeletonName

可以在一个Spine ivocation中指定多个命令,如上面的一些示例所示。

如果输出路径的文件夹不存在,则会创建这些文件夹。

如果命令失败,Spine将返回非零错误代码。

用于导出Spine的所有示例项目的导出脚本可以作为Spine的CLI真实使用示例。Windows用户可以通过Cygwin)使用bash编写类似的脚本。

未知参数

Spine启动程序在将指定参数传递给Spine编辑器之前,会检查是否允许这些参数。如果某些CLI参数不被接受,则可能在安装Spine启动程序时这些参数不可用,但较新版本的Spine编辑器仍然可以理解它们。

在这种情况下,你可以下载并重新安装Spine启动程序,或者使用--ignore-unknown参数,这样Spine启动程序将允许它无法识别的参数。它将为无法识别的参数打印警告,但仍会将它们传递给Spine编辑器。如果Spine编辑器无法识别它们,它们将被忽略。

使用CLI参数运行Spine

Windows

Spine for Windows自带两个可执行文件:Spine.exeSpine.com。EXE文件是一个GUI应用程序,它在没有控制台窗口的情况下启动Spine,也不等待Spine退出。COM文件是一个命令行应用程序,它将Spine的输出定向到控制台窗口,并等待Spine退出。

这两个可执行文件都可以用于命令行界面,但通常首选COM文件。如果Spine安装文件夹位于系统路径或者是当前工作目录,则指定不带扩展名的Spine将始终执行Spine.com。例如:

Spine -e C:\path\to\export.json

Mac

使用Spine for Mac时,命令行导出是通过直接启动Spine可执行文件来完成的,而不是打开Spine.app。可执行文件位于Spine.app/Contents/MacOS/SpineSpine.app内。例如:

/Applications/Spine.app/Contents/MacOS/Spine -e /path/to/export.json

Linux

使用Spine for Linux时的命令行导出是通过运行Spine.sh脚本完成的。例如:

./Spine.sh -e /path/to/export.json

下一节: 设置 上一节: 导入