Egret社区

问个关于换装的问题

2016-11-25 15:38
53857
才开始接触dragonBone,很多东西不是很了解。请问一下,动态换装该怎么弄。我看了下教程里面的方法
var image = this.factory.getTextureDisplay(textureName);//创建新的图片用于换装var slot: dragonBones.Slot = this.armature.getSlot("clothes");//找到包含要换装的图片的插槽
slot.setDisplay(image);//替换插槽的显示对象这里创建image,传入的是textureName,是不是说纹理图集资源必须要提前导入到对应的工程里面。或者说对应的纹理图集怎么获取。能不能我自己给它传一个texture纹理进去?
说再明白点就是我想把一个骨骼里面的一个slot的贴图换成我自己动态提供的图片资源,该怎么弄?求指教
分享到 :
0 人收藏

7 个回复

倒序浏览
gongziyuxiao  初学乍练 | 2016-11-25 16:28:07
补充一下,上面说的也就是怎样以单独从其他图片文件中构造Image
sucresk  官方团队 | 2016-11-25 18:14:01
可以参考这个例子,里面代码什么的都很清楚 。
sucresk  官方团队 | 2016-11-25 18:14:04
可以参考这个例子,里面代码什么的都很清楚 。http://developer.egret.com/cn/ex ... #160-db-change-disp
superlancelot  超级斑竹 | 2016-11-30 13:45:36
DragonBones 提供了多种换装解决方案,应对不用的需求:

1.静态换装 vs 动态换装
如果换装的素材是固定的,可以预先放置在插槽里,通过切换插槽的displayIndex实现换装。displayIndex的切换既可以在dbpro中有设计师完成,也可以由程序员通过代码完成。
如果换装的素材是不固定的,需要动态获取资源,可以基于不同的需求从以下两种方法中选择一个:
-需求1:如果要换的图片和原图大小和位置一致,可以通过.slot.setDisplay()实现换一张图,或者直接设置slot.displayList,可以一次换一组序列图。
-需求2:如果要换的图片和原图大小或位置不一致,则需要通过轴点对位避免位置偏移。实现的方法是在DBPro中新建一个基本动画元件,将要换的图片放到该元件中,通过轴点工具设置好轴点,再导出成db的纹理集。换之前需要将这个纹理集加到db的Factory里,并通过factory.replaceSlotDisplay ()实现换装。

2.要换的部位是否包含动画
如果换装的部位不包含动画,则可以使用图片做为换装素材,具体实现方法之前已经说过。
如果换装的部位包含动画,则可以使用子骨架做为换装的素材,API调用方法和换图片是一样的,只不过换进去的是子骨架的显示对象,在引擎层面,图片和子骨架的显示对象都是显示对象,所以处理起来是一样的,唯一不同的是子骨架不需要考虑轴点,也不能重新设置轴点,因为他自身有动画数据相当于已经包含轴点信息。具体实现方案参见db官方案例。

3.局部换vs全部换
之前说的都是局部换装,替换的是纹理集中的一块子纹理,如果希望一次性替换整个纹理集也是支持的。但是纹理集的配置文件不能换(如果配置文件也要换的话,就直接重新构建骨架就好了)
也就是说游戏中可以有一套纹理集配置文件对应多个纹理集图片,实现配置文件不变的情况下换整个纹理集。利用这个技术可以实现例如格斗游戏中同样的角色穿不同颜色的衣服的效果。
也可以实现游戏中的延迟加载。例如纹理集图片较大,加载较慢,可以先构建骨架,填充空纹理集或者替代纹理集,等真正的纹理集加载完毕后再替换。
具体方法参考官方文档。

4.换mesh与mesh换图。
和图片及子骨架一样,mesh也是slot的display,也是可以和图片一样换的。除此之外,mesh还支持在保持布点信息和动画信息不变的情况下切换里面的纹理图。也就是换mesh.texture。方法是调用factory.replaceSlotDisplay()
michael1995  初学乍练 | 2017-10-11 17:23:34
superlancelot 发表于 2016-11-30 13:45
DragonBones 提供了多种换装解决方案,应对不用的需求:

1.静态换装 vs 动态换装

我自己动态提供的图片资源路径怎么写
michael1995  初学乍练 | 2017-10-11 17:23:40
superlancelot 发表于 2016-11-30 13:45
DragonBones 提供了多种换装解决方案,应对不用的需求:

1.静态换装 vs 动态换装

我自己动态提供的图片资源路径怎么写
lhf  登堂入室 | 2018-6-5 14:55:45
superlancelot 发表于 2016-11-30 13:45
DragonBones 提供了多种换装解决方案,应对不用的需求:

1.静态换装 vs 动态换装

666 非常感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部