Skip to main content

Spine 骨骼动画

Spine 是一款专门为软件和游戏开发者量身打造的 2D 动画软件。动画师、原画师和工程师共同为您的游戏赋予生命。使用 Spine 骨骼动画可以实现一些更加丰富的效果,相对于帧动画能够更好的减少内存占用。Spine 是收费软件,请购买后使用,Spine 官网:http://zh.esotericsoftware.com/。目前支持 Spine 版本为:3.6 / 3.8 / 4.0,版本之间资源不兼容,可以在这里查看如何设置

安装

当前支持 spine 的 3.6 / 3.8 / 4.0 版本,可以根据版本选择不同npm包。

  • 3.6 @eva/plugin-renderer-spine
  • 3.8 @eva/plugin-renderer-spine38
  • 4.0 @eva/plugin-renderer-spine40

使用 NPM

npm i @eva/plugin-renderer @eva/plugin-renderer-spine

在浏览器中

<script src="https://unpkg.com/@eva/plugin-renderer-spine@1.2.x/dist/EVA.plugin.renderer.spine.min.js"></script>

使用

import { Game, GameObject, resource, RESOURCE_TYPE } from '@eva/eva.js'
import { RendererSystem } from '@eva/plugin-renderer'
import { Spine, SpineSystem } from '@eva/plugin-renderer-spine'

resource.addResource([
{
name: 'anim',
type: 'SPINE',
src: {
ske: {
type: 'json',
url: 'https://pages.tmall.com/wow/eva/b5fdf74313d5ff2609ab82f6b6fd83e6.json'
},
atlas: {
type: 'atlas',
url: 'https://pages.tmall.com/wow/eva/b8597f298a5d6fe47095d43ef03210d4.atlas'
},
image: {
type: 'png',
url: 'https://gw.alicdn.com/tfs/TB1YHC8Vxz1gK0jSZSgXXavwpXa-711-711.png'
}
}
}
])

const game = new Game({
systems: [
new RendererSystem({
canvas: document.querySelector('#canvas'),
width: 750,
height: 1000
}),
new SpineSystem()
],
autoStart: true,
frameRate: 60
})

game.scene.transform.size = {
width: 750,
height: 1000
}
const gameObject = new GameObject('spine', {
anchor: {
x: 0.5,
y: 0.5
},
scale: {
x: 0.5,
y: 0.5
}
})

const spine = new Spine({ resource: 'anim', animationName: 'idle' })

gameObject.addComponent(spine)
spine.on('complete', e => {
console.log('动画播放结束', e.name)
})

spine.play('idle')
game.scene.addChild(gameObject)

参数

resource string 

资源名称

animationName string 

动画名

方法

play(name?: string, loop?: boolean)

播放动画

  • name 动作名
  • loop 是否循环播放

stop()

停止播放