cocos2dx从
编辑得到XML或JSON数据(在dranbones CocoStudio或Flash
插件),并调用下面的代码可以
显示动画效果
armaturedatamanager::getInstance()-> addarmaturefileinfoasync()
电枢 / 画完
这schedule_selector(testasynchronousloading::dataloaded));
*为nullptr电枢电枢;
电枢=电枢::创造(画);
电枢-> getanimation()-> playwithindex(1);
addChild(电枢);
那么通话的内部是怎么做的呢
电枢::什么创造和电枢-> getanimation()-> playwithindex都做了些什么这些文章将从源代码分析电枢。
这是电枢的分析的第一部分,这将对骨骼动画在cocos2dx作为一个整体,内容如下:
什么是骨骼动画
编辑器导出数据格式概览
源代码概述
什么是骨骼动画
游戏中的动画可以分为以下三种
类型:
帧动画
修补动画(吐温)
骨骼蒙皮动画
帧动画
这是最基本的动画,还有以下两个动画的基础上,一个框架中显示一张
图片,cocos2dx行动动画帧动画,优点是实现简单,缺点是浪费资源(一个框架,一个图片,然后接下来的两个动画)。
补动画
在Flash中,有很多互补的动画。它不需要一帧和一张图片。它只需要初始状态和结束状态,中间状态可以根据通道的不同和时间来计算,其优点是节省资源,艺术人员更熟悉它们。
骨骼蒙皮动画
骨骼动画可以作为修补动画的一种延伸,使动画的各个部分产生一个相关的结构(骨)然后将地图的骨架。缺点是,该计划的实施更为复杂,其优点是具有以下两点相比(其他优点没有找到暂时)。
1。导出
配置数据少,艺术制作简单。
假设有这样一个结构的骨架
体
armleft
handleft
armright
handright
头
legleft
legright
如果你想在动画中的一帧向右移动,动画的身体,armleft,legright等等所有的移动,
创建一个新的框架,只有骨骼动画的移动身体的
位置,移动节点将与父节点。在相应的配置、互补的动画要
处理来自所有子节点,如身体和armleft数据,而骨骼动画是唯一的身体,从节点的数据会小很多。
2。接头裂纹的修复
下面的图是偷来的游戏引擎架构的449页,这意味着如果艺术不注意画图时,有可能在关节
连接的裂缝。骨骼动画可以
解决这一问题,骨骼动画的皮肤可以根据重绑定到多个关节(骨),可拉伸的重量,CocoStudio骨骼动画编辑器并不陌生,更不能结合,Flash dranbones插件不做。脊柱有这多结合良好的
支持。
编辑器导出数据格式概览
从CocoStudio衍生的JSON结构类似于XML结构的dranbones出口,这是骨架层的三层结构,动画层和图片层。对dranbones官方演示为例。
它是骨骼的一部分,它对应于闪光的1个
区域,一层是骨头。
是动画部分,对应flash的2个方面,使用帧标签来区分哪种动画,如站立、行走、跳跃等。
它是骨骼的一部分,对应于闪光的3个区域,皮肤,即图片信息。
有了这些信息,你可以
恢复Flash动画效果,和DR,drtw,X,KX
是什么意思,KY等等。
源代码概述
代码可以分为两部分:解析XML或JSON数据和解析数据的动画。
数据解析相关代码的uml
对每个类的
作用的一般
介绍:
DataReaderHelper:解析数据结构armaturedata,animationdata和texturedata,电枢,动画和textureatlas可以直接生成。
armaturedatamanager:
管理datareaderhelper及其解析数据。
armaturedata:对应的XML。
animationdata:对应的XML。
TextureData: corresponding to the XML.
薄讷大塔:对应的XML。
显示数据:对应的XML。
行为特征:对应的XML。
movementbonedata:对应的XML。
framedata:对应的XML。
生成动画相关代码的UML
对每个类的作用的一般介绍:
电枢:包含骨架信息和动画信息,可以播放动画。
吐温:骨骼动画,骨架和吐温之间的补充。上面的闪光板是第一个到第七帧的看台动画的尾巴层。
armatureanimation:所有吐温收集足以动画。
骨骼:具有骨组织的骨架信息,从中可以得到一个时间点的骨状态。
displayfactory:造成皮肤和其他显示对象。
displaymanager:有一个管理对象上显示骨骨。
皮肤:图形的显示对象。
以上内容是小编
分享的cocos2dx骨骼动画电枢来源分析(一),我希望你喜欢它。