首页 百科知识 粒子和火焰

粒子和火焰

时间:2022-10-16 百科知识 版权反馈
【摘要】:Cloud粒子最常用的特效就是火焰,火焰也有很多种,我们这一节我就通过模仿maya的内置特效火焰开始学习Cloud粒子和其所特有的particlecloud材质。1.粒子本身的运动的大小变化,通过简单的粒子的大小和运动产生火焰的运动效果,这是形成火焰的形态的部分。

第一节 Cloud粒子和火焰

Cloud粒子最常用的特效就是火焰,火焰也有很多种,我们这一节我就通过模仿maya的内置特效火焰开始学习Cloud粒子和其所特有的particlecloud材质。

img474

要制作如上图的效果,可以使用maya的内置特效菜单轻松的制作出来,先制作一个球体,然后进入动力学模块,使用菜单Effects→CreateFire就可以轻松的制作出这个效果。

img475

选择粒子,打开属性编辑器,很容易就看到这是使用Cloud粒子制作的火焰,这是最基本的火焰的制作,我们可以通过自己制作同样的火焰来达到彻底了解Cloud粒子和其所特有的particlecloud材质,然后再进行扩展制作爆炸,翻腾的火海等影片中的特效。

使用Cloud粒子制作的火焰动画有两部分形成:

1.粒子本身的运动的大小变化,通过简单的粒子的大小和运动产生火焰的运动效果,这是形成火焰的形态的部分。

2.particlecloud材质动画,也就形成是火焰的颜色的部分。

这两部分形成了火焰,任何一步做不好就无法达到最好的效果。

首先是制作火焰的动态,这个很简单了:

火焰是使用球体的面发射粒子,所以使用菜单命令:Particles→Emit from Object创建从面发射的粒子作为火焰粒子:

img476

img477

把粒子的渲染属性调整为Cloud粒子:

img478

播放动画的结果是粒子缓慢的匀速的成辐射状运动,到这里我们只解决了粒子从面上面发射出来的问题,接下来就是让他在运动上整体形状运动靠近火焰:火焰是快速发射,快速上升,然后向上聚拢的,这在前面基础部分有做过类似的例子,所以很容易理解。

我们使用动乱场(Tueberlence)来让粒子产生快速胡乱发射的效果,然后用统一场(Uniform)来拉动;粒子向上升起,然后使用托拽场(Drag)来制作火线粒子互相聚拢的的效果

当然了,首先火焰是有高度的,所以粒子应该在发射出来以后一段时间就消失,消失的时间和它的高度和大小还是有关系的,所以需要用表达式控制,但是在细节没有出现之前,我们可以简单地设置其LifespanMode为Random类型。

img479

接下来是使用动乱场(Tueberlence)的效果:

img480

img481

很明显,粒子乱窜了,接下来就是把粒子再收回来,使用托拽场(Drag)来做:

img482

实现了又拖又拽的效果以后,就差让火焰上升了,我们使用统一场(Uniform)来做:

img483

最终火焰的形态出来了:

img484

火焰的走势大致如此了,接下来是产生火焰的粒子应该是上小下大的效果,这样才可以有火焰下面少的旺盛上面火苗飞扬的感觉,所以要控制每一个火焰粒子的大小也就是RdiusPP了,所以为粒子增加通用粒子PerParticle属性RdiusPP:

img485

接下来,上小下大的的效果用Ramp是最简单,最有效的方法了:在属性上面单击鼠标右键,选择CreateRamp产生了Ramp控制的粒子,默认的最大是1,最小是0。

img486

调整颜色结构:

img487

最大值和最小值都不是理想状态,所以重新调整最大值和最小值的数值映射,就可以解决这个问题:还是在这个RdiusPP属性上面单击鼠标右键,选择:arrayMapper2.outValuePP→EditArrrayMpper,修改Ramp的最大值和最小值。

img488

如此一来,火焰的粒子的形态基本上就出来了,如果希望细节更为逼真的话,可以细调一下三个动力场的大小参数。很容易就可以得到想要的形态效果,这时候点击渲染(Cloud粒子使用的是软件渲染)得到的结果是:

img489

形态可以了,接下来就是贴图了,Cloud粒子是依靠贴图来进行表现的,Cloud粒子的材质是体积材质(ParticleCloud粒子云材质):

img490

粒子云材质是一种体积材质,用户可以将这种材质分配给渲染类型为Cloud的粒子,以得到如气体或云的效果。

打开材质编辑器Hapershade可以在Volumrtric材质里面找到Particle Cloud粒子云材质,选择粒子然后把材质赋予Cloud粒子就可以了

img491

打开粒子云的属性面板,可以看到里面的材质属性很特殊:

img492

特殊在两个地方:

1.一个是除了Color和Transparency以外还有LifeColor、LifeTransparency、LifeIncandescence这三个属性前面都有Life这个属性名;

2.除了CommonMaterialAttribute栏目里面有Transparency属性以外,还有独立的Transparency属性栏目。

这两个特殊的地方也就是ParticleCloud粒子云材质能够产生各种效果的关键了:LifeColor决定在粒子寿命中特定时间的颜色;同样的LifeTransparency决定在粒子寿命中特定时间的透明度;LifeIncandescence决定在粒子寿命中特定时间的白炽度。

我们为火焰粒子赋予新的ParticleCloud粒子云材质,并且为LifeColor使用Ramp进行贴图,渲染以后就很容易理解什么是“粒子寿命中特定时间的颜色”了:

img493

当为LifeColor进行了贴图后,Color属性自动也被贴图了,看渲染出来的效果以后就发现非常类似使用Ramp控制粒子ColorPP的效果.之所以会产生这样的效果是因为当使用LifeColor的时候,系统自动产生了一个particleSamplerInfo节点,这个节点就是产生将粒子寿命中特定时间映射到相应的颜色的关键:

img494

该节点,通过采样粒子的生命周期值,转化成0~1的值传递给贴图坐标的uvCoord从而产生控制特定时间的粒子产生同样特定时间的颜色的效果。我们要做火焰,所以就调整Ramp的上下颜色过度就可以了,通过particleSamplerInfo节点的采样映射,火焰粒子的颜色完全和Ramp的上下过渡颜色相同(通常Ramp的Type使用的是Vramp)。

为LifeColor的应用:

img495

为LifeTransparency的应用:

img496

为LifeIncandescence的应用:

img497

到了这一步似乎离火焰的距离还很远,倒是有点冒烟的感觉,但是火焰不就是建立在烟雾的基础上的么?其实只差一步就可以出效果了,接下来就用到独立的Transparency栏目里的属性了:

img498

先了解每一个属性的意义:

Density

与transparency属性相似。此属性控制粒子云的密度,并因此可以控制通过粒子云可以看到的背景的多少。增加此属性值将使云密度更大。

BlobMap

指定了应用到粒子云透明度的缩放系数。用户可以将一个3D纹理连接到粒子云上,使粒子云获得一些内部的纹理或云的形状效果,而仅从粒子中是不能得到这种效果的。

Roundness

控制噪声的不规则性。数值越小,形状越平滑。

Translucence

指定了只用于计算阴影的密度缩放系数。Translucence属性数值越大,穿透的光线越多。公式:density*(1–translucence)。

所以很明显了,BlobMap就是要使用的属性,利用3D文理产生火焰的效果,使用什么3D纹理并不是一定的,这里我使用了Crater纹理,他能够产生很好的火焰的效果。

img499

只是调整一下颜色,效果已经很明显了:

img500

现在火焰的成型已经不远了,找到3D纹理的坐标节点,在Y轴上放大,就会产生纹理在Y轴向上面的拉伸,所以就会产生一丝丝上升的的火焰的感觉:

img501

到这里整体效果出来了,接下来进入细节处理,ParticleCloud材质对细节处理的属性不是很多,但非常有效果,在这里使用Roundness属性可以产生更加真实的火焰效果:(以下是不同的Roundness的值的比较)

img502

img503

最后,只要调整火焰的浓度(Density)就可以了,当然了如果你愿意也可以增加光晕(glows):

img504

通过设置ParticleCloud材质的两个最基本的属性栏目:CommonMaterialAttribute(共有材质属性)和Transparency(透明)里面的属性的设置,制作了还不错的火焰,可以说ParticleCloud材质和Cloud粒子并没有什么难以控制的地方,只是属性比较多而已,只要仔细地调整,都不是问题。

img505

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

我要反馈