当前位置:软件学习 > Flash >>

PI/FW/Flash 总动员制作烟火效果

大家在制作flash动画的时候为了表现情节,渲染气氛,难免会遇到很多特殊效果的制作。下面我就结合自己的经验来谈谈如何制作逼真的烟火效果。

  制作原理:
  利用photoshop或者其它位图工具制作出一张静态的烟雾(或火焰)图片,在fireworks中对图片进行加工,将其处理为透明的png图。再将png导入到flash中做最后的处理。使用png 的原因在于它具有优秀的透明属性,不象gif图形格式只有透明和不透明的选择,在导入到flash中之后不会出现烦人的毛边。


  制作步骤:

  首先使用图形软件制作一个火焰效果,如果您对photoshop不是很熟悉,制作上有困难的话,可以使用ulead公司的Photoimapct软件,其内置了数钟火焰滤镜,只需几个简单的操作就可得到满意的效果。以photoimpact6.0为例,在photoimpact中新建200*200背景色为黑色的新文件(如图一)。



  在百宝箱中选择partical gallery——fire,右键单击想要的效果,在弹出菜单中选择modify properties and apply,打开partical面板,在这里我们可以调整火焰的属性,将density调整为1,(如图二)点击ok。将这张图形输出成psd格式。


  同样再新建新文件,在百宝箱中选择partical gallery——smoke,右键单击想要的效果,在弹出菜单中选择modify properties and apply,打开partical面板,在这里我们可以调整烟雾的属性,将density调整为18,(如图三)点击ok。将这张图形输出成psd格式。


  在fireworks中打开火焰的图片,使用魔术棒工具选择黑色的背景色,按del键删除。(如图四)将图形保存为png格式,使用同样的方法处理好烟雾的图片。


  最后打开flash,新建一个高200,宽200背景色为黑色的文件,file-import将图导入。新建元件“烟”与“火”windows-library打开library面板,分别将烟图片和火图片拖拽到“烟”元件与“火”元件中,windows-pannel-align打开align面板,设置其居中对齐。

  新建元件命名为“火动画”,从library中拖拽“火”到layer 1,分别在第5、10、15、20帧建立关键帧。单击第一帧,在frame面板中设置name属性为“a0”,单击第5帧,在frame面板中设置name属性为“a1”,单击第10帧,在frame面板中设置name属性为“a2”。使用scale与rotate调整每一关键帧上元件的大小与位置,并且在effect面板中调整各元件的颜色与透明度。在各关键帧之间分别建立motion动画。(如图五)


作者:pcking出处:CPCW责任编辑: [ 2002-04-05 11:00 ]
如何制作逼真的烟火效果呢?我们可以将Photoimapct、Fireworks、Flash三种工具结合起来……

  新建元件命名为“as火动画”,将“火动画”拖拽到layer 1,在instance面板中给它命名为“fire”。双击第一帧,在弹出的actions面板中输入如下as
  i = 0;
  a = random (3);
  setProperty ("fire", _visible, "0");
  while (i<10) {
   duplicateMovieClip ("fire", "fire" add i, i);
   //当I<10时复制mc
   setProperty ("fire" add i, _x, random (50));
   setProperty ("fire" add i, _y, random (30));
   //使用random函数取随机数,设置复制出的mc的x、y坐标
   setProperty ("fire" add i, _xscale, random (50)+50);
   setProperty ("fire" add i, _yscale, random (50)+50);
   //设置复制出的mc的宽与高
   setProperty ("fire" add i, _alpha, 70+random (30));
   //设置复制出的mc的透明度 
   setProperty ("fire" add i, _rotation, random (50));
   //设置复制出的mc的旋转角度
   tellTarget ("fire" add i) {
    gotoAndPlay ("a" add random (3));
   }
   //利用随机数决定从mc的什么位置开始播放
   i = number(i)+1;
  }

  语法说明:
  duplicatemovieclip,当动画正在播放时复制一个movie clip。复制出的moveclip与被复制的movieclip完全一样,并从第一帧开始播放。
  语法:
  duplicatemovieclip(target,newname,depth)
  参数
  target:要复制的movieclip的路径与名称
  newname:复制出的movieclip唯一的名称
  depth:景深

  random()函数:random在actionscrip中是一个应用相当广的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们可以解决随机显示,随机移动等一系列的效果。是复杂动画的基础,对random函数的灵活应用,是我们解决很多实际问题,创造奇妙效果的前提。我们来看看它的语法:
  random(value);
  参数
  value:所生成随机整数的上限
  实例
  random(4)所返回值可能为0,1,2,3

  setProperty,在movieclip播放时设置其属性。语法:
  setProperty(target,property,expression)
  参数
  target:要设置属性值的movieclip的路径与名称
  property:待设置的属性
  expression:待设置的属性值
  实例
  setProperty("xxx",_x,100)
  将xxx的x座标设为100


作者:pcking出处:CPCW责任编辑: [ 2002-04-05 11:00 ]
如何制作逼真的烟火效果呢?我们可以将Photoimapct、Fireworks、Flash三种工具结合起来……

  值得注意的是最后telltarget的使用,为什么要使用随机函数实现帧间跳转呢?这么做的目的是为了使复制出的mc的颜色不完全相同,才能表现出火焰的随机性。

  下面开始制作烟雾效果,新建元件“烟动画”从library中拖拽“烟”元件到layer 1,分别在第5、10、15、20帧建立关键帧。单击第一帧,在frame面板中设置name属性为“b0”,单击第5帧,在frame面板中设置name属性为“b1”,单击第10帧,在frame面板中设置name属性为“b2”。使用scale与rotate调整每一关键帧上元件的大小与位置,并且在effect面板中调整各元件的颜色与透明度。在各关键帧之间分别建立motion动画。新建元件命名为“as烟动画”,将“烟动画”拖拽到layer 1,在instance面板中给它命名为“smoke”。双击第一帧,在弹出的actions面板中输入如下as

  k = 70;
  b = random (3);
  setProperty ("smoke", _visible, "0");
  while (k<75) {
   duplicateMovieClip ("smoke", "smoke" add k, k);
   setProperty ("smoke" add k, _x, random (50));
   setProperty ("smoke" add k, _y, random (30));
   setProperty ("smoke" add

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,