初学者的导出指南 - spine-unity教程

June 4th, 2026

在这段面向初学者的全新教程视频中,我们将详细讲解如何在 Spine 4.3 中导出骨骼数据并将其导入 Unity 6 的完整工作流程!

本视频还讲解了初学者在设置和导入过程中常遇到的错误。如果您是第一次将Spine 4.3与Unity进行集成,请务必观看。

这段视频对您有帮助吗?欢迎在Spine论坛分享您对这段视频的意见和感想!

Spine 4.3 发布了!

March 26th, 2026

Spine 4.3

滑块。变换约束。更聪明地装配。

我们很高兴宣布 Spine 新版本发布!4.3 带来了强大的新功能,让你能更好地控制骨架,同时还有大量改进,可让你的工作流程更加顺畅。

来看看本次发布的亮点!

滑块

滑块是一种新的约束,可应用动画,让你能够控制任何可以设置关键帧的属性。你可以手动设置滑块,或用骨骼驱动它,从而自动完成复杂运动、复用姿势,以及混合或变形混合形状。这个交互式教程将分四步介绍滑块:

1 / 4 · 滑块之前
2 / 4 · 手动滑块时间
3 / 4 · 骨骼驱动的滑块
4 / 4 · 完整动画
过去要复用动画,意味着要把相同的关键帧复制/粘贴到多个动画中。
有了滑块,你可以改为直接应用其他动画。
滑块会应用动画中的指定帧。
拖动下方控件来设置滑块的,并查看它如何应用滑块动画时间轴。
滑块也可以由骨骼驱动:旋转、移动、缩放或倾斜都会设置滑块的帧。
拖动下方控件来设置控制骨骼旋转,或拖动菱形上方的骨骼。
骨骼的旋转会设置滑块的帧,并应用滑块动画时间轴。
动画可以为滑块或其控制骨骼设置关键帧,从而复用底层的滑块动画,无需复制/粘贴所有关键帧。
点击启用滑块复选框来关闭滑块,以便更清楚地看到它所完成的所有效果。
0
控制骨骼旋转
映射到
0
控制骨骼旋转
映射到
0

现在来看看几个使用滑块的示例:

一个滑块,一整段动画

单个滑块就可以应用一整段包含许多时间轴的动画。拖动手部,其余部分会自动完成:手臂旋转时会驱动一个滑块,使网格变形、旋转手部,并淡入淡出肌肉阴影和血管。

切换滑块
拖动我的手!

四处看看

滑块可以把鼠标移动转换成自然的角色动作。它们会调整脸部和身体、切换嘴部图片,并驱动绘制顺序,让手臂自然地从身体前后穿过,而不需要任何特殊逻辑。

切换滑块

滴答作响的指针

时钟指针的运动由变换约束驱动,而滑块则增添了魔法:它们让指针像真正的模拟时钟一样向前跳动。改变速度并切换滑块开关,看看它们创造出的滴答效果以及阴影。

切换滑块
速度 1.0x

变换约束

变换约束在 4.3 中得到了大幅重做。现在,你可以将变换属性映射到不同的属性类型。例如,移动一个骨骼可以使其他骨骼旋转或缩放。任意组合都成为可能!你还可以将受约束值钳制在某个范围内,并为源骨骼和受约束骨骼分别选择世界空间或局部空间。

Spine 4.3 中的变换约束属性

这些变化为自动骨架运动打开了巨大的可能性:从根据方向翻转精灵,到以最少的动画工作量创建机械连杆和复杂装配,都可以实现。

这个卷轴使用新的变换约束将移动转换为旋转和缩放。只移动一个骨骼,就能让整个卷轴卷起和展开。

拖动卷轴!

大量变化

Spine 4.3 还包含大量其他改进。以下是其中的一些亮点:

更智能的网格描摹

现在可以一次描摹多个网格,不必逐个重复相同操作。这个过程不仅快得多,描摹结果也更加准确。

网格描摹还新增了一个均匀滑块,可生成在关节处弯曲更自然的网格。

跨多个网格绘制权重

可以跨多个网格附件设置权重,不再一次只能处理一个。

你还可以一次对多个网格进行绑定、焊接、平滑、自动权重和修剪。

带修复功能的问题视图

新的“问题”视图会把警告和项目问题集中到一个地方,你再也不需要在树中到处寻找警告图标。选择一个问题后,会直接跳转到需要注意的项目。

许多问题只需单击一下即可自动解决!

HTML 导出

Spine 现在可以导出一个可直接打开的 HTML 页面来展示你的动画。你可以选择功能完整的嵌入式 Spine 播放器,或者在希望动画自然融入现代网页时选择 Spine Web组件。

HTML 导出还支持组合皮肤,让你无需编写自定义代码即可更轻松地预览和分享皮肤设置。

绘制顺序文件夹关键帧设置

绘制顺序文件夹现在可以拥有自己的关键帧,并与主绘制顺序时间轴分离。这样你就能为单个文件夹中的内容制作动画,而不会与骨架其余部分的关键帧冲突。

你可以在不同轨道上为不同文件夹设置关键帧,从而叠加复杂的绘制顺序变化。

新的剪裁选项

剪裁附件现在支持反向剪裁,因此你可以隐藏剪裁形状内部的内容,而不是隐藏外部内容。这让许多镂空和显现效果更容易制作。

剪裁也更加高效,CPU 占用更低,尤其是在使用新的凸包设置时。

更灵活的链接网格

链接网格不再局限于与其源网格相同的插槽。你可以将链接网格放在另一个插槽中,同时仍然共享源网格的几何结构和权重。

这让你更容易在不同皮肤、分层附件和备用装配结构之间复用相同的网格设置,而无需重复工作。

体积缩放

物理约束和 IK 约束现在都有一个保体积的 scaleY 设置,其中 scaleY 会与 scaleX 反向增大或缩小。这可以为有弹性的肢体、卡通风格装配或细微弹跳创建漂亮的挤压与拉伸效果。

以摄影表为中心的同步模式

Spine 已经有以曲线图为中心的同步模式:在曲线图中选择一个关键帧,会在摄影表中显示该时间轴。现在也可以反向操作。

在摄影表中选择一个关键帧,会在曲线图中显示该时间轴,让你在浏览大量关键帧(这是摄影表擅长的任务)的同时,也能快速访问曲线。

改进的曲线编辑

当关键帧值改变时,Spine 现在会更好地调整贝塞尔手柄,让曲线保持形状,大幅减少手动清理的需要。

新的“上次选择”默认曲线选项,会为新创建的关键帧使用上次选择的曲线类型。

为受约束值设置关键帧

“为受约束值设置关键帧”热键可以在约束应用后为值设置关键帧。这对于将物理或其他约束产生的运动转换为关键帧非常有用。

数字字段中的数学运算

数字字段现在能识别数学表达式,因此你可以在输入数值的位置直接键入计算式。使用 valuev 引用当前值,例如:10 + v * 8

诸如 +=-=*=/= 这样的前缀会修改当前值。你还可以使用 boneLengthboneRotation 等常量,以及 randomclamp 等函数。

这些只是 4.3 中的一小部分改进。许多其他新增内容单独来看较小,但合在一起会让日常装配、动画、导入和导出更加顺畅。

改进的皮肤工作流程

现在可以通过拖放合并皮肤,同时还有更智能的筛选和许多易用性改进,包括自动添加其他必要的骨骼和约束。

将项目打包为 ZIP

“打包项目”命令会创建一个包含项目及其图片的 ZIP。这是一种快速分享完整项目的方式,可用于团队成员、客户或支持人员,而无需手动收集文件。

相对导出路径

导出现在使用相对路径,因此从不同文件夹和计算机导出文件到正确位置会更加容易。

仅固定皮肤筛选器

“显示所有皮肤附件”现在有一个“仅固定皮肤”选项,当存在许多皮肤时,可让皮肤工作流程更清爽。

图片节点中的 PSD

PSD 文件现在可直接从图片节点管理,改进重复 PSD 导入和同步工作流程。此外,附件现在会显示它们来自哪个 PSD。

按皮肤打包图集

纹理打包现在可以为每个皮肤创建单独的图集。这对于需要单独打包、加载或流式传输皮肤的项目非常有用。运行时也已更新,以支持此工作流程。

优化的编辑器 UI

整个编辑器中的图标、滑块、禁用状态、警告和约束视觉效果都得到了改进。

改进的导出

图片、视频、数据和 CLI 导出都已多线程化,速度也快得多。CLI 还新增了许多导入/导出选项,让自动化管线更轻松、更灵活。

更多热键

新的热键包括选择、保持、翻转和浏览关键帧,以及缩放、翻转视区、绘制顺序操作、图片路径、序列和网格编辑。

如果想了解更多细节,请展开下面的更新日志亮点。

其他更新日志亮点包括:

  • 新增骨骼图标大小和旋转控件。
  • 为编辑器选择新增面包屑导航。
  • 为路径、边界框、剪裁附件和绘制顺序文件夹新增重置按钮。
  • 为视图侧边栏按钮新增图标。
  • 在网格图片调整大小时显示的对话框中新增“全选”。
  • 为纹理打包新增暴力设置。
  • 新增“序列”和“区域 - 网格”热键。
  • 新增可通过文件对话框选择的图片路径,以及“图片路径”热键。
  • 新增文件夹复制,包括其中的所有内容。
  • PSD 导入改进了智能对象复用、源网格匹配、缺失 PSD 警告、其他插槽中的链接网格、[rotate:degrees] 标签、输出路径默认值、缩放和合并标签,以及删除与覆盖行为。
  • 项目文件大小更小。
  • 改进树性能、树注释、选择行为以及滚动/平移。
  • 改进项目警告、附件警告和缺失文件报告。
  • 改进网格编辑稳定性、顶点处理和无效网格恢复。
  • 改进自动权重和权重绘制工作流程。
  • 改进物理平滑度、响应性和确定性行为。
  • 改进预览动画混合和导出预览响应速度。
  • 改进 JSON 可读性、大小和数值精度。
  • 改进约束排序、图标、非活动状态和约束警告。
  • 改进文件对话框、文件监控和 Windows 网络路径安全性。
  • 修复了许多崩溃、导出、导入以及撤销/重做问题。

Web组件

Spine 4.3 推出了 Spine Web组件,这是一组自定义 HTML 元素,可让你轻松地将 Spine 动画直接嵌入任何网页。无需编写 JavaScript 代码:只需向 HTML 添加一个标签!

Web组件非常高效。一个网页可以同时拥有数十个骨架,而不会出现性能问题。

<spine-skeleton> 元素让你可以通过简单的 HTML 属性指定图集、骨架数据、动画和皮肤,从而显示 Spine 骨架并与之交互。它会自动处理加载、渲染和播放。

<script
	src="/spine-webcomponents.min.js"
></script>

<spine-skeleton
	atlas="spineboy-pma.atlas"
	skeleton="spineboy-pro.json"
	animation="walk"
></spine-skeleton>

Web组件非常适合落地页、作品集、交互式文档,以及任何你想在网页上无需编写代码就展示 Spine 动画的地方。事实上,本页所有交互式示例都是使用 Spine Web组件展示的!

spine-cpp、spine-c 和下游运行时的新基础

Spine 4.3 对我们的原生运行时技术栈进行了重大重构,让我们能够以更高质量支持更多语言。spine-cpp 现在是我们发布的每个 C 系列运行时的共享实现,而 spine-cspine-ios / SpineSwiftspine-flutter 都已重写为基于它自动生成的包装器。

spine-cpp 已扩展以支持这个新技术栈。头文件从 spine-cpp/spine-cpp/include/spine/ 移到了 spine-cpp/include/spine/,公共 API 也围绕 4.3 模型进行了重塑:分离骨骼姿势和应用后姿势、Pose / Posed / PosedActive 基类、统一的约束时间轴层级、新的 Sequence 模型、凸剪裁和反向剪裁、用加法混合取代 holdPrevious、滑块等等。它还新增了轻量级 RTTI 系统,使我们能够在其他语言中生成符合惯用写法的绑定。

spine-c 已完全重写为围绕 spine-cpp 自动生成的 C 包装器。旧的手工维护 sp* API 已被移除。新 API 使用不透明的 spine_xxx 句柄,通过生成的转换函数公开完整的 C++ 类型层级,在生成的头文件中包含可空性提示(/*@null*/)和 Doxygen 风格文档,并达到与 C++ 完全一致的功能。这对 spine-c 用户来说是破坏性变更。新的 API 和文档位于 esotericsoftware.com/spine-c

spine-ios / SpineSwiftspine-flutter 现在都完全基于新的 C 运行时自动生成。两者都会将完整的 spine-cpp 类型层级公开为真正的 Swift 和 Dart 类,并具有正确的继承关系,例如 Bone : PosedActive, Posed, Update;使用语言原生的可空性(Swift 和 Dart 中的 Bone?)而不是不透明指针;并传播来自 spine-cpp 的内联文档注释。内部重写规模很大,但迁移典型应用代码大多是机械性的:导入语句会变化(Spine / SpineCppLite 变为 SpineSwift / SpineiOS),少数方法重命名以匹配 spine-cppsetAnimationByName 改为 setAnimationsetToSetupPose 改为 setupPoseparentMesh 改为 sourceMeshAnimationState.getCurrent 改为 getTrack),Dart 中的 getter/setter 对也变成惯用的属性(getData().setDefaultMix(0.2) 变为 data.defaultMix = 0.2)。4.3 分支上更新后的示例应用展示了完整的迁移范围。

基于此技术栈构建的其他原生运行时(spine-sfmlspine-sdlspine-glfwspine-godotspine-ue)也已更新到新的 spine-cppspine-c API。如果你使用其中任何一个,请在升级前阅读 Spine 运行时更新日志中对应运行时的条目。

spine-cocos2dx 已在 4.3 中移除。Cocos2d-x 自 2020 年的 v4.0 以来就没有稳定版本,并且在当前 Xcode 和 iOS SDK 下,不手动打补丁已无法开箱即用地构建。如果你仍在使用 cocos2d-x 发布产品,请继续使用 spine-cocos2dx 的 4.2 分支。

针对 spine-libgdx 的快照测试

Spine 4.3 还为核心语言运行时引入了一个快照测试工具。spine-libgdx 仍然是我们的参考实现,我们使用基于 LSP 的公共 API 分析,为其他运行时自动生成匹配的序列化器。每个受支持的运行时都有一个 HeadlessTest,用于加载骨架、构建 SkeletonAnimationState、应用动画,并将整个对象图序列化为确定性 JSON。随后,测试工具会将该输出与 spine-libgdx 输出逐字节比较,因此我们可以精确定位哪个字段或计算出现了差异。

在 4.3 中,快照测试工具会将 spine-cppspine-libgdx 参考实现进行比较。其他核心语言运行时(spine-cspine-tsspine-haxespine-csharp)的接入正在进行中。Unity、Godot 和 Unreal 等引擎集成不会被直接作为目标;它们会通过其构建所基于的核心运行时间接验证。

运行时更改

所有官方运行时都已针对 Spine 4.3 更新,并支持新的编辑器功能。最重要的运行时更改包括:

  • 通过新的 SliderSliderDataSliderTimelineSliderMixTimeline API 支持滑块。
  • 变换约束已根据 4.3 的约束重做进行更新,包括属性映射、钳制、偏移以及局部/世界空间行为。
  • 新的姿势模型明确分离了设置、未约束、已约束和已应用状态。例如,骨骼会公开姿势和应用后姿势数据,而插槽和约束会公开各自的姿势对象。
  • AnimationState 的保持系统已改进,可在交叉淡入淡出期间避免下沉,而无需 holdPreviousinterruptAlpha。时间轴的 apply 方法现在使用新的 fromSetupaddout 参数,轨道条目也会直接公开加法混合。
  • TrackEntry.mixInterpolation 允许 AnimationState 混合使用非线性插值,使交叉淡入淡出比标准线性混合更平滑或更具风格化。
  • 物理行为更加正确且响应更快,尤其是在较低更新率或渲染率下。运行时还新增了骨架级别的风力和重力控件,并改进了对物理重置时间轴的处理。
  • 剪裁现在支持凸剪裁和反向剪裁,同时提升了剪裁性能,并修复了反向剪裁的边缘情况。
  • 新的 DrawOrderFolderTimeline 支持绘制顺序文件夹,允许动画为绘制顺序文件夹变化设置关键帧。
  • 按皮肤图集工作流程得到了更直接的支持:对于使用按皮肤图集导出的骨架,AtlasAttachmentLoader 可以允许缺失区域,AttachmentLoader API 现在也会同时接收皮肤占位符和解析后的附件名称。
  • 链接网格 API 已更新,使链接网格可以使用其他插槽中的源网格,并正确继承变形和序列时间轴。
  • 序列附件已重构,可预先计算每帧的区域、UV 和偏移,提高正确性,并让各运行时中的序列渲染更安全。

一如既往,如果你想使用 Spine 运行时 4.3,就需要使用 Spine 编辑器 4.3 重新导出骨架。更多信息请参阅我们的 Spine 版本控制指南

spine-ts:更强大的 Web 运行时

TypeScript 运行时及其 Web 后端在 4.3 中获得了许多实用改进:

  • WebGL、Three.js、Pixi、Phaser、Player 和 Web组件现在可以自动处理 PMA 与非预乘 alpha 纹理。非预乘 alpha 纹理会在需要时作为 PMA 上传,因此你可以使用 WebP 等格式来减小下载体积,同时仍获得 PMA 渲染优势,例如正确的混合模式。
  • 共享的 SkeletonRendererCore 减少了渲染器之间的重复代码。
  • Pixi、Phaser 和 Three.js 新增了物理位置和旋转继承设置。

spine-unity:多线程且模块化

我们的 spine-unity 运行时现在支持多线程动画和网格生成,只需打开一个开关,就能显著提升性能!

你只需要在 Spine 偏好设置中启用一个设置。如果你在骨架事件回调中执行只能在主线程完成的任务,也不用担心,我们会自动在主线程上调用所有回调。我们还让更新周期保持零分配,而这正是较简单线程实现容易出问题的地方。由于现成方案无法做到这一点,我们构建了自己的工作窃取调度器,可在各核心之间高效平衡负载,并提供可配置设置,让你根据需求调整系统。

多线程

它基于标准 C# 线程构建,因此你不需要 ECS 或 Job System 等较新的 Unity 功能。它一直兼容到 Unity 2017.1。

除此之外,我们还将 Skeleton 组件拆分为渲染组件和动画组件,使 SkeletonMecanim 首次能够为 SkeletonGraphic UI 元素制作动画。

SkeletonRendererSkeletonGraphic 组件现在负责渲染,而 SkeletonAnimationSkeletonMecanim 负责动画。当你打开每个场景时,组件会自动升级,因此你可以逐个场景验证一切是否仍然正常。确认所有内容都能正确运行后,只需按一下按钮即可升级整个项目。如果你的代码涉及受影响的 API,可能需要做一些调整。我们整理了一份完整的升级指南,帮助你完成这些步骤。安装 spine-unity 4.3 运行时后,会出现一个包含所有相关信息的对话框,因此你和同事都不会错过这项变化。

基于最新的 Unity UI Toolkit 改进,Spine UI Toolkit UPM 包现在支持 PMA 图集纹理、所有混合模式和背面三角形渲染。SpineVisualElement 上新的 Detect 按钮会自动为你选择正确的材质,一键即可完成。

最后,我们还添加了许多易用性改进。 其中包括在导入新骨架时自动检测 PMA 与非预乘 alpha 不匹配。一个简单的对话框会出现,帮助你更轻松地解决任何问题。现在,在 Spine 偏好设置中也只需单击一下即可在 PMA 和非预乘 alpha 工作流程设置之间切换。皮肤重新打包现在也会处理混合模式,消除了过去的限制。

接下来

我们对 Spine 4.3 非常满意!滑块和新的变换约束为你提供了强大的新方式,让你能用更少的工作量构建复杂装配,而许多易用性改进则让日常工作流程更快、更顺畅。

感谢社区中每一位报告问题、测试 beta 版并提供建议和反馈,帮助我们塑造新功能的朋友。你们的意见非常宝贵!

祝大家快乐创作动画!
–Spine 团队

Spine 论坛上讨论本文。

切分资源素材 - Spine技巧 #9

May 9th, 2025

我们很高兴与你们分享一个新的 Spine 技巧教程视频!这次,我们将向你展示如何为动画切分你的美术资源。这是一项常见任务,视频中的技巧能帮助你更有效地制作角色,并为绑定和动画做好准备。

每个角色和项目都有各自的挑战,但视频中的技巧适用于各种不同的项目。除了本视频之外,务必查看我们另一个关于相同主题的博客文章,文中提供了许多示例。此外,也不要错过我们的 Twitch 直播页面

欢迎访问 Spine 论坛 提出你的问题,并和大家一起讨论切分素材和为角色进行绑定和动画制作的工作流程!

玩得开心,享受动画制作的乐趣!