【官方教程】《捕鱼达人3》系列1:加载鱼的模型和播放动画

大家好,相信许多朋友们都听过或玩过《捕鱼达人》这款游戏。今年7 月中旬,《捕鱼达人3》正式发布,24小时就突破实现1千万下载,欢迎大家一起来下载试玩!

本次《捕鱼达人3》采用了Cocos2d-x 3.x版本中的3D功能来进行开发,实现了完全的3D化。作为一款支撑了无数2D游戏产品的引擎,Cocos2d-x本次也将带来3D方面的功能扩展,帮助广大Cocos2d-x开发者快速进入3D游戏产品的研发时代。

下面,我们就以《捕鱼达人3》作为案例,讲解一下如何使用Cocos2d-x 3.2来实现其中的3D技术。此次系列教材将分为四大节,从8月7日期每天发布一节,让大家有更充裕的时间消化内容。下面让我们进入正题吧!

在进行3D游戏的开发时,模型的加载和骨骼动画的播放是最基础也是最重要的工作内容。在《捕鱼达人3》中,每一条鱼都是美术师在3ds max或maya等3D建模软件中进行模型和骨骼动画的建立,最终导出为通用的模型文件格式.fbx。并通过Cocos2d-x所附带的转换工具fbx-conv.exe将它转换为可以加载到Cocos2d-x中进行显示和播放的文件格式。这个文件格式有两种类型,一个是c3t,即文本格式的模型文件,另一个是c3b,即二进制格式的模型文件。

在使用Cocos2d-x进行2D游戏的开发时,我们最常用的一个类是Sprite,即“图片精灵”,对于精灵的动画操作,只需要精灵调用相应的 Action就可以了。 为方便快速地进行3D游戏的开发,Cocos2d-x引擎也提供了相应的3D的精灵类和播放骨骼动画的Action,下面我们用《捕鱼达人3》中的乌龟模型来演示一下这个过程:

首先,打开Cocos2d-x 3.x,拷贝一份ccp-empty-test设为当前项目,然后我们在Class目录中建立一个基于Layer派生出的层用于我们的演示,这里我们将其命名为FishLayer。

我们在这个层里加入相应的精灵成员和相应的动作。

//这是用于显示3D鱼模型的层

class FishLayer : public cocos2d::Layer

{

public:

//初始化当前层

virtual bool init();

CREATE_FUNC(FishLayer);

protected:

//鱼精灵

cocos2d::Sprite3D* _sprite;

//向前游的动作

cocos2d::Animate3D* _swim;

//受伤的动作

cocos2d::Animate3D* _hurt;

}

;

然后,我们在层的初始化函数中加入精灵的创建代码:

bool FishLayer::init()

{

//加载模型文件

std::string fileName = "tortoise.c3b";

_sprite = Sprite3D::create(fileName);

_sprite->setScale(0.1f);

auto s = Director::getInstance()->getWinSize();

_sprite->setPosition(Vec2(s.width * 4.f / 5.f, s.height / 2.f));

addChild(_sprite);

//获取骨骼动画信息

auto animation = Animation3D::create(fileName);

if (animation)

{

//从起始到1.933秒截取为游泳动作

_swim = Animate3D::create(animation, 0.f, 1.933f);

_swim->retain();

//从1.933秒到2.8秒截取为受伤的动作

_hurt = Animate3D::create(animation, 1.933f, 2.8f);

_hurt->retain();

//让精灵循环播放游泳和的受伤动作

Sequence* pSequence = Sequence::create(_swim,_hurt,NULL);

_sprite->runAction(RepeatForever::create(pSequence));

}

return true;

}

我们将模型资源tortoise.c3b和用到的贴图tortoise.png以及背景图Sea.jpg放到资源目录下,运行程序,这时就可以看到乌龟显示在屏幕中了,它向前游动一下后会播放受伤的动作,这样不停的循环。

31fc1cf27ac14c4e4bb80a4c6474b241.jpeg

这样,我们就使用Cocos2d-x进行了3D模型的加载显示,是不是很简单呢?下一节,我们将学习如何为鱼身上增加波纹,增强鱼在水下的真实感。

有对Cocos引擎3D技术感兴趣的X-Men,欢迎联系官方团队,参与探讨并获取技术支持。技术交流邮箱:lvlong@chukong-inc.com。

40bc25b7a0d6241c162afd7e9497e18c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值