本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/cocosbuilder/1061.html

          ☞ 点击订阅 ☜
 本博客最新动态!及时将最新博文通知您!

关于CocosBuilder 已经成为cocos2d、cocos2dx的官方编辑器,主要作用是场景编辑器、新版本中还已经支持了骨骼动画。【对于CocosBuilder Himi最新书籍中也有讲述】

对于骨骼动画,其实类似动作编辑器,将图的切片组成一帧,然后设置时间轴事件(序列动画),[动编里则是将每一帧按照一定的时间进行播放],多的不说了,对于动作编辑器、切片等都不太熟悉的童鞋请自行搜索相关文章吧,下面进行本篇的内容。

     首先声明:最新的cocosbuilder 与 coco2d 、cocos2dx联合发布了新版,所以!对于使用最新的cocos2d-2.1beta3-x-2.1.0  的童鞋,请你下载最新的cocosbuilder 3.0 alpha版本!

cocosbuilder 下载地址: http://cocosbuilder.com/?page_id=11

(细心的童鞋应该知道,Himi博客最下方的“友情链接”里很多有用的地址的说)

下载好最新的3.0 cocosbuilder ,那么请打开它,然后我们进行创建一个骨骼动画吧:

1.  首先创建一个项目,在cocosbuilder中的菜单一栏选择“File”-“New Project”,如下图:

2. 继续创建一个我们的骨骼动画的子节点“,选择“FIle”-“New File”,如下图:

选中后进入如下页面:

这里,我们选择CCNode 节点,然后将“Full screen”的勾选去掉,我们不需要全屏。

点击“Create”后,会要求你选择存放目录,这里可能会出现如下提示:

如果出现这个提示是要求你设置配置一些路径,解决方案:

1)配置“File”-“Project Settings…”的路径

2)直接将创建的CCNode放在你创建cocosbuilder目录的Resources目录下即可,如下图:

以上步骤创建好后则如下图所示:

这里需要注意的是,当你创建一个Project时,这里默认会有cocosbuilder的例子相关文件:

ccbResources 文件夹、clikme-down.png、clime.png、MainScene.ccb、MainScene.js,

我们将这些都删掉,让童鞋们更容易理解。(删除操作去目录下删除吧)

另外,animated-grossini.plist 以及 animated-grossini.png 是打包好的骨骼碎片,如下图

对于碎图整理打包,Himi推荐使用TexturePackage (TP),博客最下方有其地址(收费)

3. 当一个plist 、png的资源放入cocosbuilder中,默认此plist文件可以点开,并且对其中的每个碎图进行拖拽,如下图所示:

下面我们就将plist下的每个图都拖拽到“骨骼动画视图”中吧,然后拼成一个小人,如下图:

4. OK,继续,我们调整时间轴将其调整到1秒的位置,然后我们选中小人的头部!然后在cocosbuilder的菜单项中选择“Animation”-“Insert KeyFrame”,如下图:

然后调整其切片属性的角度为90度,重复上述的步骤,将时间轴调回到0秒初始时,设置其头部角度为0度,完成后如下图:

童鞋们点击下播放试试效果吧,是不是很嗨皮~有意思吧。

当然你也可以在同一时间让当前帧或者其他切片一些操作例如缩放、平移、透明度、颜色等。

5.下面对整个动画进行整体的调整设置吧:

默认创建的动作都是10秒的周期,利用Set TimeLine Duration设置周期即可。

这里我们再简单设置下动作的名字吧:
选择“Edit TimeLines…”,出现如下界面:

TimeLine Name :动作列表(默认名字为:Untitled Timeline  ,这里改成wave)

Duration:完成这个动作所需的时间

Autoplay:是否自动播放

需要提醒的是,如下图:

   上图中的红色标记是表示“选择当前动作播放完成后,继续播放的下一个动作” 用以完成连贯动作。

6. 最后一步是将编辑好的骨骼动作,编译称cbbi文件吧:

选择cocosbilder菜单栏“FIle”-“Publish”   ,如下图:

然后你将在你的项目文件夹中看到编译后的两个文件夹,“Published-iOS”、“Published-HTML5” 如下图所示:

Published-HTML5给HTML项目用的这里我们看 “Published-iOS”这个文件夹,这个文件夹中除了我们自己的plist与png资源文件外,还有一个编辑出来的切片动作信息文件ccbi文件,main.js也不用管,我们直接将如下三个文件拷贝到我们的cocos2dx项目中并且添加到项目中:

animated-grossini.plist、animated-grossini.png、TestAni.ccbi

下面我们来书写使用代码段吧,直接上代码了,比较简单:

先导入头文件:

1
2
#include "cocos-ext.h"
using namespace cocos2d::extension;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//----------------CocosBuilder 骨骼动画----------------
/* 创建一个自动释放的 Node 加载库 */
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
 
/* 创建一个 CCBReader,并设置自动释放 */
cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
ccbReader->autorelease();
 
/*读取一个ccbi的文件,生成一个CCNode实例*/
CCNode *animationsTest = ccbReader->readNodeGraphFromFile("TestAni.ccbi", this);
//设置坐标
animationsTest->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width*0.5,260));
if(animationsTest != NULL) {
    this->addChild(animationsTest);
}

1
 

以上代码注释的比较清楚了,是从ccbi文件中将我们创建的骨骼动画解析读取出来,然后返回一个CCNode对象

下面我们让其进行动画的播放:

1
2
//播放一个动作:根据动作名称进行播放
    ccbReader->getAnimationManager()->runAnimationsForSequenceNamed("wave");

以上的ccbReader是我们通过ccbi读取获取到的一个实例对象,这里放置了我们编辑所有动画序列,所有动作,另外当我们ccbi中有N个动作的话,那么这N个动作的下标默认:0,1,2,3,4,5….n-1

因此我们还可以利用动作下标进行播放动作:

1
ccbReader->getAnimationManager()->runAnimationsForSequenceIdTweenDuration(0, 0.3f);

这里Himi也顺便将动作的名字、周期时间、下标都打印出来供大家参考:

1
2
3
4
5
6
7
8
9
10
11
//获取所有的动作序列
CCArray* allSeq = ccbReader->getAnimationManager()->getSequences();
 
for (int i=0; i<allSeq->count(); i++) {
    //获取到每一个Seq
    CCBSequence* everySeq = (CCBSequence*)allSeq->objectAtIndex(i);
    //获取每个序列动作周期、名字以及id
    everySeq->getDuration();
    everySeq->getName();
    everySeq->getSequenceId();
}

OK,基本上比较easy,下面是运行效果图与源码和资源下载地址:

资源与项目下载地址:   http://vdisk.weibo.com/s/kCT5z

【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画相关推荐

  1. 【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder完成骨骼动画

    关于CocosBuilder 已经成为cocos2d.cocos2dx的官方编辑器,主要作用是场景编辑器.新版本中还已经支持了骨骼动画.[对于CocosBuilder Himi最新书籍中也有讲述] 对 ...

  2. 【车载开发系列】UDS诊断---DTC故障码基础回顾

    [车载开发系列]UDS诊断-DTC故障码基础回顾 UDS诊断---DTC故障码基础回顾 [车载开发系列]UDS诊断---DTC故障码基础回顾 一.什么是DTC故障码 二.DTC故障码的作用 三.什么是 ...

  3. BizTalk开发系列(九) MAP的连接方法

    更多内容请查看:BizTalk动手实验系列目录                       BizTalk 开发系列 BizTalk中的Map编辑器可以在源架构和目标架构创建连接.有三种创建连接的方式 ...

  4. Linux驱动视频教程推荐,隆重推荐:linux驱动基础开发系列免费教程独家版本

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 相信大家经常网上闲逛,会经常碰到很多的linux免费教程之类得,但是今天我推荐的这个linux驱动基础开发系列免费教程可不是网上可以随意找到得.废话少说: ...

  5. 【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)

    这是答应大家的讲解骨骼动画的文章的N部曲的第二篇.这篇文章里,我们对现行的三种模型动画技术进行了概述,然后对X文件构成进行了详细的剖析,最后放出了骨骼动画的第一个示例程序,载入了<诛仙>中 ...

  6. 【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8832812 作者:毛星云(浅墨 ...

  7. Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

    2019独角兽企业重金招聘Python工程师标准>>> 感谢听D同学赞助的Demo. 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2\tools\project-cr ...

  8. Cocos2dx游戏开发系列笔记3:牛刀小试-忍者飞镖射幽灵的Demo

    2019独角兽企业重金招聘Python工程师标准>>> 就是这个例子,应该很简单,主要用到的有:精灵的移动,触摸,碰撞检测. 赶紧搞定,待会还要陪哲哲来几局爱消除. 首先在Scene ...

  9. Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

    2019独角兽企业重金招聘Python工程师标准>>> 又是一个愉快的夜晚 还是那张长长的工作桌 哲哲在左边做一个香云纱手包 骨头在这里噼里啪啦的解刨 pad里放着<赢在中国& ...

最新文章

  1. ubuntu系统初始化
  2. JS实现md5.js、md4.js、sha1.js 加密算法使用
  3. 安装iis 配置iis
  4. 华北科技学院计算机期末考试,华北科技学院 专业计算机 考试专用
  5. Android 获得ImageView中Image的绘制大小
  6. LintCode 生成括号
  7. vitual dom实现(转)
  8. 哈工大期末考试java_哈尔滨工业大学2019算法设计期末试题
  9. 现代电工技术实训考核装置
  10. 计算机cpu 显卡的作用是什么,显卡的作用是什么 显卡简介【图文详解】
  11. git中staged 和 unstaged的区别
  12. gbk2312拼音表 按词频排好序的
  13. RocketMQ系列---消息消费者及消费方式
  14. React Native学习速记
  15. 亚马逊高级产品总监徐霄鹏:如何对不同用户群体采取差异化运营
  16. 数控木雕机器雕工艺品
  17. el-table根据数据某个属性不同,做斑马纹,设置表格行样式
  18. Ubuntu下安装Python
  19. css sass的@mixin 与 @include引用
  20. uvaoj 10815 Andy's First Dictionary set的基本使用

热门文章

  1. 保姆级教程:顶会论文写作指南
  2. 短信平台专业版软件客户端功能详解源码搭建|移讯云短信系统
  3. 遗传算法的交叉变异操作杂记
  4. 怎样用matlab做复数运算,MATLAB面向复数运算的设计.doc
  5. abaqus应力值导出并进行后处理(同一节点多个应力值如何处理?)
  6. 浮点数的表示方法及换算技巧
  7. python基于PHP+MySQL的药店药品进销存管理系统
  8. 基于最大似然估计(matlab实验)
  9. 计算机cpu的速度越来越快 这导致,计算机一级笔试模拟题(1-6)
  10. linux bash 漏洞修复方法