首页 百科知识 粒子高级应用

粒子高级应用

时间:2023-10-16 百科知识 版权反馈
【摘要】:Streak粒子最常用的一种就是制作下雨的效果,由于该粒子是使用硬件渲染所以渲染速度非常快,所以制作大量的Streak粒子在渲染的时候也不会占用太多的资源,而雨水通常是非常大量的,雨水打在物体上面就会绽开,同样也可以使用Streak粒子。因为Streak粒子的长度是和粒子的速度有关系的,所以只要能够产生每个粒子都不同的速度就能够产生不同的速度。

第二节 Streak粒子高级应用

Streak粒子最常用的一种就是制作下雨的效果,由于该粒子是使用硬件渲染所以渲染速度非常快,所以制作大量的Streak粒子在渲染的时候也不会占用太多的资源,而雨水通常是非常大量的,雨水打在物体上面就会绽开,同样也可以使用Streak粒子。

很简单的在场景里面创建两个多边形面片,一个作为天空、一个作为地面:

img898

要让天空下雨很简单,使用菜单命令Particles→EmitfromObject:

img899

接下去使用菜单命令Field→Gravity,为粒子添加重力场,这样雨就下来了:

粒子受力下落:

img900

把粒子的渲染类型改成Streak类型,同时为粒子添加颜色属性,并且设置成为白色:

img901

这样下雨的感觉已经出来了:

img902

随着粒子速度的增加,粒子的长度也自动增加,自动产生拖尾效果,不用手动控制非常方便。

在处理细节之前,继续制作大体上的粒子动画,雨水是要落在地面上的,落在地面上以后还需要绽开成水花。这个效果很简单,简单的碰撞事件就可以搞定。

选中地面使用菜单命令Particles→MakeColide:

img903

使用动力学连接器将雨水粒子和碰撞体连接起来:

img904

这样雨水就和地面发生了碰撞,并且完全反弹了回去:

粒子反弹效果:

img905

制作碰撞的目的并不是让雨水反弹回去,而是用来产生碰撞事件。所以使用菜单命令Particles→ParticleCollisionEvents为粒子碰撞创建一个事件用来发射粒子,并且碰撞以后雨水消失:

img906

(关于粒子碰撞参数的意义在基础篇中有介绍,这里就不多打字了。)

于是,雨水落地后消失,并且水花粒子发射出来了:

img907

接下来控制水花粒子,使用动力学连接器把粒子和重力场连接起来:

img908

将粒子的生命周期调整到相对较小的值上,因为水花很快就会消失的:

img909

将粒子的渲染类型调整为MultiStreak,并且使用雨水一样的颜色:

img910

水花的形态已经出来了。

水花效果:

img911

基本形态制作完成以后,就是细节的处理了,下雨是个大场景所以也没有太多的细节要处理:

1.每个雨水粒子长度最好不要一致。

2.每个雨水的透明度不要一致。

对于每一个Streak粒子的长度,Maya并没有提供PerParticle属性,所以不能使用简单的表达式控制了。

因为Streak粒子的长度是和粒子的速度有关系的,所以只要能够产生每个粒子都不同的速度就能够产生不同的速度。

由于粒子是受到力下落,所以控制速度就应该从控制粒子的质量入手,因为不同的质量受到相同的力会产生不同的速度。

但是由于这里使用的是Gravity(重力)来产生粒子下落的,所以不论粒子的质量如何不一样,它的速度都是一样的,所以首先要做的就是把重力场改变成统一场(物理学还是很重要的)。

删除重力场,同时选中水花粒子和雨水粒子,使用菜单命令Field→Uniform创建一个统一场替换重力场:

img912

img913

为粒子的质量(Mass)创建一个简单的表达式:

img914

这样粒子的质量不同,受同样的拉力,产生不同的速度,速度不同粒子的长度就自然不同了,第一个问题也就解决了:

img915

对于控制每一个粒子的透明就简单了,为粒子增加OpacityPP属性,然后写一个表达式就可以了:

img916

然后添加一个简单的创建表达式:

img917

这样粒子的随机透明度就产生了:

img918

就这么简单的场景实在是过意不去,所以在场景里添加一棵树,同样制作成碰撞体,粒子碰撞事件就会自动产生不用再制作了:

img919

最终效果如下:

img920

img921

img922

img923

img924

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈