我开发了一个FLASH粒子系统,不知道有没有别人已经做过。 基本都使用组件来做,应该很容易掌握。先看看应用该系统制作的FLASH效果。
由于粒子效果本身就非常的丰富多变,因此本系统的组件都不可能做到完全的封装。我最多只可以把一些问题的解决方案拿出来,大家使用的时候还是要注意灵活多变,才能创造出更好的效果。
1, 基础说明篇。
基本上本粒子系统主要分3大部分,粒子,粒子发射器和场。其中最最重要应用是粒子发射器,最最灵活的运用是粒子。下面先介绍粒子发射器的参数说明。
可见度:设置发射器是否可见
发射持续时间:设置粒子发射的时间,单位是“帧”。例如100表示粒子将持续发射100帧。
发射频率:表示每帧发射几个粒子,例如值3表示每帧该发射器将要发射3个粒子。值0.1表示每帧发射0.1个粒子(其实就是每10帧发射一个粒子)
/// 目前没有设计非匀速发射参数,各位有兴趣的朋友可以自己制作。
粒子发射速度:设置粒子的发射速度,单位是象素,例如5表示粒子发射出去以每帧5象素的速度前进。
发射速度变值:对粒子的初速度进行增减变化,例如2表示粒子的发射速度在3(5-2)到7(5+2)之间变化。
双向发射:判定发射器是否同时向两个方向上发射粒子。在某些情况下这个项目比较有用。
发射器速率影响度:该值用于判断粒子发射器本身的速度会不会影响到粒子的速度。关于该参数后面会有一个例子说明。
发射开放角:该值用语控制粒子发射方向上的变化。例如10表示在-10度到10度之间的扇面区域进行发射,如果改为180,则为360度全角度发射。
发射粒子品种:该值是运动粒子的as标识符,也就是表示该发射器将发射什么粒子。目前默认是库里的“粒子01”的标识符---- lz_01
粒子健康值:粒子的生命时间,例如100表示该粒子从发射开始运动100帧以后就要消失
粒子健康变值:同上,对粒子的存活时间进行变化。
粒子健康衰减值:设置粒子最后多少帧开始逐渐消失(透明度)。例如值10表示在最后10帧开始,粒子将变的越来越透明到消失不见,该值的目的是为了让粒子消失的不太突然。
粒子旋转值:设置粒子自转速度;
粒子旋转变值:不解释了
粒子角度校正:该值用于判断粒子是否按运动方向进行旋转,关于该值后面会有一个例子说明
粒子运动拉伸度:该值在粒子角度校正为true时生效,目的用于让粒子根据运动的速度进行拉伸变化。
粒子大小:设置每个粒子的大小,单位是百分比。例如100表示每个粒子按照100%原始粒子的大小。
粒子大小变值:不解释了
不规则形变:该值用于判断粒子的长宽比是否等比例缩小和放大。
粒子生长时间,粒子生长度,粒子萎缩时间,粒子萎缩度:均用于控制粒子开始和结束时的缩放变化。
深度控制min,深度控制max:控制发射粒子的深度范围。关于“深度”这个概念请查阅flash帮助。
2, 基础应用篇。
该系统的应用非常简单,只要把发射器从库里拉出来,拉到场景中即可。然后对其参数进行一些简单的设置就可以了。(使用默认值也可以)
例1;
这样一个非常简单的粒子效果就出现了,那么,对该发射器可以进行哪些操作呢。
首先你可以把它进行旋转,根据旋转的方向,该粒子发射器的发射方向也会变化。
例2;
同时该粒子发射器也可以进行时间轴上的运动变化。(包括位置变化和角度变化,支持引导线);
例3;
注意,当你改变发射器的参数“发射器速率影响度”的时候,粒子的运动会产生变化,比较一下不同。
例4;
该粒子发射器的各种参数已经提供了比较好的解决方案。大家可以试验一下更改一些参数来观察效果。(提醒:观察旋转效果的时候请使用比较大点的粒子)。
以下是利用该粒子系统制作的一些特效,大家可以试着练习下。
基本上,以上这些例题如果你可以完成的话,对粒子发射器的应用应该就没有什么问题了。(友情提醒,里面的某些例子或许你会认为很简单,不值得一做,但我建议大家还是认真的做一下,例如第4和第8题就牵涉到一些知识点,初学者很容易出错。)
补充:线形发射器只比点状的多出一个参数,即删格距离,该值用来控制发射粒子之间的距离。
3, 中级应用篇。
力场
力场里最主要的就是重力场,他的使用非常简单,只需要把它从库里拉到场景里就可以了(任意位置均可)。当然,要为这个力场设置一下方向和强度,还有最最重要的是立场的作用范围,该作用范围是深度范围,必须同发射器的深度范围一致才可以起到作用。
例5-例7;
补充说明,目前由于FLASH的功能有限,力场不支持在时间轴上的参数变化(原本我是通过重力场实例的拉伸变化来控制的,后来考虑到可能更麻烦就去掉了),但是各位有兴趣和有AS基础的朋友可以尝试更改AS代码达到这一效果。例如,让重力场的“重力值”呈现从-5到+5的正弦变化,就可以变成震荡器。通过设定不同的振幅和频率来达到不同的效果。
4, 高级应用篇:变化多端的粒子。
只要在“粒子01”内部嵌套不同的粒子MC,该粒子系统就可以变化出更多的效果出来。
例如,在粒子内,加入一个本身就有形变变化的动画,可以产生出类似细菌的效果。
再例如,在粒子内,加入一个落叶自转的动画,或一个樱花花瓣旋转的动画,也可以创造出非常漂亮的效果。
例8-例9
扩展思考,粒子发射器,发射的是粒子,那么,可以不可以发射“粒子发射器“呢。
比如一个线状发射器,每10帧发射一个点状发射器,该点状发射器自身又发射粒子。这样可以做一个类似烟花的效果。
我做了9道习题,大家可以试着做下。如果前8题都完成了那基本就没什么问题了。
最后,关于其他类似挡板之类的东西,由于比较简单和容易理解,我就不多说了。
教程和习题我干脆打包了,分开太麻烦了。
关于AS的解释太麻烦了,我都不知道如何着手,所以干脆不写了。如果有不理解的地方,可以跟帖提问,我会尽快回答的。有意见也请提出。
这个东西目前也不完善,事实上,如果功能完善就意味着运行效率低下。我自己在实际用的时候都会把不需要的代码和参数删除的。所以,组件虽然用的方便,但学好AS才是基础和正道。