进击3D游戏界!Cocos Creator快速实现骨骼动画交互!

这篇具有很好参考价值的文章主要介绍了进击3D游戏界!Cocos Creator快速实现骨骼动画交互!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近公司需要转型,方向为元宇宙,AI,数字人,区块链等方向,博主为了跟上时代的步伐
为我们伟大的公司献出我的能力(广告费5毛一条,公司财务看到麻烦转我一下)
便对Web3.0以及3D可视化这些前沿技术进行了研究,主要的研究方向为VR(已概览技术栈有three.js,thing.js,Cocos Creator)
在此把Cocos Creator的学习路线及心得感悟记录一下,方便以后温习。
先上最后成品:
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互


一、Cocos Creator简介?

CoCosCocos2d、Cocos2dx、Cocos Creator、Cocos Studio等不同版本

本文主人公为Cocos Creator,以下我来简要描述一下各个版本的特性

  1. Cocos2dObject-C语言写的,而Cocos2dx是用C++写的,支持使用C++,Lua,JavaScript等语言进行开发
  2. Cocos2d是外国人开发的,而Cocos2dx是我们中国人开发的,很多人说Cocos为国产,也是因为这个原因
  3. Cocos2d有的东西Cocos2dx都有,可以理解为一个升级版 性能更强,更接近底层,兼容性更强
  4. CocosStudioCreator相比,Studio只是JsLua为辅,C++为主,而CreatorJs为主,无疑Studio的性能更强大
  5. Creator界面简洁,学习起来更简单,操作方式模仿Unity,适合做小游戏,如果最近大火的游戏却被成为游戏界耻辱的羊了个羊

我们本期主人公CoCos Creator的官网 https://www.cocos.com/
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
Cocos自称为高效轻量跨平台的一体化3D开发引擎。那么该引擎真的是字如其人吗?
答案是肯定的,那么我们如何迅速且高效的上手这个引擎呢?且继续往下看。

二、快速上手Cocos Creator

1.任何语言学习,先概览一遍文档

cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
值得注意的是,Cocos的文档随着每个版本不同,会修复一些问题,修复问题的同时,一些API的调用方法也会随之改变
而我们在学习时候最好不要用最新的版本,因为对应的生态可能不完善,这样出现问题之后会很难使用百度大法
我们今天使用的版本为Cocos Creator 3.0
在右上角进行切换之后,选中快速上手:制作第一个游戏,如下图所示
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

2.跟随官方Demo,进行游戏的制作

博主是跟着这个官方做游戏的Demo做了两次,大概了解了一些渲染,材质,光照,粒子,摄像机,UI组件,脚本的概念后
便可以自己试着去做一下模型交互的效果了,这里博主偷懒了,建议跟随官方Demo3次以上,再自己去实现对应的功能
官方Demo虽然看起来比较少,但是基本上游戏开发中常见的功能都包含在其中。后面博主做的功能也是在研究官方Demo中实现的
具体如何去实现官方Demo的流程,博主不再细讲,主要讲的是如何跟随Demo练习后,自己如何实现的思路,
官方Demo链接 https://docs.cocos.com/creator/3.0/manual/zh/getting-started/first-game/,感兴趣的同志们可以去学习一下

三、如何自己实现骨骼模型和界面交互

1.创建项目

这里我们创一个空项目文件就可以了 如图所示,引擎要选3.0版本,不然可能API不适用
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
创建完之后,我们会得到一个如图所示的默认目录
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

2.添加地板

考虑到角色模型交互必须要站在一个地面上,会比较自然,所以我们这个地方最好加一个地板材质
我们在左上角面板上右键新建空节点,命名为Floor
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
而后在这个Floor节点下 点击右键新建6个对应的Plane对象
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

而后调整Plane对应位置,让我们的角色能站在上面,我们需要调整地板的Position一栏的XY属性的偏移量
使得六个地板能拼在一起 如图所示
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

3.渲染人物模型,使人物模型能正确站在地板上

three.js不同,Cocos提供了对开发非常友好的模型导入方式
Sence右键点击,新建空节点为body,然后把对应的FBX后缀骨骼模型放入对应的文件夹即可渲染出来,如图:
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
然后选中我们的body节点,把我们的grilAll文件拖入body的CocosAnim节点
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

把对应的FBX后缀模型文件放到下面静态目录,拉入body里即可自行渲染
如果角色没有正确站在地板上,可以通过调整地板位置或者角色模型位置来进行适配,如图:
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
三个属性分别是用来调试偏移量旋转量缩放量
调试完毕即可看到角色站在正确位置
本期所用到的模型文件,博主已经放在我的CDN上,有需要的同志可以自行下载。
将压缩包里的FBX后缀模型文件解压到上文所示位置即可使用 点我下载模型

4.调整摄像头位置及视锥,使视图中角色居中

下文为Cocos官网摄像头的概念,我们可以通过调试摄像头,来控制用户观看的视图效果
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
Cocos的摄像头是可以精确到千分位的,我们在左上角面板中点击Main Camera 即可调试摄像头的对应属性,本项目中,博主摄像头的参数为x:0.049,y:1.003,z:7.114 如图所示:
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
可以从右下角预览图看到,我们的角色模型已经在最中间了。至此,此小节算结束。后面为进阶操作

5.交互第一步:观察FBX模型骨骼动画

点击角色模型,可以观察到,模型自带的骨骼动画,我们本文的骨骼动画一共有10个,如下图所示
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
观察到一共有10个动画,现在静态模型已经有了,那么我们如何实现如下图所示的交互效果,让它动起来呢?
注意:这个地方的骨骼动画名称一定要记录一下,后面会有用到,比如ideal1.animation 记住文件名就可以
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

6.交互第二步:制作左上角菜单

首先我们右键=>新建UI组件=>新建按钮(Button)
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
然后我们会发现,最外层自动创建了一个canvas节点,这是因为在Cocos里面,button组件是用canvas绘制的,所以固定结构是在canvas里面,我们可以在canvas节点里面新建一个空节点StartMenu,然后把button按钮放入StartMenu,生成如下所示结构
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
StartMenu里面为我们所要构建的菜单物料,我们可以在里面新建一个名为BGsprite精灵节点,设置宽高为200,然后在官方的deafult_ui目录里,将如图所示文件拉入到BG节点SpriteFrame的属性里面
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
然后在把预览模式切换为2D,添加部分按钮和文字,调整菜单位置到左上角,会得到如下所示菜单,这个菜单样式不是固定的,可以随你喜好,如何设置都可以,可以看到以下菜单预览效果
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

7.交互第三步:创建JavaScript脚本,动态控制动画播放

菜单和模型都已经有了,那么如何要让人物动起来呢,接下来要轮到我们的脚本语言JavaScript出场了
在静态文件目录下创建名为Script的文件夹,而后再创建PlayerController.ts文件,生成下图所示目录:
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

值得注意的是Cocos的调用方法为模块化调用,接触Node以及其它模式的语言的同志应该很容易看懂,
我们需要做的是调用CoCos对应的模块,来实现我们对应的功能,具体模块说明请看图
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
注意:这个play的函数即是调用动画的方法,我这里为什么能直接这样使用,打log对应的方法,如下图所示,可以看到我的button名称是和动画名称完全一致的,所以可以直接用对应的按钮返回的name进行调用
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
好了,这个时候对应的脚本也定义好了,理论上来说,这个脚本的逻辑是没有问题的
但是现在还是不能实现我的点击菜单播放不同动画的需求,仍然有一些地方需要完善,且看下文

8.交互第四步:给骨骼动画节点绑定对应的Js脚本

首先选中我们的body节点,给对应的节点绑定上我们刚刚的Js脚本
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
如图红框所示即为添加成功,音乐不用管,是我自己搞着玩的,
这个时候我们随便在脚本的start函数里面打印一些内容即可正常出来,现在我们的body成功挂载了脚本
但是我们每个Button按钮却没有挂载上,我们此时需要做最后一步=>给Button按钮挂载上对应脚本

9.交互最后一步:给按钮绑定上对应的ClickEvent事件

脚本我们在之前已经写好了,我们最后一步需要做的只是触发对应的事件,左键双击StartMenu下的button节点
可以看到右边属性面板上有对应的ClickEvents属性,这个地方可以挂载多个脚本,我们这边只需要用到一个,把其改为1就可以
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
改完之后下面会自动弹出面板,让你选择对应脚本,这里面我们搜索我们之前写的PalyerController并选中
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
第二个同理,最后一个我们代码创建的onMouseUp自定义事件即可,这个地方可以自定义CustomEventData参数来实现复杂的逻辑

cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互
本文虽然写了,但实际上没用到
后续跟之前一样傻瓜式操作,给所有按钮添加上相同的ClickEvents即可,至此我们交互Demo即算完成

四、打完收工,查看效果

点击Cocos上的预览可以看到如下图所示效果:
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互

总结

好记性不如烂笔头
随时随地给自己对项目的状态进行实时的记录,想来以后回忆起来也是极美的

明天,又是充满希望的一天!

最后放上一张镇楼图
cocos creator 骨骼动画demo,前端,性能优化,css,3d,游戏,交互文章来源地址https://www.toymoban.com/news/detail-639466.html

到了这里,关于进击3D游戏界!Cocos Creator快速实现骨骼动画交互!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Cocos Creator游戏实战》AIGC之将草稿内容转为真实内容

    目录 前言 训练AI 从识别结果中提取必要数据 发送图片并生成最终代码 总结与提高 资源下载 当创作灵感来的时候,我们可能会先把灵感记录在草稿上,之后再去实现它。比方说有一天,我突然来了游戏创作灵感,想着那可以先把一些简单的组件和布局设计出来,于是就在草

    2024年02月09日
    浏览(55)
  • cocos creator新手教程:第003节3D模型的基本概念

    3.1 计算机如何制作一个3D模型 讲述这个问题之前,我们先来看下现实生活中我们要做一个模型,应该如何做呢?首先我们要把模型的形状给雕刻构建出来,现实生活中的物体都是由分子组成的连续的表面,计算机是离散的无法做到这点,所以计算机通过微分的方式,把一个曲

    2024年02月03日
    浏览(23)
  • Cocos Creator3D:制作可任意拉伸的 UI 图像

    推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 UI 系统核心的设计原则是能够自动适应各种不同的设备屏幕尺寸,因此我们在制作 UI 时需要正确设置每个控件元素的尺寸(size),并且让每个控件元素的尺寸能够根据设备屏幕的尺寸进行自动的拉伸适配

    2024年02月13日
    浏览(32)
  • Cocos Creator 3.x 热更新,使用chatgpt快速定位解决问题

    使用 app 热更的主要原因是可以快速地向用户推送应用程序的更新版本,同时也可以减少应用程序更新时需要用户手动下载和安装的次数,从而提高用户体验和应用程序的可维护性。以下是一些使用 app 热更的好处: 快速发布更新:热更可以让开发人员快速地推送应用程序的

    2024年02月06日
    浏览(31)
  • 用23种设计模式打造一个cocos creator的游戏框架----(十四)观察者模式

    模式名称:观察者模式 模式分类:行为型 模式意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 结构图: 适用于: 1、当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在

    2024年02月04日
    浏览(39)
  • 【Unity】GPU骨骼动画 GPU Spine动画 2D/3D渲染性能开挂 动画合批 支持武器挂载 支持实时获取骨骼位置

     GPU 3D骨骼动画和 GPU 2D Spine动画插件均包含在【万人同屏整合方案】中,老板们可在某宝搜:[游戏开发资源商店] 以获取全套方案的所有源码插件。 插件功能: 1. 支持3D动画转GPU动画  2. 支持2D Spine动画转GPU动画 3. 支持挂点、支持挂载物、动态切换挂载物、实时获取挂点T

    2024年01月18日
    浏览(31)
  • Cocos Creator小游戏-2048(PC、安卓、H5)益智类 项目展示+完整项目源码

    Cocos Creator小游戏-2048 在棋盘上,每次会增加一个 小 动物,你可以选择四个方向 滑动 ,然后 小 动物会按方向移动,遇到相同的 小 动物就会 合并,看谁合并的最多。 1 .初始化格子小动物的位置。 2.手势滑屏移动屏幕中的小动物。 3.自动寻找棋盘中没有小动物的格子,自动

    2024年02月12日
    浏览(39)
  • Cocos Creator小游戏-文字斗争(H5、小程序)益智类 项目展示+完整项目源码

    文字斗争(H5、小程序)益智类 项目展示+完整项目源码 玩家有着自己的战场,可以作为进攻方去挑战其他战场,也可以作为防守方抵御其他玩家的进攻。 玩家可以挑战游戏里设置的各个关卡,提高自己的指挥能力和布局能力,最终可以战胜其他玩家的同时能够不被其他玩家

    2024年02月08日
    浏览(50)
  • 【Unity】GPU骨骼 GPU Spine动画 2D/3D渲染性能开挂 合批渲染 支持武器挂载 动画事件 动画融合 实时获取骨骼位置

     GPU 3D骨骼动画和 GPU 2D Spine动画插件均包含在【万人同屏整合方案】中,老板们可在某宝搜:[游戏开发资源商店] 以获取全套方案的所有源码插件。   万人同屏渲染避障锁敌方案实现对抗战斗demo 展示GPU动画高级功能 动画事件 动画平滑过渡 融合   插件功能: 1. 支持3D动画

    2024年02月22日
    浏览(31)
  • 安卓上的 3D 模型加载 和骨骼动画 库 SceneView

    如果你要加载3D 模型,比如Maya 3D max 生成的 3d 模型文件,你会发现基本没有好用的快捷的库, github上是有一个比较出名的3d 库 , https://github.com/the3deer/android-3D-model-viewer , 但是他的骨骼动画那块写的云里雾里的,如果你要控制某些骨骼节点运动,你会发现不好着手, 这里有

    2024年02月06日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包