【入门】2D游戏骨骼动画简介

发表于2015-04-29
评论2 1.09w浏览

.大概介绍下

2D骨骼动画将动画对象抽象出拆分成一个个有层级关系的骨骼

骨骼上绑定对应的部件贴图

通过对各个骨骼在关键进行移动,缩放,旋转等操作

来实现动画对象的行为动画效果

 

市面上最爱使用2D骨骼动画做游戏的公司非Vanillaware莫属,他们开发了一系列画面表现异常惊艳的2D游戏,诸如<村正><奥丁领域><龙之皇冠>等,

 http://km.oa.com/files/post_photo/935/190935/22f0eba618523912699d1854779ddeef.jpg

http://km.oa.com/files/photos/pictures/201402/1392613759_47.jpg

http://km.oa.com/files/photos/pictures/201402/1392613785_69.gifhttp://km.oa.com/files/photos/pictures/201402/1392613806_69.gif

http://km.oa.com/files/photos/pictures/201402/1392613815_22.gifhttp://km.oa.com/files/photos/pictures/201402/1392613827_3.gif

除了他们,ubi也有一套支持骨骼动画的开发工具ubiart framework开发了诸多游戏,如雷曼:起源等

http://km.oa.com/files/photos/pictures/201402/1392613847_10.jpg

同目前主流的序列动画相比,使用骨骼动画的优点是能用最少的资源量实现更加流畅的动作效果,并且能够更加容易实现换装等操作,缺点在于运用范围有些有限,程序运行时多了额外的运算量,同时增加了美术编辑角色动作的难度。

 

二.骨骼动画的实现原理

首先需要定义好骨骼动画的格式,参考dragon bones和 cocos2dx的骨骼动画格式,基本可以知道一个基本的骨骼动画文件应当包含哪些信息。

数据分为三部分,第一部分是骨骼的数据,第二部分是动画的数据,第三部分是纹理贴图数据,第三部分部分引擎也许并不需要。

http://km.oa.com/files/photos/pictures/201402/1392613913_11.jpg

http://km.oa.com/files/photos/pictures/201402/1392613925_53.jpg

http://km.oa.com/files/photos/pictures/201402/1392613936_3.jpg

 

了解骨骼文件的格式后,我们需要把骨骼文件加载进来并使用他,具体内部逻辑其实不复杂,每一帧的时候根据插值计算的结果确定每个骨骼的位置,并递归子骨骼,算好所有各个的位置,并更新绑定在该骨骼上的贴图位置即可,具体代码可以参考cocos2dx的一个实现:

http://km.oa.com/files/photos/pictures/201402/1392613959_30.jpg

http://km.oa.com/files/photos/pictures/201402/1392613972_59.jpg

三.工具介绍

       下面介绍部分常见的2D骨骼动画编辑工具

      

DragonBones

              URL: https://github.com/DragonBones

http://km.oa.com/files/photos/pictures/201402/1392614175_5.jpg

特点:

开源,免费

基于Flash Pro的骨骼动画编辑SkeletonAnimationDesignPanel

骨骼动画Actionnoxss框架,完美结合starling

多种文件导出格式,并支持导入spine的文件

 

Spine

URL: http://zh.esotericsoftware.com/

http://km.oa.com/files/photos/pictures/201402/1392614224_6.png

特点:

收费,来自kickstarter众筹发展

支持Runtime较多

unity,cocos2dx,xna,starling

文档不足

Cocostudio

URL: http://www.cocos.com/downloads/

http://km.oa.com/files/photos/pictures/201402/1392614253_88.jpg

特点:

包括骨骼动画编辑器,UI编辑器,场景编辑器,数据编辑器等工具

免费,暂不开源

支持导入DragonBones和flash动画

和cocos2dx完美结合,cocos2dx后续发展重点之一

 

Uni2d

URL: http://www.uni2d-plugin.com/

http://km.oa.com/files/photos/pictures/201402/1392614288_3.jpg

特点:

unity的一个插件

功能强大,支持不规则碰撞检测

 

四.其他

单纯的骨骼动画和单纯的序列动画都各有优缺点,比如Vanillaware做的游戏里角色动画,其实是包含了两种技术融合,比如下面这个动画

http://km.oa.com/files/photos/pictures/201402/1392614307_61.gif

我们可以看到那个飘动的披风实际上就是一个序列动画,他们把序列动画作为了骨骼上的一个贴图使用。

 

另外有些动画效果还可以适当使用网格动画,也能取得不错效果

网格动画编辑工具:

http://km.oa.com/files/photos/pictures/201402/1392614327_21.jpg

效果图:

不过继续扯下去说的东西都和2D骨骼没啥关系了,略跑题。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引