Spine
这个 Swift 库允许您将从 Spine 应用程序(v3.8.x +)上传角色及其动画到 SpriteKit,适用于
iOS
macOS
tvOS
watchOS
实现了 Spine 应用的基本版本的大部分功能:骨骼、皮肤和插槽的动画、基于边界框创建物理体等。有关更多信息,请参阅实现功能
与库一起工作的示例: 示例项目
了解如何使用库的更多信息: Spine Wiki
安装
CocoaPods
将 Pod 添加到您的 Podfile
pod 'Spine'
运行
pod install
基本用法
资源
文件
- 在
资源
目录中创建一个文件夹
。 (以下示例中的哥布林
文件夹) - 创建
精灵图集
。 (以下示例中的默认
、哥布林
和哥布林女
精灵图集) - 将图片放入精灵图集中。
请注意,Spine 项目根目录中的图片必须在 Xcode 项目的名为
默认
的精灵图集中。
最终结果应该看起来像这样
命名空间
在 Xcode 的属性检查器中为根文件夹和所有精灵图集启用 提供命名空间
选项
如果您忘记设置命名空间,稍后初始化角色图片时可能会找不到。
JSON
将 Spine 应用程序导出的 JSON 放在项目中的某个位置
有关资源的更多信息,请参阅 资源 Wiki
代码
在代码的某个地方,导入 Spine
库
import Spine
从 JSON 文件加载角色并为其应用皮肤的最简单方法是使用适当的 Skeleton
类构造函数
if let character = Skeleton(fromJSON: "goblins-ess", atlas: "Goblins", skin: "goblin") {
//Do something with your character here
}
Skeleton 是
SKNode
的子类,因此您可以对其进行任何与SKNode
本身相同操作
这样,您可以将 Spine 中创建的动画应用到角色上
if let walkAnimation = character.animation(named: "walk") {
character.run(walkAnimation)
}
animation(named:)
方法返回一个SKAction
类型的对象,您可以使用此动画作为任何其他SKAction
类型的对象
这是一个示例,展示了如何加载Goblin角色,将其添加到场景中并开始无限循环的行走动画
import SpriteKit
import Spine
class GameScene: SKScene {
override func didMove(to view: SKView) {
if let character = Skeleton(fromJSON: "goblins-ess", atlas: "Goblins", skin: "goblin"){
character.name = "goblin"
character.position = CGPoint(x: self.size.width / 2, y: (self.size.height / 2))
self.addChild(character)
if let walkAnimation = character.animation(named: "walk") {
character.run(SKAction.repeatForever(walkAnimation))
}
}
}
}
实现的功能
名称 | 模型 | 特性 | 动画 |
---|---|---|---|
骨骼 | |||
- 旋转 | + | + | + |
- 平移 | + | + | + |
- 缩放 | + | + | + |
- 剪切 | + | - | - |
骨骼额外选项 | |||
- 反射 | + | - | |
- 旋转继承 | + | - | |
- 缩放继承 | + | - | |
- 反射继承 | + | - | |
插槽 | |||
- 附着 | + | + | + |
- 渲染颜色 | + | + | +/- |
- 暗色渲染颜色 | + | - | |
皮肤 | + | + | |
附件 | |||
- 区域 | + | + | |
- 网格 | + | - | - |
- 连接网格 | + | - | - |
- 包围盒 | + | + | - |
- 路径 | + | - | - |
- 点 | + | + | |
- 剪影 | + | - | - |
约束 | |||
- IK约束 | + | - | - |
- 变换约束 | + | - | - |
- 路径约束 | + | - | - |
事件 | + | + | + |
绘制顺序 | + | + | + |
系统要求
Swift 5.0
- iOS 8.0+
- macOS 10.10+
- tvOS 9.0+
- watchOS 3.0+
许可协议
本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE文件
使用链接
- Spine用户指南:http://esotericsoftware.com/spine-user-guide
- Spine JSON格式文档:http://esotericsoftware.com/spine-json-format
- Spine官方运行时:https://github.com/EsotericSoftware/spine-runtimes