特效神器 C3D 到底有多强?

news/2024/7/19 15:02:48 标签: css, python, js, html, java
htmledit_views">
html" title=js>js_content">

有伙伴问晓衡:Cocos Store 上除了成品小游戏,还有那些机会?

我回答道:Creator 3D 特效美术,绝对有机会,最为简单的就是模仿『王者荣耀』中的技能来一打!

今天给大家推荐一篇 Cocos Creator 3D 的粒子编辑器教程,制作一个魔法阵特效,先来看一下最终的效果!

正文

看了效果,那么到底是怎么实现的呢?

「答案是:粒子系统」

接下来菜鸟就带大家简单的了解一下 Creator 的粒子系统,「"以下言论仅为个人理解,错误莫喷,希望大家帮菜鸟纠正"」

1.主模块介绍

首先菜鸟带大家了解一下主模块,以及主模块中比较重要的几个属性:


文档中对于以上属性的描述:

  • 1.dration 粒子系统运行总时间

  • 2.capacity 粒子系统能生成的最大粒子数量

  • 3.loop 粒子系统是否循环播放

  • 4.startLifetime 粒子生命周期

  • 5.rateOverTime 每秒发射的粒子数


属性描述补充

  • dration:粒子系统运行总时间,他表示的是粒子系统单次运行时间值,在具体点就是 「产生第一个粒子到产生最后一个粒子之间的时间,并非第一个粒子显示到最后一个粒子消失的时间」

  • capacity:粒子系统能生成的最大粒子数量,表示粒子系统「单次运行」最多可以产生的粒子数,

  • startLifetime: 粒子生命周期,「单个粒子产生到消失的时间」

  • rateOverTime:粒子系统每秒发射的粒子数

注意

  • 当rateOverTime=10,dration=1时,每秒钟产生的粒子实际数量为rateOverTime-1,也就是说在总数足够的情况下,运行实际产生的粒子数量为9。「再换一种说话,在总数足够的情况下,假设粒子数为n,要想知道n为多少需要两步操作,1. n<rateOverTime*dration,2.对第一步得到的n向下取整」

  • 第一个粒子产生到最后一个粒子消失的时间t为:
    capacity < t < capacity+startLifetime

  • 当实际产生的粒子数大于capacity,粒子将停止产生,直到有粒子生命周期结束再开始产生

2.魔法阵实现

魔法阵的实现主要分为两部分,底盘和光束

底盘

底盘的效果显示为原点旋转,具体设置:

  • 1.dration=5,capacity=1,startLifetime=5,这三个参数的设置确保了粒子运行时间屏幕上只有一个粒子,

  • rateOverTime=200 也就是每秒产生200个粒子,那么第一个粒子的产生时间大概为1/200s=0.005s,相当于粒子系统运行后马上产生,

  • dration=5,capacity=1,startLifetime=5,rateOverTime=200这四个参数结合,可以实现粒子视觉显示的时间和粒子系统运行时近似相等的情况,在loop状态下可以实现完美的衔接效果

  • 粒子的旋转是通过设置「旋转模块」(RotationOvertimeModule) z轴的旋转,

  • 在startLifetime生命周期内 粒子从初始角度匀速旋转到180度

  • 设置材质,effect要选择「粒子渲染的材质 builtin-particle」

光束

  • 光束从底部上升,所以需要设置速度 StartSpeed

  • 光束的图片是白色的,所以需要设置初始颜色,

  • 光束的产生不需要太多,所以将rateOverTime调小一点,设置为2,每秒生成2个

为了粒子产生位置比较随机,使用了发射器模块(ShapeModule)同时形状在上升的过程中拉长,使用大小模块(SizeOvertimeModule)透明度逐渐降低 使用颜色模块(ColorOvertimeModule)设置光束所需的粒子材质

「到此为止,光束的实现简单描述完毕,文采有限,大家多多包涵,感觉写的还行可以六个足迹奥!如有疑问可以私聊菜鸟奥,随时为大家服务」

    微信公众号:搬砖小菜鸟公众号回复「魔法阵」 

获取demo源码


http://www.niftyadmin.cn/n/805667.html

相关文章

全国IP地址分配表(一) (转)

全国IP地址分配表&#xff08;一&#xff09; (转)[more]全国IP地址分配表&#xff08;一&#xff09; 关键词&#xff1a;NT, 计算机安全, 其他 全国IP地址分配表&#xff08;一&#xff09;     xa.sn.cn,西安公众网,西安,陕西,CN,202.100.0.*   xa.sn.cn,西安公众网,西…

spring boot 单例 多线程 知识点

1. spring boot 创建的bean是单例的还是多例的&#xff1f; 单例的&#xff0c;要不然controller类中的非静态变量如何保证是线程安全的 2. 为什么spring要默认是单例呢&#xff1f; 为了性能&#xff1a;单例就不用每次new了 节省资源&#xff0c;因为它控制了实例对象的个…

要用VB做多媒体程序的同志必看... (转)

要用VB做多媒体程序的同志必看... (转)[more]Csdn上已经有好多朋友问过诸如&#xff1a; “如何播放Avi、Wave、midi文件”、&#xff1a; “谁知道用api播放avi,mpg的详细方法&#xff1f;要可以设定将图像放置到设定的窗体中”、 “如何同时播放两个Wav文件”的问题&#xff…

Java程序员们最常犯的3个集合错误

Java程序员们最常犯的3个集合错误 1、将数组转化为列表 将数组转化为一个列表时&#xff0c;程序员们经常这样做&#xff1a; List list Arrays.asList(arr); Arrays.asList() 会返回一个ArrayList对象&#xff0c;ArrayList类是Arrays的一个私有静态类&#xff0c;而不是j…

【组成原理系列】数的运算

定点运算 移位运算 意义 移位与加减配合&#xff0c;能够实现乘除运算 算术移位规则&#xff08;符号位不变&#xff09; 算术移位的硬件实现 逻辑移位&#xff08;不在乎符号位&#xff09; 逻辑左移&#xff0c;低位添 0 &#xff0c;高位移丢 逻辑右移&#xff0c;…

再见!程序员!!!

2021年10月24日这本是一年一度的全球程序员狂欢节让所有人都想不到的是一夜之间全球的程序员集体消失了本文原创公众号&#xff1a;不会笑青年&#xff0c;授权转载请联系微信(laughyouth369)< END >前阵子看了一个电影【被光抓走的人】&#xff0c;在电影中&#xff0c;…

手工编辑过的IP地址分配表(方便大家看) (转)

手工编辑过的IP地址分配表(方便大家看) (转)[more]  xa.sn.cn,西安公众网,西安,陕西,CN,202.100.0-8.* xa.sn.cn,西安公众网,西安,陕西,CN,202.100.16-19.* ya.sn.cn,延安数据局,延安,陕西,CN,202.100.10.* zhptt.gd.cn,珠海数据局&#xff0c;珠海&#xff0c;广东,CN,202.9…

【组成原理系列】指令系统

机器指令 指令的一般格式 操作码&#xff08;反映机器做什么操作&#xff09; 长度固定 用于指令字长较长的情况 &#xff0c;RISC如 IBM 370 操作码 8 位 长度可变 操作码分散在指令字的不同字段中 扩展操作码技术 操作码的位数随地址数的减少而增加 预留拓展 三地址指令…