如何用MAYA制作黑色浓烟特效

如何用MAYA制作黑色浓烟特效
如何用MAYA制作黑色浓烟特效

实例——黑色浓烟

在场景中创建一个PolyponPlane作为地面使用,再创建一个球体,删除一半并压扁。(如图)移动到合适位置。

然后在菜单栏选择Fluid Effects(流体效果)——Create 3D Container with Emitter (创建3D容器与发射器)(如图)。大纲中选择fluid Emtrrer1(流体发射器1)(如图),在属性编辑器中找到Basic Emitter Attributes(基础发射器属性),修改Emitter Type(发射器类型)为V olume(体积)(如图)。

然后找到V olume Emitter Attributes(体积发射器属性),把V olume Shape(体积形态)修改为球体(如图)。

压扁发射器,把发射器匹配到之前创建的半球上。体积稍微比半球大一点即可(如图)。然后选择半球模型,再加选流体容器。在菜单栏中选择Fluid Effects——Add/Edit Contents——Emit from Object(从物体发射)(如图)。

补充:细心的同学可以发现,场景中创建了2个发射器。那么解算一个特效为什么要用两个发射器呢?

我们知道,使用流体发射器解算特效主要是通过浓度、热量和燃料等参数计算的得到的。观察下图可以发现,一开始燃烧的地方是一直颜色很亮的高温区域,接着是火焰混合着浓烟的区域,最后就只剩下黑色的浓烟。为了实现这种效果,我们用一个发射器模拟燃烧区域,另外一个发射器则发射浓烟。

如果只用一个发射器来解算,由于要计算燃料反映时间等等参数,就会出现高温区域颜色不均匀,有可能偏黄或者偏黑,无法达到图中的写实效果。

下面,我们分别为这两个发射器设置不同的参数。

大纲视图中选择fluidEmitter1(如图),在属性编辑器中找到Fluid Attributes(流体属性),将Density Method(浓度)设为No Emission(无发射),Heat Method(热量)设为20,Fuel Method(燃料)设为15(这几项值可以根据实际需要增大或者减小)(如图)。

大纲视图中选择基于多边形pSphere1的发射器fluidEmitter2(如图)。在属性编辑器中找到Fluid Attributes(流体属性),将Density Method(浓度)设为100(该值可根据实际需要增大或减少)。Heat Method(热量)和Fuel Method(燃料)设为No Emission(无发射)(如图)。

然后调整容器的解析度。

大纲视图中选择容器fluid1(如图),在属性编辑器中找到Container Properties(容器属性),将Base Resolution(基础分辨率)的值设为100,X轴的网格尺寸设为22(如图)。

解算得到如图效果。

通过观察发现,烟雾被束缚在容器中。选择容器,在属性编辑器中找到Container Properties(容器属性)。把X轴的边界改为None,Y轴的边界改为-Y,Z轴的边界改为Both Sides。

解算得到如图。

可以看到,烟雾没有被容器束缚,不过上升到容器顶部时就消失不见了。那么有没有方法可以让烟即不被容器束缚也不会消失呢?下面将会介绍一个新内容

Auto resize(自动调整大小)。

选择容器,在属性编辑器中找到Auto resize(自动调整大小),勾选Auto Resize 自动调整。将Resize closed boundaries(调整封闭边界)和Resize to Emitter(调整发射器)的勾选取消。

解算得到如图效果,通过观察可以发现,容器随着流体的解算,自动匹配大小。

接下来,开始塑造浓烟的动态。

选择容器,在菜单栏中找到Fields(场)——Air(空气)(如图),为场景添加一个风场。移动到如图位置。

选择风场,在属性编辑器中找到Air Field Attributes(空气场属性)。修改Magnitude (级数)的值为10。Direction(方向)后面的3个空分别对应着X、Y、Z轴,修改成-1、0、0,表示沿-X方向(如图)。

选择容器,在属性编辑器中找到Contents Method,将Temperature(温度)和Fuel (燃料)都设置为Dynamic grid(动力学网格)(如图)。

找到Dynamic Simulation(动力学仿真),修改Damp(阻尼)的值为0.2。High Detail Solve(高细节解算)改为All Grids(所有网格)(如图)。

找到Contents Details(详细内容)下的Density(密度)属性,修改Dissipation (消散)的值为0.6(如图)。

找到Velocity(速率)修改swirl(漩涡)的值为20。

找到Turbulence(扰乱)修改strength(力度)的值为0.2(如图)。

找到Temperature(温度),修改温度的消散Dissipation为1。温度的扩散Diffusion 为1.2。温度的扰乱Turbulence为0.8。

找到Fuel(燃料),修改Fuel Scale的值为2。燃料的反应速度Reaction Speed为0.5。

燃料的释光Light Released修改为1。

解算得到如图效果。

目前浓烟的动态基本完成,下面我们来调整材质。

选择容器,找到Shading,拖动Transparency(透明度)到如图位置(左实右虚)。

然找找到Color(颜色)和Incandescence(白炽热)属性。我们使用颜色控制烟的效果,白炽热控制火的效果。

把Color的颜色改成接近黑的灰色。并把Color Input的类型修改成Density(浓度)。

Incandescence的颜色改成如图效果。并把Incandescence Input的类型修改为Temperature(温度)。

找到Opacity(不透明)属性,将曲线修改成如图。(表示开始的浓度低,往后的地方浓高)把Opacity Input的类型修改为Density(浓度)。

解算得到如图效果。观察发现,颜色和形态都已经完成。但缺少体积感,没有阴影。

在菜单栏选择Create(创建)——Lights(灯光)——Directional Light(平行光)。在场景中创建一个平行光,移动到如图位置。

打开平行光的属性编辑器,找到Shadows(阴影)下的Raytrace Shadow Attributes (光影追踪属性),勾选Use Ray Trace Shadows(使用光影追踪)(如图)。

选择容器,找到Lighting属性,勾选Self Shadow(自阴影)(如图)。这时可以看到,MAYA视窗中的流体具备了阴影(如图)。

补充:使用MR渲染得到下图两种效果,可以发现左边的效果不真实,马赛克比较严重。这是因为解算的精度太低所导致。我们在解算时,Base Resolution(基础分辨率)的值设定的越高,效果就越细致。但同时解算的负荷也增加,解算速度也就越慢。

修改Base Resolution,一定程度上也会影响解算的动态,所以解算的时候以实际效果为准。

然后,我们为浓烟添加纹理,增强真实感。

选择容器,在属性编辑器中找到Textures,勾选Texture Incandescence(纹理白炽度),修改Incand Tex Gain白炽度增益值为1.3

Ratio(比率)修改为0.7

Frequency Ratio(频率)修改为3.5

Depth Max最大深度修改为2(如图)

(以上几项值可根据实际需要增大或减小)

按键盘上的6键激活纹理以查看

Invert Texture(反转纹理)和Inflection(弯曲)可以根据解算视觉效果自行勾选,本例勾选了Inflection。

下面的参数分别为:

Texture Time(纹理时间)

Frequency(频率)

Texture Scale(纹理缩放)

Texture Origin(纹理原点)

Texture Rotate(纹理旋转)

参数可自行根据效果调整,本例使用默认值。

为了给纹理添加滚动的效果,我们给Texture Origin(纹理原点)的X轴和Y轴创建表达式。

首先先给Y轴方向创建

右键点击Texture Origin(纹理原点)的Y轴,在弹出的选项中选择Create New Expression(创建新表达式)(如图)。

因为纹理是从下到上、从右到左翻滚的,所以X轴和Y轴的值要为负。

在表达式窗口栏输入“luidShape1.textureOriginY = time*-0.02;”(表示用时间控制Y轴方向的滚动,time为24帧)

然后换一行输入“luidShape1.textureOriginY = time*-0.02;”表示X轴方向的滚动。接着点击Create按钮创建表达式。

大纲中选择发射浓度的发射器fluidEmitter2(如图),在属性编辑器中找到Fluid Attributes(流体属性),给Density/V oxe/Sec(浓度/每秒)创建一个表达式(如图)。

输入fluidEmitter2.fluidDensityEmission = abs(noise(time))+100(abs表示绝对值,noise的取值范围是-1到1)

解算得到如图。解算前建议将Base Resolution(基础分辨率)设置高一些,这样解算的效果会更好,细节更丰富。

最后,输出解算动画。

打开Rander Setting(渲染设置面板),在Common(公共)下找到File Output(文件输出),修改Frame/Animation ext为如图所示带有#的任何一个,#表示关键帧。

然后找到Frame Range(帧范围),Start frame为起始帧,这里设置为1。End frame 为结束帧,这里设置为100(这两项值可根据需要自行修改)(如图)。

切换左上角到Rendering(渲染模块)(如图),在菜单栏中找到Render(渲染)——Batch Render(批渲染)(如图)。

渲染的IFF文件会保存到工程目录中。

相关主题
相关文档
最新文档