“烟魔”,他是某种邪恶力量的象征,一件看不到容貌的斗篷下面隐藏着未知的神秘,深邃之中的邪恶正在诡异的涌动。 
一、收集参考资料 我们在制作任何一个效果前,首先第一个要做的工作就是大量的收集各种各样的参考资料,因为这有助于我们在接下来的实际制作中更好的把握风格和效果。在这个效果里,“烟魔”主要有两部分组成,分别是烟和披风。 二、分析制作重点,确定制作方案 首先,我们要考虑的是烟的动态,在这个效果中由于“烟魔”本身只有一件披风,而身后的大量烟雾其实是要勾勒出整个披风的动态效果,以得到一种由烟雾形成的披风的效果,大致方法是通过使用一个已经具有动态效果的披风作为发射器来发射烟雾。所我们首先使用MAYA的nCloth创建出披风的动态效果。接下来就是烟雾部分,我选择使用3ds max的流体动力学插件fumeFX来制作,因为相较于maya的fluid模块来说,fumeFX的计算不但更快而且且细节部分更容易控制。所以,最后确定的制作方案就是,首先使用maya的nCloth模块来模拟解算出披风的动态效果,然后将动态效果导入max中使用fumeFX的物体发射来制作烟雾随披风抖动的效果。 三、具体制作 1.披风动态的制作 首先在maya中打开已经制作好的模型文件:  (图一) 我们先将其转化为nCloth物体,但是这时进行解算的话整件披风都会向下掉,所以我们需要将头部和肩膀部位固定住,这里我们使用绘制控制点的方式来控制nCloth跟随input mesh的程度。图中白色的区域将完全受input mesh的控制从而被固定住,而黑色部分则完全受nucleus解算器控制进行动力学解算。  (图二)
接下来打开nCloth的形节点,在dynamic properties卷展览,对布料物体的动力学属性进行设置,这里我们可以通过stretch resistance、compression resistance、bend resistance三个参数来控制不同布料的动态效果。接着我们还需要将input mesh attract的值设置为1,因为如果这个值为0的话,那么我们之前对布料进行的顶点绘制控制将不会起到任何作用。这个值控制了布料在进行动力学解算中跟随input mesh的能力,而我们之前的顶点绘制工作则是对这个值的精确控制,即控制布料上每一个点的input mesh值。  (图三)
继续打开nucleus节点,对解算器属性进行设置。首先将air density的值设置为0.98。解算器中还内置了一个风场,因为我们采用的是原地解算的方式,所以我们需要动力场来为布料物体提供动态效果,我们可以提高wind speed值为10.596,并通过设置wind direction和wind noise来控制风的方向和风力随机变化的程度。  (图四)
打开solver attributes卷展栏,将substeps(步长值)设置为12,将max collision iterations(最大碰撞迭代)设置为16,提高这两个值的意义在于进一步提高解算精度。  (图五)
由于本例中的布料物体比较简单,所以我们通过以上值的设置再配合各种自定义碰撞体就可以调节出想要的动态效果了 创建好缓存后我们就可以将制作好的披风动态导入到3ds max中了,在本例中我选择使用SD格式作为交换文件的格式,所以这要求maya和max都必须安装realflow的接口插件。选择布料物体后,点击工具架上的输出SD物体按钮,在弹出的对话框中勾选export deformation选项,输出。至此,我们在maya中的工作就全部完成了。  (图七) 2..烟雾部分的制作 打开3ds max,将刚才的SD文件导入到场景中,由于maya和max的默认单位不同,所以导入的文件有可能过小,这时候如果单纯的缩放物体会导致位移部分出现偏差,所以常用的办法是将物体进行打组处理,然后对组进行缩放。 调整好物体大小后,我们新建一个fumeFX的流体框,注意fumeFX的流体和maya的fluid类似,其流体计算只能存在于流体框内。
 (图八) 接下来我们为流体框添加资源物体,按照我们之前制定的制作方案,我们需要选择创建一个object Src,来使用披风发射流体,但是经过测试发现这种方法并不能满足制作要求,所以这里我们采用另外一种方法,那就是使用首先使用披风发射粒子,然后通过粒子发射流体。这样做的好处是我们可以通过对粒子的控制更加精确的控制流体的动态。下面我们按下键盘上的6键,打开max的particle flow面板,在视图控制面板单击鼠标右键,创建一个标准的粒子流,然后我们将其中的position Icon替换成Position Object,将Speed替换为Speed by surface,删除rotation和shape,并添加一个Delete。
 (图九) 将birth的参数设置为从-30帧开始,200帧结束,发射速率为1000,如图十。 点击position object,在参数对话框中选择发射器对象为已经解算好的披风物体,并勾选下面的动画图形选项如图十一。 点击speed by surface,设置其参数如图十二。 点击delete,设置其参数如图十三。
 这时,我们就可以看到已经有粒子从披风上发射出来了。
 (图十四) 接下来我们要将这些粒子作为fumeFX的发射源。点击新建一个particle Src,并将场景中的粒子拾取进去:  (图十五)
接下来,打开fumeFX UI对参数进行设置,首先将particle Src拾取进来。
 (图十六)
Radius设置了粒子作为发射器的半径值,而Veloctiy Multiplier设置了流体从粒子中发射出来后拥有的速度大小。  (图十七) 打开Gen标签,设置如下图:  (图十八)
继续进行设置,打开simulation标签,将time scale值设置为0.75:  (图十九)
设置turblulence为1.5,并将其noise部分的参数做如下设置:
 (图二十)
关闭fuel的结算,并将smoke和temperature部分参数设置如下:
 (图二十一)
这里需要说明的是disspipation Min和dissipation strength两个参数,首先disspipation Min值决定了烟雾在密度低于多少时开始进行消散,而dissipation strength则控制了消散的速度,这对烟雾的形态影响非常大。 接着将extra detail卷展栏下的mode设为wavelet turbulence方式,因为我们一会要使用这种方式来为烟雾增加更多的细节。 
(图二十二)
打开rend卷展栏,对渲染参数进行设置。首先将step size设置为5,这个值决定了烟雾的透光性。  (图二十三)
关闭默认的fire着色,并smoke参数设置如下: 
(图二十四) 这时进行解算后我们发现烟雾并没有向后运动的动态,所以我们在场景中创建一个风场,设置其方向和大小如下图,并将其拾取进fumeFX的流体框内:
 (图二十五) 接下来我们需要为场景中创建两盏灯光。首先创建一盏聚光灯作为key light:  (图二十六) 设置灯光参数,首先打开阴影开关,并设置阴影类型为光线跟踪阴影,接着在阴影参数卷展栏下勾选大气阴影。  (图二十七) 接着创建一盏平行光作为辅光,降低灯光强度,其他参数保持默认。
 (图二十八) 打开fumeFX UI,进入Illum面板,将上面两站灯光拾取进来,并激活下面的multiple scattering选项,设置参数如下:
 (图二十九)
一切设置完毕,这时我们就可以单击simulation按钮进行第一次模拟了: 
(图三十)
解算完毕后我们通过渲染看出,烟雾虽然已经有了大致的形态,但是缺乏细节,整体效果过于平了。接下来我们通过wavelet turbulence方式来增加细节。首先打开fumeFX UI的WT-P标签,设置参数如下:  (图三十一)
这里可以关闭fuel选项,也可以不管,因为我们已经在前面关闭了fuel'通道的输出。接下来将解算模式设置为wavelet模式,这时我们发现模拟按钮编程了粉色,这说明现在时wavelet解算模式,单击进行结算。完成后我们将cache选择为wavelet模式,就可以在预览窗口中看到相应的效果了。 
(图三十二) 至此,制作基本完成,接下来还可以制作燃烧的眼睛以及环绕在周围的薄雾等次级效果,创建一架摄像机就可以进行最后的渲染了。 由于篇幅所限,只能对一些重要的参数进行解释,但是其实一个效果制作往往需要很多很多的参数配合并多次尝试才能得到最终的结果,这里只是给大家提供一个解决类似问题的思路。很多初学者一直在纠结于到底是学习maya还是学习max,但其实maya和max都是非常强大的三维软件,但它们也只是软件、是工具,作为制作者的我们要合理的运用这些工具,我们在制作中应该扬长避短发挥不同软件各自的优势,这样才能保证以最高的效率制造出所需的效果。 
 最终效果
|