龙骨动画--播放龙骨动画

认识DragonBones动画

DragonBones动画几乎可以用于几乎目前所有的主流游戏引擎和变成语言,如egret,unity,cocos2d-x等。DragonBones提供的api可以支持在以上游戏开发工具中直接访问骨骼、附件、皮肤、动画,操作骨骼组合动画以及创造淡入淡出的效果。
具体的支持库可以看这里:https://github.com/DragonBones
不过很长时间不再更新了,希望还会继续更新维护下去。

认识DragonBonesPro制作的动画资源

DragonBones资源,主要包括显示数据和各种骨骼动画的控制数据。


image.png

egret项目中如何将骨骼动画显示在舞台上

第一步,将骨骼动画的数据上图的3个文件添加到default.res.json资源管理器中;
第二步,将骨骼动画的数据加载到内存中;
        var dbData = RES.getRes("theElf_ske_json");
        var texData = RES.getRes("theElf_tex_json");
        var tex = RES.getRes("theElf_tex_png");
第三步,创建骨骼动画工程,然后加骨骼动画的数据添加到工程中
//方法1
var dbFactory:dragonBones.EgretFactory = dragonBones.EgretFactory.factory;

//方法2
let factory:dragonBones.EgretFactory = new dragonBones.EgretFactory();
factory.parseDragonBonesData(dbData1);
factory.parseTextureAtlasData(texData1,tex1);
第四步,获取骨架显示对象并添加到舞台上

数据准备好了,我们需要从中提取出需要的骨架系统,一种角色对应一套骨架,当我们需要显示某种角色的,首先将其Dragonbones资源解析到工厂中,然后变可以轻易的使用工厂建立一套骨架,用于显示对应的角色了。
工厂是根据骨架名字来建立骨架的,骨架可以理解为是某种角色的控制中心,但是骨架不是直接的显示对象,而是通过骨架显示对象显示在舞台上的
获取骨架显示对象 方法1

let ar1:dragonBones.EgretArmatureDisplay = factory.buildArmatureDisplay("elf");
this.addChild(ar1);

获取骨架显示对象 方法2

this.armature = this.factory.buildArmature("Dragon");
this.armatureClip = this.armature.getDisplay();
this.addChild(this.armatureClip);
第六步,播放一个骨骼动画中的动作
//-1 是按照动画设计中的播放次数  0  是循环播放  >1播放指定的次数
armatureDisplay.animation.play("walk",0)

armature.animation.play("walk",0)

ps:walk是在编辑骨骼动画阶段就定好的。
DragonBones对动作推进使用了一个时钟管理WorldClock,但新的dragonBones.EgretArmatureDisplay对象会自动绑定WroldClock,已经无需手动添加。

你可能感兴趣的:(龙骨动画--播放龙骨动画)