DragonBone 换装

想要某一帧的截图应该分成两步来实现:

  1. 让 DragonBones 节点停留在需要的帧(这个可能要让 @superlancelot 来解答下了,怎么让 DragonBones 动画停留在某一帧)
  2. 通过代码对 DragonBones 节点进行截图。参考这个帖子(貌似只有 native 平台的截图功能):
    http://forum.cocos.com/t/creator/40750

这么做似乎太麻烦了 只想获取到当前来稍微做处理当做影子 比如序列帧则很方便取到当前帧

看机器人这个有这样的片段

可见display是一个节点,还能被添加到父节点中。。调试才发现其类型为ccsg_Node, 添加到cc_Node报错,那这两者有何关系呢?

另外还想了解是否可以做到把贴图变色 比如把一个白色贴图的人,被子弹打中时变成红色的人?

上次说的官方添加一个dragonBone的换装demo什么时候能出啊?想早点使用龙骨啊(真不是有心挖坟)

你好,这个demo已经做好了吗,我用你上面发的https://github.com/cocos-creator/example-cases/blob/master/assets/cases/dragonbones/DragonBonesCtrl.js#L249-L258 链接里面的方法设置过之后 插槽里面的图片还是没有更换呢,代码如下:
var armature = armatureDisplay.armature();
var foot = armature.getSlot(“zuojiao11”);
foot.setChildArmature(armature.getSlot(“youxie211”).getChildArmature());

各位好。我们最近有在实现一个类似 Egret demo 的换装示例。

与现在 example case 中切换武器的实现不同的是:这个换装示例是使用引擎内的 SpriteFrame 来进行换装,而不是在 DragonBones Atlas 中已经定义好的资源进行切换。

在实现过程中,发现换装后各个部件的位置出现了偏差。通过调试发现,这样换装需要底层的 runtime 进行一定的支持(需要更新 slot 的 pivotX 和 pivotY)。
我也咨询了 DragonBones 的开发人员。他们的反馈是:目前 runtime 正在升级到 5.0 版本中,在 5.0 版本的 runtime 中会增加一个基于 cocos2d-x 的换装 demo。届时我会参考这个 demo 来实现一份 Creator 中的换装 demo。

所以,现在还是只能以 example case 中的方式来实现换装效果。对此带来的不便,请谅解!

OK,到时候一定要第一时间通知我们哈。一直在等这个呢!

按照demo的做法,对一个有多个子骨架的slot进行替换子骨架,由于childArmature只指向当前的display对象,于是用了slot.display=x来切换,发现多次调用会出错。

求问下, slot.displayIndex = number ; 在web上支持正常,但是在模拟器显示无效果.
是 jsb的模式和web模式下 这个差异很大吗?
我只是想在找到的slot的displayList中切换.
但是web正常, 模拟器无效,报displayList为空.

模拟器打印 slot 输出 Simulator: —> [object CCSlot]
插槽中放了几个图.想切换的.

由于 C++ 和 js 语言特性的关系,DragonBones cpp runtime 和 js runtime 之间本身就存在一些差异。就 slot.displayIndex 这个用法来说。因为在 cpp 中,_displayIndex 是 protected 成员变量,不能直接设置值。需要调用 setDisplayIndex 函数来设置。你可以试试看。

好的.谢谢你了~~~

slot.display 可以设置的是 cc.Node 吗?

另 尝试 使用 setDisplay() 提示我需要2个参数,看了下cpp ,写的是 displayType ,请问这个 diaplayType是对应的什么?

hello,请问一下5.0DrangonBones库什么时候可以更新上来,我这边需求和他们差不多。有30多个人物,共用一套骨骼,按照现在的换装思路需要每个Slot放30个皮肤,这样明显不行,请问一下还有其他思路没有或者说可以自己使用Creator的SpriteFrame动态创建DrangonBones的Armature,看源码没有提供这样的方法,求思路啊

请问你在native下面setDisplay成功了么。具体怎么实现的?

你好,你这个使用引擎内的spriteFrame来对dragonBones进行的换装示例我可否看一下,我们美术把需要换装的纹理规格都做成一样大小的。应该可以绕开slot 的 pivotX 和 pivotY的不更新问题,我现在不太清楚如何把引擎内的spriteFrame 转化成draonBones slot上支持的纹理格式?

请问你现在解决了吗

大佬请问这个需求功能现在实现了吗 急用

请问你的问题解决了吗,我也遇到相同的问题

通过CCFactory源码可得,cocos SpriteFrame 与 龙骨图片格式的转换,只要 slot.display = new cc.Scale9Sprite( [SpriteFrame] ) 则可得,前提大小一样

大哥很感谢你的回复 我试了下在浏览器可以 原生平台就不行了 请问原生平台如何实现