使用Maya制作彩虹的出现和渐渐消失效果

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

彩虹的出现和渐渐消失效果
思路分析:要想制作出一个慢慢长出,然后慢慢消失的彩虹效果,我们要注意几个问题:
首先,彩虹是怎样形成的。

通过前段时间的学习,我们可以知道,彩虹可以由许许多多的粒子组成,然后再给粒子添加一些每一个粒子的属性,就可以控制出粒子的颜色。

第二,彩虹要实现从左到右的渐渐出现的这样一个效果,怎样才能实现呢?这个问题我们也
可以解决,就是通过发射器下面的我们可以实现对粒子发射的遮罩,然后对这个遮罩的RAMP,进行KEY帧,即可实现彩虹慢慢实现的效果。

第三,彩虹出现乱的情况。

乱的效果,我们可以通过加上一个扰乱场,然后对扰乱场进行KEY帧,从右到左运动。

第四,然后就是彩虹消失效果了。

想到消失效果,我们可以想到,两种常用的方法。

一种是用粒子的透明度来控制,二种是用粒子的寿命来控制粒子的消失。

通过透明度来控制的话,粒子会成片的渐隐,然后消失,这对这些已经乱了的粒子来说,效果并不是很好,而用粒子年龄来控制它的消失,效果会好得多。

操作步骤:
首先创建一个poly的平面,将宽度分段多一点,然后在动画面板中选择弯曲变形工具,将平面变成如图所示:
然后在以面的方式创建粒子发射器,改为10000,speed改为0。

.
现在为粒子添加颜色,particleshape下先添加一个RGB PP,然后在emitter下面打开
勾选inherit color,点棋盘格,改ramp的颜色效果如图:
彩虹慢慢出现效果,打开发射器面板,找到
勾选上enable texture rate 然后点小棋盘格,将ramp调成
然后播放一下看看粒子到底从哪个方向发射出
来,如果是对的,就进行KEY帧。

然后将ramp调成,
然后播放试试,看是否出现粒子渐渐出现的效果?
然后,创建一个扰乱场放在彩虹旁边
当彩虹完全出现的时候,对扰乱场进行KEY帧,从右到左运动。

同是也给粒子发射器
进行key帧,前一帧为5000,后一帧为0。

(这里对发射数量KEY帧是为了,当粒子消失的时候,防止粒子再次出现)
现在,试着播放一下,我们可以看到,彩虹的效果已经基本出来了,但是这个彩虹当扰乱之后,粒子就是不消失,一直都不消失,如果把寿命改成恒定的,粒子又在没有扰乱的时候他就开始消失了,这很明显不是我们要达到的效果。

我们所要的效果是当粒子出现乱的时候,
粒子才开始慢慢消失。

试想一下,粒子乱的时候,有什么不同呢。

即当粒子静止的时候,速度为零,寿命为永远,当粒子速度不为零的时候,寿命为一个恒定的值。

现在我们就开始做这个效果。

将lifespan mode 改成lifespanPP only,然后在lifespanPP属性创建表达式:
if(mag(particleShape1.velocity)==0)
{particleShape1.lifespanPP=time*2.5;
}
else if(mag(particleShape1.velocity)!=0)
{particleShape1.lifespanPP=particleShape1.lifespanPP*0.95;
}
当粒子的速度为零的时候,粒子的寿命为时间乘以2.5,表示随着时间增长,寿命也增长,意思说,只要时间不停止,寿命也不会停下来,换句话说,时间不可能停止,所以他的寿命是无限的;
当粒子的速度不为零的时候,粒子的寿命为粒子的寿命乘以0.95,当速度不为零的时候,有很多个值,他就会运算很多次,所以,他的寿命=寿命*0.95*0.95*0.95*0.95……N 个0.95,大家都知道,小于一得数相乘,会越来越小,无限趋近于零。

所以这个命令可以让粒子的寿命慢慢减下来,直到寿命为零,粒子就消失了。

这下我们可以看到粒子的效果消失的效果了。

但是,粒子虽然有消失的效果,可总感觉这个彩虹怪怪的,一个就是,这个彩虹的底部两端,感觉是实的,效果不好,另外一个就是彩虹消失的时候,粒子立即就消失了,没有一个渐渐隐去的效果,这两个效果,都是可以控制透明度而完成的。

可问题又来了,每个粒子属性的透明度只有一个,怎么才能让他同时出现两个效果呢。

下面来看解决方法:
首先勾选然后分别创建几个每粒子属性:parentV ,parentU,yinPP,bianPP,bianPP然后创建一个ramp,选择用parentV驱动,yinPP创建一个ramp用age驱动,然后调整bianPP的ramp为。

然后我们给创建一个表达式:以runtime before dynamics创建,输入以下代码:
particleShape1.opacityPP=particleShape1.bianPP*particleShape1.yinPP;
表示渐渐隐去的透明度乘以底部虚边的透明度,因为他们的值都小于一,所以乘机也小于一,正好可以作为透明度的值
至此,我们的彩虹的出现与消失,就已经做完了。

相关文档
最新文档