导入骨架数据
April 18th, 2023
在某些情况下你没有 Spine 项目,但又想使用导出的文件导入一个骨架到 Spine 中。本教程将指导你完成这整个过程。
解包纹理图集页面
如果你有尚未打包到纹理图集中的单个图片文件,则可以跳过此步骤。如果你的图片已打包到纹理图集中,你需要先解包才能在 Spine 编辑器中使用它们。这可通过 Spine UI 或命令行完成。最好使用最新版的 Spine 来解包图集。
如果图集是用预乘Alpha打包的,Spine 在解包时需要取消预乘 alpha。对于使用较新版本 Spine 打包的图集,图集文件知道图集图片是否有预乘 alpha。解包器将使用图集文件中的此信息(如有)。
对于使用旧版 Spine 打包的图集,你需要分辨 Spine 图集图片是否已预乘。当图片已预乘时,图片的透明部分会显得暗些。如下是预乘和非预乘(直接 alpha)图片的比较:
使用 UI 解包
通过 Spine UI 解包:
- 确保图集文件和图集图片在同一文件夹中。
- 打开 Spine 编辑器并从主菜单中选择“
Texture Unpacker
(纹理解包器)”。
- 在“
Texture Unpacker
(纹理解包器)”窗口中:- 输入“
Atlas
(图集)”文件的路径。如果已为 spine-unity 导出骨架数据,则文件扩展名可能是.atlas.txt
,这会正常工作。 - 输入“
Output folder
(输出文件夹)”,这是你将存储解包图片的文件夹路径。 - 如果图集使用预乘 alpha 打包,请勾选“
Unpremultiply alpha
(取消预乘 alpha)”。如果图集文件有“pma:true”,则将使用它来代替此复选框。
- 输入“
- 点击“
Unpack
(解包)”。将为图集中的每个纹理区域创建单独的图片文件。
使用 CLI 解包
要通过命令行界面 (CLI)解包,请指定以下参数:
你还可以使用此短命令行参数执行相同的操作:
你可能想要使用 --update
或 -u
,这可运行特定的版本。例如,在上面的示例中添加-u 4.1.20
将运行 Spine 4.1.20 来解包。使用最新的非测试版 Spine 解包是最好的,你可以使用-u latest
来这样做。
导入骨架数据
要导入你的骨架数据,首先确保你使用的 Spine 版本与用于导出数据的版本相同。这对于二进制数据尤其重要,但也适用于 JSON 数据。
接下来,检查图集文件是否有指定图集比例的行。导入时将需要此信息。如果未找到,则意味着骨架的图集是以 1 的比例(原始图片大小)打包的,或者图集是用旧版本的 Spine 打包的。
要导入骨架数据:
- 打开主菜单并选择“
Import Data
(导入数据)”。
- 在“
Import Data
(导入数据)”窗口中:- 对于“
File
(文件)”,输入 JSON 或二进制文件的路径以导入。 - 如果纹理图集已缩放,请设置“
Scale
(比例)”值,以便骨架大小与解包图集图片一致。 - 输入要导入的骨架名称。
- 输入要导入的骨架名称。
- 对于“
- 按“
Import
(导入)”,你将看到你的骨架,但带有MISSING
图片而不是正确图片。发生这种情况是因为尚未设置图片路径,我们将在下一步中修复。先保存 Spine 项目。
现在骨架图片会正确显示:
疑难解答
为何正确设置了图片路径却没有显示我的图片?
如果骨架是在 Spine Professional 中创建的,但你使用 Spine Essential 导入了骨架数据,则不会导入网格附件和约束,因为它们仅在 Spine Professional 中可用。请使用 Spine Professional 导入包含 Spine Professional 功能的骨架。
为何我的图片的透明区域周围有黑色边框?
你的图集图片具有预乘 alpha,但你在解包图集时没有勾选“Unpremultiply alpha
(取消预乘 alpha)”。请勾选“Unpremultiply alpha
(取消预乘 alpha)”再次尝试解包 。
为何我的附件图片的透明区域周围有白色边框?
你的图集图片没有预乘 alpha,但你在解包图集时勾选了“Unpremultiply alpha
(取消预乘 alpha)”。请不勾选“Unpremultiply alpha
(取消预乘 alpha)”再次尝试解包 。
为何有些部分比正确尺寸小或大?
你的图集使用大于或小于 1 的比例打包。请再次导入骨架并指定用于打包图集的相同比例值。如果你不知道比例,可以尝试一些常用值,例如 0.5 或 0.25。
为何导入的骨架动画不正确?
要正确导入,你必须使用与导出数据相同的 Spine 版本。你可以在导出的数据中找到 Spine 版本,方法是使用文本编辑器打开它并在文件开头附近查看:
如果文件是以二进制格式导出的,你可能需要使用 十六进制编辑器 查看版本号。
如果你的数据来自旧版本的 Spine,请运行该版本以便你可以导入数据,然后保存一个 Spine 项目文件并使用你要用的较新版本的 Spine 打开它。
为何骨骼图标变成了默认图标?
骨骼图标信息不包含在导出的骨骼数据中,因为它只在 Spine 中需要,所以导入的骨架将为所有骨骼使用默认图标。
为何骨骼颜色会重置并且网格顶点之间的边缘消失了?
在未勾选“Nonessential data
(非必要数据)”的情况下导出骨架数据时,不会导出一些运行时通常不需要的信息。导入的骨架仍然可以工作,但是会丢失非必要信息。所以如果你以后打算导入数据,请务必在导出时勾选“Nonessential data
(非必要数据)”。
如果你在从导出的文件导入骨架时遇到问题,我们很乐意在 Spine 论坛上提供帮助!