跟随和重叠动作 - 使用 Spine 制作动画第 8 期
May 15th, 2024
我们在最新一期的使用Spine 制作动画视频中深入探讨了跟随和重叠动作!
本期视频中使用的图片和Spine项目: https://esotericsoftware.com/files/projects/follow-through-and-overlapping-action-project.zip
May 15th, 2024
我们在最新一期的使用Spine 制作动画视频中深入探讨了跟随和重叠动作!
本期视频中使用的图片和Spine项目: https://esotericsoftware.com/files/projects/follow-through-and-overlapping-action-project.zip
April 27th, 2024
我们很高兴地宣布新的 Spine 4.2 版本发布了!新版本有大量的新功能,其中许多功能是我们自 10 多年前首次发布 Spine 以来一直梦想的,现在终于实现了!
让我们来深入了解一下此版本有哪些亮点吧!
Spine 中的物理功能是革命性的!它可以通过模拟现实世界的物理原理来自动移动骨骼。可为你节省大量时间,同时使你的动画看起来更棒!
四处拖动她!
你无需再费力地为头发、衣服及其他物品设置二次动画。任何自然移动的物体都可以利用物理功能自动移动。
除了节省时间之外,物理功能还为你提供动态运动。无论是动画还是角色在游戏世界中的移动,都能做出流畅逼真的反应。
Spine 现在可以直接读取 PSD 文件以导入你的艺术作品。这将你从 Adobe Photoshop 中解放出来,允许你使用任何可保存 PSD 文件的图像编辑器。
更棒的是,它还比 PhotoshopToSpine 脚本快大约 10 倍!
当使用 Spine 创作像素艺术时,新的像素
模式会转换区域附件以匹配屏幕像素。这可以确保你的附件不会因为像素的一小部分而变得模糊。
还有一个新的高亮显示像素
热键,可以高亮显示与屏幕像素不匹配的附件。这样可以轻松查看附件可能模糊的位置,以便进行更正。
4.2 为具有许多约束的项目带来了一些改进:
新焊接
功能会匹配网格之间的权重,有效地将它们焊接在一起。这可使多个网格进行相同的变形,就像是一张图像一样。
除了非常适合无缝使用多个网格,焊接还允许你在添加衣服、面部表情、剪裁附件等时应用现有的权重,从而节省时间。
最后,你现在可以将权重复制并粘贴到其他顶点,甚至可以复制到其他网格上。
循环动画的第一个和最后一个关键帧的曲线手柄现在已同步。有时,一些小事情可以节省你很多时间!
绘制顺序文件夹可方便你为大型骨架组织插槽。可通过拖动文件夹而非许多单个插槽来调整绘制顺序。
约束文件夹使复杂的骨架更易于管理。中键单击一个文件夹可选择所有子项。
我们的 spine-unity 运行时可以为你执行根骨骼运动!
通常,你可以在原处设置行走循环动画,然后在运行时编写代码,使其以正确的速度穿过游戏世界。但当运动很复杂时,比如拖着脚步的僵尸,代码会很难匹配动画。
通过根骨骼运动,行走循环会随着运动而呈现动画。在运行时,我们从动画中删除运动并将其应用到游戏世界位置。由此产生的游戏世界运动与动画完美匹配。
更先进的是,我们的根骨骼运动增量补偿功能允许你无缝调整跳跃动画的距离。这样动画师就可以在 Spine 中仔细设计跳跃运动,而程序员仍然可以控制跳跃在游戏世界中实际移动的距离。
自 4.1 版本以来,我们新增了许多运行时!
通过 spine-godot,我们为最流行的开源游戏引擎提供了一个运行时。
对于喜欢更直接方法的人们,我们创建了spine-sdl,其可以与我们的 spine-c 或 spine-cpp 运行时一起使用。
我们已经开始通过 spine-flutter 涉足移动应用程序。很快还会有更多推出!
我们的 spine-phaser 运行时完全替代了旧的 Phaser Spine 插件。我们自己为 Phaser 提供 Spine 运行时,可以确保及时更新并减轻 Phaser 团队的负担。
最近,我们在我们的武器库中新增了 spine-haxe。它可以与 OpenFL/Lime 上的 Starling 一起使用。我们还计划支持 OpenFL 上的其他框架,例如 HaxeFlixel。
新运行时列表中的最后一个是 spine-pixi,它是 PixiJS 的官方 Spine 运行时。与 spine-phaser 一样,我们希望确保我们的用户在官方支持下及时获得更新。
这些运行时已可用于生产,并且有大量代码示例可以帮助你入门。我们目前正在努力完成相应的文档,这些文档将在未来几周内准备好。
Unreal Engine 5.3 Epic 改变了资产的处理方式。同一文件夹中不能再有两个同名但类型不同的资产。
为此,你现在需要确保骨架数据文件(.skel
和 .json
)和图集文件具有不同的前缀。例如,skeleton-data.skel
和 skeleton.atlas
。或者,你可以将骨架数据和图集文件分开放入单独的文件夹中。
此外,Unreal Engine 不允许 spine-ue
正确访问在较旧的 Unreal Engine 版本中创建的资产。这意味着我们无法提供自动升级路径。如果你想将项目迁移到 Unreal Engine 5.3,你须手动重建并重新连接你的资产。
在 Unity 中,默认情况下任何变换运动都会与骨架的物理约束无缝集成。只需移动骨架,物理就会做出适当的反应。如果默认设置达不到要求,对物理继承
设置进行小更改即可解决问题。不要错过新的物理约束
示例场景,务必试一试这些骨架。
SkeletonGraphic 组件也有新功能。可设置新的布局比例模式
以自动使骨架适合其 RectTransform
边界。另外,你是否曾因 SkeletonGraphic 显示不正确或找不到正确的检查器和材质设置而苦恼?有了新的自动检测按钮,那些日子已结束了!甚至还有一个检测材质
按钮,可自动从我们新扩展的材质集分配正确的材质。
如果没有着色器改进,任何版本都是不完整的。我们现在支持所有 Spine URP 和 Spine/Sprite
着色器着黑色(Tint Black)
,并增加了 URP 混合模式着色器来完善此更新。
所有运行时都支持所有新的编辑器功能并已可用于生产!请参阅Spine 运行时更新日志,了解游戏引擎和语言特定的更改。
因为增加了物理功能,我们必须更改一些 API:
Skeleton.updateWorldTransform()
现在需要一个额外的 physics
参数来控制物理更新和应用的时间。在大多数情况下,你需要使用 Physics.update
。骨架
中。如果你的帧时间提前,请确保通过调用 Skeleton.update(deltaTime)
通知骨架。TransformMode
重命名为 Inherit
。除非你手动设置变换模式,否则此更改应不会影响你的代码库。TrackEntry.attachmentThreshold
重命名为 TrackEntry.mixAttachmentThreshold
,并将 TrackEntry.drawOrderThreshold
重命名为 TrackEntry.mixDrawOrderThreshold
。除了这些 API 更改之外,如果你想使用 Spine Runtimes 4.2,还须使用 Spine editor 4.2 重新导出骨架。有关更多信息,请参阅我们的 Spine 版本控制指南。
我们对 Spine 4.2 非常满意!新功能易于使用且非常强大。物理是游戏规则的改变者,可为你节省大量时间,同时让你的动画栩栩如生。
在发布像这样的大版本之后,我们希望后续再发布一个小版本,做些改进并提高生活品质。在 4.3 中,我们将重点关注简化你的工作流程。目标是通过减少执行常见任务所需的工作量来为你节省时间。
感谢在社区中报告问题、测试beta版并提供建议和反馈的每个人,各位的意见都非常宝贵,正是你们帮助塑造了这些新功能!
祝大家快乐创作动画!
–Spine 团队
在 Spine 论坛上讨论本文。
February 24th, 2024
We've just released Spine 4.2.10-beta where we've added the ability for the Spine editor to process PSDs directly. This is great for many reasons:
To try it out, go to Import Data
and choose a PSD file:
There are other great things in the 4.2.10-beta changelog:
Quick overview of the new Spine PSD Import and Slot and Constraints folders:
Jump over to the Spine forum to discuss this post!
February 15th, 2024
使用我们新的 shell 脚本一次性导出你的所有项目!该脚本会搜索.spine
项目文件并导出找到的每个项目。通过将一个导出设置文件放置在项目文件旁边,每个项目都可以使用不同的导出设置。
使用脚本导出有很多优点:
如下视频展示了如何使用这些脚本,或者继续阅读本文的分步说明。
下载适合你的操作系统的脚本:
你可以在spine-scripts GitHub 存储库上找到有关这些脚本的更多信息。
当使用一个文本编辑器打开该脚本时,可在顶部看到Customization Section
(自定义部分)。以下是 spine-export.bat
的摘录(spine-export.sh
类似):
在运行脚本之前应检查前三个设置:
SPINE_EXE
Spine 可执行文件的路径。如果此处找不到 Spine,脚本将在其他常见安装位置查找。
VERSION
用于执行导出的 Spine 编辑器版本。保持 Spine 编辑器和运行时版本相同非常重要.
DEFAULT_EXPORT
脚本会在与 Spine 项目相同的文件夹中查找导出设置 JSON 文件。如果未找到,则使用此处指定的导出设置。常见默认设置有 4 个快捷方式:json
、json+pack
、binary
或 binary+ pack
。或者,你也可以指定导出设置文件的路径(有关更多信息,请参见下文)。
在 Windows 上,有几种运行该脚本的方法:
spine-export.bat
文件上。spine-export.bat
文件打开一个 CMD 窗口,然后 输入或粘贴一个路径,或将一个文件夹拖放到该 CMD 窗口上。spine-export.bat
文件,然后输入或 粘贴一个路径,或将一个文件夹拖放到该 CMD 窗口上。spine-export.bat
文件,路径为 第一个参数。该脚本会搜索指定的文件夹和所有子文件夹。如果它找到一个 .spine
文件,则将执行一次导出。
在 macOS 或 Linux 上,在运行 spine-export.sh
之前,你必须首先授予它执行权限。打开 Terminal,导航到脚本所在的目录,然后使用以下命令授予执行权限:
要运行该脚本,请指定 ./spine-export.sh
以及包含要导出的 Spine 项目的目录路径。例如:
如果执行脚本时不指定路径,脚本会提示输入路径。
该脚本会搜索指定目录和所有子目录。如果它找到一个 .spine
文件,则会执行一次导出。
要指定详细的导出设置,你需要准备一个导出设置 JSON 文件。
Spine 编辑器中的导出对话框左下角有一个Save
(保存)按钮,可将当前导出设置保存为一个 JSON 文件。
保存的导出设置文件的扩展名将为“.export.json”。
如果在导出设置中选中了Pack
(打包),则纹理打包器设置也会保存在.export.json
文件中。
使用一个文本编辑器打开脚本文件,并将DEFAULT_EXPORT
的值更改为.export.json
文件的路径。例如:
如果一个项目文件旁边没有找到.export.json
文件,将使用这些设置。
请注意,导出的文件将使用Customization Section
(自定义部分)中的DEFAULT_OUTPUT_DIR
输出,而不是默认.export.json
文件中的输出路径。
要使用不同的设置导出一个 Spine 项目,请准备一个包含这些设置的.export.json
文件并将其保存在与 Spine 项目相同的文件夹中。例如,文件系统层次结构可能如下所示:
.export.json
文件名不需要与项目文件名匹配。
要使用不同的导出设置多次导出一个项目,请准备并包含多个.export.json
文件。例如,要以二进制格式和 PNG 序列导出骨架数据,你的文件系统层次结构可能如下所示:
同一文件夹中没有.export.json
文件将使用默认设置导出:
欢迎你使用Spine的命令行界面编写自己的脚本或修改我们的脚本以满足你的需求。我们在脚本中编写了注释来描述它所做的一切,并且 README文件更详细地介绍了它的工作原理。
你觉得本教程有帮助吗?我们很乐意在Spine论坛中听到你的反馈!