DragonBones作为独立骨骼动画体系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DragonBones作为独立骨骼动画体系相关的知识,希望对你有一定的参考价值。

除了常规的骨骼动画制作的功能外,它突出的功能有哪些?

~重要功能方面DragonBones Pro最重要的功能是时间轴(TimeLine),其次是骨骼体系,比较重要的功能就是骨架嵌套,以及支持同骨骼的序列帧动画。再次是反向动力学约束的功能,这是动画制作常用的功能但是DB做得感觉更出色。据说下一个版本会推出蒙皮动画功能,这个很多用DragonBones的已经讨论有一段时间啦。 参考技术A DragonBones Pro这个独立骨骼动画编辑器,实际上也即是设计师工具。它具备目前动画师需要的几乎所有功能,而除了上楼同学说到的重要功能之外,DragonBones最大的特点毫无疑问是可视化编辑,如同PS一样,动画师在制作动画的过程中能够做到所见即所得。作为一个DragonBones老用户再多说点儿,我已经用DragonBones做过广告动画了,效果还不错,所以它其实不只是单纯的用于游戏动画制作。

DragonBones龙骨骨骼中的自定义事件(另有声音动画事件)

参考:

DragonBones骨骼动画事件系统详解

 

一、在DragonBones中添加自定义事件帧

动画制作时

时间轴拉到最下面有一个事件层,添加一个事件帧

左边属性面板定义自定义事件

技术分享图片

 

二、Egret中监听事件

新建一个测试用骨骼动画test

//新建测试用骨骼动画
let armatureDisplay:dragonBones.EgretArmatureDisplay;
let factory = dragonBones.EgretFactory.factory;
factory.parseDragonBonesData(RES.getRes("test_ske_dbbin"));
factory.parseTextureAtlasData(RES.getRes("test_tex_json"), RES.getRes("test_tex_png"));
armatureDisplay = factory.buildArmatureDisplay("test");
armatureDisplay.animation.play("testAction");
//监听帧事件
armatureDisplay.addEvent(dragonBones.EgretEvent.FRAME_EVENT, this.onFrameEvent, this);

  

 

//处理帧事件
public onFrameEvent(e:dragonBones.FrameEvent){
	if(e.frameLabel == "push_complete"){
	  console.log("AAAAAA:", e.frameLabel);
	}
}

 

输出

技术分享图片

 

  

三、声音事件

 

技术分享图片

 

监听声音事件,声音事件并不需要像自定义事件一样使用armatureDisplay来监听。

dragonBones.SoundEventManager.getInstance().addEventListener( dragonBones.SoundEvent.SOUND, this.sound_event,this);

 

声音事件处理  

private sound_event(evt:dragonBones.SoundEvent)
{
    console.log( "armature 要播放声音啦!声音的值为:",evt.sound);
}

 

输出:

技术分享图片

 

四、添加动画控制

 

技术分享图片

 

 这个貌似没有事件监听,只是播放到该帧时,跳转播放另一个动画。你可以在这里选择跳转到哪个动画。

技术分享图片

 

以上是关于DragonBones作为独立骨骼动画体系的主要内容,如果未能解决你的问题,请参考以下文章

2D骨骼动画工具DragonBones的使用教程

DragonBones龙骨骨骼中的自定义事件(另有声音动画事件)

Cocos Creator 龙骨DragonBones(导出骨骼/使用骨骼/局部换装/全局换装)

DragonBones帧动画骨骼json极速二进制区别

咸鱼教程DragonBones帧动画骨骼json极速二进制

DragonBones的下载和安装