spine 换装接口 setAttachment

首先你在制作骨骼的时候,需要给一个 slot 设置多个 attachment,spine在一个时刻只会显示其中的一个 attachment,动态切换 attachment 调用 SkeletonRenderer::setAttachment接口。这个接口自动绑定并未提供,社区版手动绑定提供给开发者使用。

接口示例:(注:只有第一个参数时,表示去掉slot的Attachment,不显示图片)

local hero = sp.SkeletonAnimation:create("build_yellowlightfinished.json", "build_yellowlightfinished.atlas")
hero:setAttachment("changegun", "pc_gungirl_crossbow3")

c++:

SkeletonRenderer.cpp

bool SkeletonRenderer::setAttachment (const std::string& slotName, const std::string& attachmentName) {return spSkeleton_setAttachment(_skeleton, slotName.c_str(), attachmentName.empty() ? 0 : attachmentName.c_str()) ? true : false;
}

Skeleton.c

int spSkeleton_setAttachment (spSkeleton* self, const char* slotName, const char* attachmentName) {int i;for (i = 0; i < self->slotsCount; ++i) {spSlot *slot = self->slots[i];if (strcmp(slot->data->name, slotName) == 0) {if (!attachmentName)spSlot_setAttachment(slot, 0);else {spAttachment* attachment = spSkeleton_getAttachmentForSlotIndex(self, i, attachmentName);if (!attachment) return 0;spSlot_setAttachment(slot, attachment);}return 1;}}return 0;
}
void spSlot_setAttachment (spSlot* self, spAttachment* attachment) {if (attachment == self->attachment) return;CONST_CAST(spAttachment*, self->attachment) = attachment;SUB_CAST(_spSlot, self)->attachmentTime = self->bone->skeleton->time;self->attachmentVerticesCount = 0;
}

总结:

制作spine时 一个插槽slot上需要预制多个attachment附件,需要切换显示时 调用setAttachment方法,第一个参数slotName,第二个参数 attachmentName。

最终是spSlot对象 调用了spSlot_setAttachment方法。

spine 局部换装相关推荐

  1. Spine动画局部换装(切换武器)

    最近在用spine动画做微信小游戏,涉及到角色的武器升级后会切换到另一形态,就研究了一下spine的换装,搜了一些资料发现专门介绍的资料有点少,而且spine官网上说的也不太清楚,好在最后搞出来了,记 ...

  2. cocoscreator 中 spine局部换皮

    1 多attachment切换 let goblingirl = this.spine2.findSlot("left-arm");let attachment = gobling ...

  3. cocoscreator中spine局部换皮的探索

    1.需求情况 书之国中需要一个人物捏脸系统,要求可以让用户自由选择身体不同部位的形象,比如头发.眼睛.眉毛.上衣.裤子等.已经支持RegionAttacment和MeshAttachment,而且在r ...

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

    https://www.cnblogs.com/gamedaybyday/p/13021916.html Cocos Creator 龙骨DragonBones(导出骨骼/使用骨骼/局部换装/全局换装 ...

  5. Unity Spine 局部换皮

    1.Spine元素主要包含皮肤(Skin).骨骼(Bone).插槽(Slot).附件(Attachment).及附件下的图片. 2.而皮肤(Skin)包含了插槽信息.附件信息,如果我们有两套相同构成的 ...

  6. Cocos Creator 的 web/原生多平台 Spine 换装方案解析,附 Demo 源码

    引言:Spine 换装是游戏开发中的一种常见实现方案,本次,羽毛先生将介绍自己对整体换装和局部换装实现方案的探索与选择. 运行环境 Cocos Creator 3.5.2 web/native 需求 ...

  7. 换装心得-DragonBones

    换装层级遮挡处理1 场景举例:     手握武器,剑柄在大拇指和四指之间.     这时处理方式是把拇指和四指分两部分,程序单独调整层级(setChildIndex) 换装层级遮挡处理2 场景举例: ...

  8. laya龙骨换装_分享:Dragonbones/Spine的换肤操作

    目前LayaAir下支持龙骨的局部换肤(根据插槽索引换肤.根据插槽name换肤.纹理换肤.网格换肤).全局换肤 需注意: 1.Dragonbones不支持全局换肤,Spine支持全局换肤 2.使用到I ...

  9. 关于cocos creator换装功能的实践与思考

    2019独角兽企业重金招聘Python工程师标准>>> 最近在做一个基于cocos creator的微信小游戏,其中一个主要的功能是给角色进行换装.先来说下开发环境: cocos c ...

  10. spine 动态换皮功能

    前言: cocos2dx 中spine 的换皮功能是一种静态的方法,也就是在创建 spine 动画的时候就必须将所有的皮肤全部加载,然后在代码中直接换皮,并且这种换皮是整体的切换,对于我们实际开发中这 ...

最新文章

  1. Linux 播号上网
  2. 杂记整理二:linux与程序安装
  3. Struts2配置文件中传递参数的一个小问题
  4. c language compile process.
  5. android 滑动接听源码,android仿摩拜单车APP、炫酷RecyclerView、卡片滑动、仿饿了么点餐、自定义索引等源码...
  6. swift java_swift语法和java的比较
  7. 联发科完成双模芯片实验室测试 首批5G终端明年一季度问世
  8. 好东西!适合电商促销C4D场景模型海报素材!
  9. UI登录表单使用模板素材
  10. 在vmware server中部署linux redhat 5.4 ORACLE RAC11g +ASM
  11. [Noip2007]Core树网的核
  12. webpack+vue动态加载组件尝试
  13. linux 在字符界面中如何查看超出屏幕显示范围的内容
  14. 手机连上蓝牙耳机没有声音
  15. pytorch geometric GraphSAGE代码样例reddit和ogbn_products_sage,为何subgraph_loader将sizes设成[-1]
  16. GCC编译器和CC编译器的区别
  17. Python爬虫之bili站的正确打开方式
  18. 长沙十大情调情侣约会餐厅,你们去过哪几家?
  19. Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db_wal和.db_shm文件
  20. IE浏览器下载文件会自动打开,无弹框保存

热门文章

  1. BPM实例分享——金额规则大写
  2. 职场职位缩写 PM,TM,PL,TL,SE,PG,CEO,CFO
  3. iPhone7 plus分辨率行不行
  4. 第1章 Cookie模拟登录(1.1 模拟登录的原理)
  5. 关于电子计算机的热点,计算机如何成为热点? 8台计算机wifi热点软件推荐
  6. 基于routeros的ADSL带宽叠加
  7. 威廉玛丽学院计算机专业好吗,威廉玛丽学院计算机
  8. SharePoint 2013 图文开发系列之列表定义高级篇
  9. 互联网巨头开放给创业者的新机会!
  10. python创建一个列表、用于存储同学姓名_python学习日记04,Python