用户名 密    码

After Effects 爆炸效果:构建3D粒子发生器(2)

来源:火星时代 作者:XiaoYu 发布时间:2010-09-13 08:36:47 网友评论 0

1.5加入Position控制表达式
展开Transform,选择Position,按Shift+Alt+=快捷键,在表达式输入窗口中输入以下内容:
vmin=500; //最小初速度
vmax=700; //最大初速度
birth=effect("life").param("Point")[0];
life=effect("life").param("Point")[1];
origin=this_comp.layer("Null 1").position.value_at_time(birth);
age=time-birth;
seed_random(1,true);
s=random(vmin,vmax);// 初速
a=degrees_to_radians(random(180)); //垂直角度
r=degrees_to_radians(random(360)) //围绕y坐标轴旋转
x=s*Math.sin(a)*Math.cos(r);
y=-s*Math.cos(a);
z=s*Math.sin(a)*Math.sin(r);
v=[x,y,z];
origin + v*time
这昪爆炸的基本位置表达式,粒子在三维空间中从起点(null层的位置)以随机方向用500和700单位(它大概折合为每秒多少像素)之间的初速度发射。该粒子继续以该速度和方向发射,直到它消失。我们还没有风(wind)、地心引力(gravity)和阻力(drag)力的因素。使用JavaScript三角函数计算粒子速度向量的x、y和z分量的三行,向量由速度(s)、垂直发射角(a)以及和合成有关的y轴旋转(r)的随机值产生。不必太多担心在这一点上的所有的这些向量,如果不必知道它如何工作,可以阅读After Effects 5.5表达式有关内容,现在,只需改变“vmin” 和 “vmax”值,以改变粒子的初始速度。可以为垂直角度增加一个控制,使产生喷泉一样的粒子喷射。
1.6加入Scale控制表达式
选择Scale,按Shift+Alt+=快捷键,在表达式输入窗口中输入以下内容:
max_scale=50; //最大缩放尺寸
s=.2; //调整向上斜坡的时间大小
life=effect("life").param("Point")[1];
age=time-effect("life").param("Point")[0]; //参见前面age=time-birth
if (age<s){
x=(age/s)*max_scale;
[x,x,100]
}else{
[max_scale,max_scale,100]
}
表达式作用是在s(这里是0.2秒钟)定义的期间内从0到max_scale中指定的值(这里是50)均匀缩放。如果需要粒子到达最大缩放的时间更快或更慢,只需改变s值,注意,如果要粒子在它消逝前到达实际大小,此值应小于life表达式的lmin。
1.7加入Z rotation控制表达式
选择Z rotation,按Shift+Alt+=快捷键,在表达式输入窗口中输入以下内容:
rmax=1080; //最大旋转角度
rmin=-1080; //最小旋转角度
birth=effect("life").param("Point")[0];
seed_random(1,true);
r=random(rmin,rmax);
life=effect("life").param("Point")[1];
age=time-birth;
if(life==0){
0
}else{
r/life*age
}
表达式产生一个在粒子的生命期间内围绕Z轴旋转的随机值(在-1080度和+1080度之间)。注意,此表达式使用life控制中的birth和life值, 以及seed_random函数的使用,弄清楚,选择的随机旋转值仍然与每次计算表达式的值相同。如果要改变粒子旋转值大小,只需改变rmax和rmin值。

搜索栏目