Skip to content

Android 原生使用libgdx 加载 动画。以前做动画采用的都是采用序列帧播放的,如果动画播放的效果好,需要制作的序列帧图片比较多,图片的数量多会导致包体急剧增大,对于用户体验来说非常差. 这个时候Spine就发挥作用了,Spine目前广泛的应用在游戏开发或者APP中,做2D开发的。

Notifications You must be signed in to change notification settings

wanglyGithub/SpineJunit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

什么是Spine 骨骼

骨骼动画(Skeleton animation又称骨架动画,是一种计算机动画技术,它将三维模型分为两部分:用于控制动作的骨,以及用于绘制模型的蒙皮(Skin),框架

Spine动画骨骼结构

image

集成

添加libgdx-spine

下载官方的libgdx-spine运行库,github上将运行库源码拷下来,放到工程中,或者自己打包成jar包。Github 导入运行库之后就可以开始在项目中播放spine动画了。 image

使用步骤

  1. 首先是读取纹理地图集和骨骼数据,这些骨骼数据也包含动画状态数据.
TextureAtlas playerAtlas = new TextureAtlas(Gdx.files.internal("assets/xxx.atlas"));
SkeletonJson json = new SkeletonJson(playerAtlas);
SkeletonData playerSkeletonData = json.readSkeletonData(Gdx.files.internal("assets/xxx.json"));
AnimationStateData playerAnimationData = new AnimationStateData(playerSkeletonData);
  1. 然后需要一个spriteBatch和骨骼渲染对象
SpriteBatch batch = new SpriteBatch();
SkeletonRenderer skeletonRenderer = new SkeletonRenderer();
  1. 用第一步读取的骨骼数据和动画状态数据创建一个骨骼和动画状态对象
Skeleton skeleton = new Skeleton(playerSkeletonData);
AnimationState animationState = new AnimationState(playerAnimationData);
  1. 每个update环节调用
animationState.update(delta);
animationState.apply(skeleton);
  1. reader
batch.begin();
skeletonRenderer.draw(batch, skeleton);
batch.end();

参考

About

Android 原生使用libgdx 加载 动画。以前做动画采用的都是采用序列帧播放的,如果动画播放的效果好,需要制作的序列帧图片比较多,图片的数量多会导致包体急剧增大,对于用户体验来说非常差. 这个时候Spine就发挥作用了,Spine目前广泛的应用在游戏开发或者APP中,做2D开发的。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published