日期:2013-12-18  浏览次数:20845 次

  我开发了一个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才是基础和正道。