Tests workflow

Spine

这个 Swift 库允许你从 Spine (ESS 版本) (v4.1+) 上传角色及其动画到 SpriteKit,支持以下平台:

iOS macOS tvOS watchOS

几乎实现了 Spine 应用程序基本版本的所有功能:骨骼动画、皮肤、插槽动画、基于边界框创建物理体以及其他一些功能。有关更多信息,请参阅已实现功能

警告:没有 Spine Pro 功能的实现,也没有计划实现。没有网格及其动画等功能。此外,当尝试从带有网格的 Spine Pro 版本加载角色时,它甚至无法在屏幕上正确显示,并且会缺少大量纹理。

如果你真的需要 Spine 的 Pro 功能,并且不关心 SpriteKit,请查看官方 Spine iOS 运行时:https://esotericsoftware.com/spine-ios

库的使用示例:示例项目
了解更多关于库的使用信息:Spine Wiki 你也可以在 Xcode 中编译文档

Hero

安装

Spine 库可以使用 Swift Package Manager 安装。

使用包 URL 搜索 URLImage 包:https://github.com/maxgribov/Spine

有关如何集成包依赖项的信息,请参阅将包依赖项添加到你的应用程序文档。

基本用法

资源

文件

  1. Assets 目录中创建 文件夹(以下示例中的 Goblins 文件夹)
  2. 创建 sprite atlases(以下示例中的 defaultgoblingoblingirl sprite atlases)
  3. 将图像放入 sprite atlases。

注意:请注意,Spine 应用程序项目的 root 文件夹中的图像必须位于 Xcode 项目中名为 default 的 sprite atlas 中。

最终结果应如下所示

Assets

命名空间

为 Xcode 属性检查器中的根文件夹和所有 sprite atlases 启用 Provides Namespace 选项

Namespace

警告:如果你忘记设置命名空间,稍后当你初始化角色时,图像可能无法找到。

JSON

将从 Spine 应用程序导出的 JSON 放置在项目中的某个位置

json

有关资源的更多信息,请参阅 Assets Wiki

代码

在代码的开头,导入 Spine

import Spine

JSON 文件加载角色并应用皮肤的最简单方法是使用适当的 Skeleton 类初始化器

let character = try Skeleton(json: "goblins-ess", folder: "goblins", skin: "goblin")

SkeletonSKNode 的子类,因此你可以像使用 SKNode 本身一样使用它

通过这种方式,你可以将 Spine 中创建的动画应用于角色

let walkAnimation = try character.action(animation: "walk")
character.run(walkAnimation)

action(animation:) 方法返回 SKAction 类的对象,因此你可以像使用任何其他 SKAction 类的对象一样使用此动画

这是一个最简单的场景示例,我们在其中加载 Goblin 角色,将其添加到场景并开始无限循环的行走动画

import SpriteKit
import Spine

class GameScene: SKScene {
    
    override func didMove(to view: SKView) {
        
        do {
            
            let character = try Skeleton(json: "goblins-ess", folder: "goblins", skin: "goblin")
            character.name = "character"
            character.position = CGPoint(x: self.size.width / 2, y: (self.size.height / 2) - 200)
            addChild(character)
            
            let walkAnimation = try character.action(animation: "walk")
            character.run(.repeatForever(walkAnimation))

        } catch {
            
            print(error)
        }
    }
}

已实现功能

名称 模型 功能 动画
骨骼
- 旋转 + + +
- 平移 + + +
- 缩放 + + +
- 倾斜 + - -
骨骼附加功能
- 反射 + -
- 旋转继承 + -
- 缩放继承 + -
- 反射继承 + -
插槽
- 附件 + + +
- 染色颜色 + + +/-
- 暗染色颜色 + -
皮肤 + +
附件
- 区域 + +
- 网格 + - -
- 链接网格 + - -
- 边界框 + + -
- 路径 + - -
- 点 + +
- 裁剪 + - -
约束
- IK 约束 + - -
- 变换约束 + - -
- 路径约束 + - -
事件 + + +
绘制顺序 + + +

文档

Spine 库的文档非常完善。你可以在源代码文件中找到文档,也可以编译文档以便在 Xcode 的开发者文档中显示。

要编译文档,请使用菜单:Product > Build Documentation

或使用快捷键:ctrl + shift + command + D

结果,开发者文档将打开,你将看到类似这样的内容

Docs

系统要求

Swift 5.0

许可证

本项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件

有用的链接