2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!

        首先声明,我不是第一个做出类似查看器的首作者,我所知道的首作者是johance,以下是它在cocoschina发布的贴子。


        分享 刀塔查看器Flash導出版本(帶詳細解析說明)和Flash導入導出批處理文件
        http://www.cocoachina.com/bbs/read.php?tid-219173.html


        贴子里面描述了《刀塔传奇》骨骼动画的文件格式,我是参考这个文件格式写出来的。我的实现思路是将*.fca文件转换成DragonBonesCPP所需要的格式,然后就可以通过DragonBonesCPP播放出来了。注意这里没有转换成DragonBonesCPP的skeleton.xml,而是直接转换成了DragonBonesCPP解析skeleton.xml后的数据结构,免去了中间环节。当然你也可以通过我实现的代码接口导出DragonBonesCPP的三个文件sheet.pvr、texture.xml、skeleton.xml,然后像平时使用DragonBonesCPP的那样来加载播放,这样可以避免加载时转换,效率更高。


        *.fca文件是一个zip压缩包,将其用WinRAR解压缩出来后,可以得到cha、plist、sheet.pvr三个文件,其中sheet.pvr是纹量集图片,包含了该角色使用的所有骨骼碎图。plist是纹量集的骨骼碎图描述文件,描述了每个骨骼碎图在sheet.pvr大图中的坐标、大小等区域信息。cha是骨骼动画数据文件,其格式如下所述。


cha格式:


声明:
以下格式来自于johance公布的贴子,只做了少量修饰和补充。


{}表示一个数据结构,带...表示有多个数据结构。


角色名称长度(4B)
角色名称 不包含"\0"
骨骼数量(4B)
{
        骨骼名称长度(4B)
        骨骼名称
        骨骼图片文件名长度(4B)
        骨骼图片文件名
        骨骼索引(4B)
}...
动画个数(4B)
{
        动画名称长度(4B)
        动画名称
        未知数据(4B) 固定为0x41c00000
        动画帧数(4B)
        {
                帧类型(4B)
                {
                        //  帧类型为1时才需要解析这个结构,否则跳过这个结构
                       未知数据1(4B)
                       声音文件名称长度(4B)
                       声音文件名称
                       未知声音数据(32B)
                       未知数据2(4B)
               }
               当前帧使用的骨骼数量(4B)
               {
                       骨骼索引(2B)
                       透明度(1B)
                       a、b、c、d、tx、ty(类似Flash中的Matrix的6个float)
               }...
         }...
}...

类似Flash中的Matrix的6个float的详细含义请参考以下文章和AS代码。

as3中Matrix详解
http://wgcode.iteye.com/blog/838550


MatrixTransformer.as:

public static function getScaleX(m:Matrix):Number
{
    return Math.sqrt(m.a*m.a + m.b*m.b);
}


public static function getScaleY(m:Matrix):Number
{
    return Math.sqrt(m.c*m.c + m.d*m.d);
}


public static function getSkewX(m:Matrix):Number
{
    return Math.atan2(-m.c, m.d) * (180/Math.PI);
}


public static function getSkewY(m:Matrix):Number
{
    return Math.atan2(m.b, m.a) * (180/Math.PI);
}


《刀塔传奇》骨骼动画查看器:



《刀塔传奇》山寨版(未完成,将在之后一段时间再开源):




开发环境:
Cocos2d-x-3.3 Final

DragonBonesCPP


Windows安装包下载地址:

http://pan.baidu.com/s/1dDyBu85


Android安装包下载地址:

http://pan.baidu.com/s/1rVOCI


资源下载地址:

http://pan.baidu.com/s/14NgoI


项目地址:

https://github.com/zym2014/DotaSkeletonAnim



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值