CG动画制作——实训项目前期工作(四)

在我们的场景中,有一个镜头为小男孩儿独自前往神庙,然后拿走神器的剧情,我们希望在其中有一个剧情——已经被人们供奉起来的刀被镀成了金色,人们已经不再将它当做武器。但是我们的小男主角拿起了他,金色的碎片剥落后,露出了古老的黑色长刀。我们这周就制作了这么一个碎片剥落的特效,主要用到了Maya的粒子系统,以及AE和PS的辅助。

首先看一下最终效果:

主要用到的工具依旧为MAYA2015的动力学板块下的粒子系统,除了自带的属性外,还有一些简单表达式。

首先将模型导入进来,再复制一个新的模型,附上新的材质,因为我想做出一个金色的碎片消散,露出古朴的长刀的效果,所以使用了简单的金色Lambert。再将这个新的copy模型缩放的大一些,可以刚好包裹住我们的标准模型。


我们首先制作这个金色的外壳慢慢消隐的过程。

在Windows→Generals Editors→HyperShade中,找到我们的金色材质,然后Crtl+A打开属性编辑器,在其透明度上添加一个节点,我们使用渐变的节点。

在Ramp中,黑色代表不透明,白色代表完全透明,Maya会自动帮我们生成一个线性的渐变。我们将其方向改为U型渐变,并将黑色的一段拖至最右端,让其完全不透明。



选中黑色后,在选定位置属性上,我们在第20帧,数值为0.99的位置K一帧,右键设置关键帧。然后我们需要做的就是把他们的选定位置同时左移,这样的话模型就会从左至右慢慢变得透明。根据你想要的消隐速度,在适当的时间K帧。


现在的刀虽然已经有了渐渐消失的效果,但还是太平滑,没有碎片剥落的感觉,我们先在ramp属性旁的place2dTexture属性栏里,将其旋转帧调至30左右,然后再在ramp中将噪波和噪波频率调整一下。使其有斑驳的感觉。


到这里消散的效果就基本完成了,为了之后方便调整,我们将这个效果导出成贴图。在HyperShade中,在纹理栏下选中我们刚使用的渐变结点,然后渲染纹理范围,在后面的方框中,我们可以选择纹理渲染的范围。格式可以选jpg或tga的格式。


在HyperShade中显示我们材质的输入和输出,我们将其中Ramp和刀的材质的链接Delete掉。


这时我们再进入材质属性面板,重新在透明度上添加一个节点,这次我们选择file文件节点,找到我们刚才保存的文件使用。连接之后记得将属性栏中的“使用图像序列”勾上。


链接之后,有的时候会出现一个问题,那就是我们的刀没有透明度的变化了。这是因为Maya自己为我们创建的链接是将文件的透明度赋给了我们材质的透明度,但是我们的jpg文件是没有透明通道的,我们需要将它的RGB通道赋给材质的透明度上。

在HyperShade中将文件与材质的链接删除,再重新连接。方法是用鼠标中键将文件拖到材质上,选择other其它,将文件的输出颜色outcolor赋给材质的transparence透明度上。


Maya提示连接成功,我们第一步的刀的消失也就完成了,其实进一步的话还可以为渐变的白色加一个分形,使其有更好的剥离效果,有兴趣的可以尝试一下。

我们首先选中我们copy的物体,然后在Maya动力学模块下的粒子菜单下,选择从表面发射,然后在右侧的属性编辑器中,在emitter中,将粒子的发射模式改为表面,然后将发射速率调大一些直到适合场景。

创建完成后我们可以播放一下,我们发现粒子会不断的发射,由于我们需要的效果只是一层碎片的剥落,所以我们对粒子的发射速率进行K帧,让其在模型透明后,速率调至0,停止发射。



我们可以看到,粒子从模型的表面均匀的向外发射,我们为粒子添加一个场,来控制粒子向斜上方飞散。我们可以选择重力场,但是这里我选择了曲线的方式,因为曲线方式更加灵活,方向和参数的选择也较多,如果要求不高的话,这届添加重力场然后改变方向也可。

我们先沿着我们想让粒子运动的方向画一条曲线,然后选中曲线,在场→体积曲线中创建一个场。此时的我们的粒子并没有什么变化,因为场和粒子还没有连接。同时选中场和粒子,在同样的菜单下选择影响选定对象。这样粒子就会沿着曲线方向运动。

将场的半径调大,直到能完全包裹住我们的模型和粒子,再适当调整一下沿轴的场强和幅值,以及湍流的属性,让粒子的运动更随机一些,这个看个人需要。


此时粒子发射已有雏形,我们创建三个简单的面片,作为粒子碎片。


选中粒子和我们的面片,执行emitter→instanse(实例替换)命令让发射的粒子变为我们碎片的形状。

此时还有一个问题,就是在我们之前制作过刀渐渐消隐的过程,但是现在在消隐时,已经变成透明的部分仍会发射粒子,我们需要让它不再发射。

选中我们的粒子发射器,在属性中有一个纹理速率的属性。

打开HyperShade,将我们之前制作的Ramp结点用鼠标中键拖到纹理速率上,并勾选启用纹理发射。


这样我们的粒子就会按照我们的纹理发射粒子,为了做出先剥落,再停止发射的效果,我们将刀的消隐比粒子发射稍慢一些,这是就用到了我们上篇缓存好的渐变贴图。

我们为图像编号创建一个表达式:file3.frameExtension=frame-20;使第二十帧变为第一帧,这就是渲染纹理贴图的目的,既可以保证渐变相同,又可以改变它的时间。


现在碎片已经可以从刀上发射出了,但是所有的碎片都还保持着相同的角度和形状,我们创建的三个碎片也只显示了一个,我们需要用表达式进行控制。

我们来进行最后的步骤,每粒子的表达式编写。

在粒子的ParticleShape属性中,为其添加动态属性→常规。

我们先控制它的旋转属性,将其命名为myrotate,属性类型改为每粒子。


创建完成后,在上方的每粒子属性中,我们就可以看到我们创建的变量,相同的方法我们再创建myindex,控制碎片的形状。


右键为其创建表达式:

particleShape1.myindex = rand(0,3);

particleShape1.myrotate = rand(0,360);

生成两个随机数,死一个为1到3,第二个为1到360。


在同样的属性下找到实例属性,分别在旋转和对象索引中替换成我们的变量。

这样,粒子就可以在分散的过程中具有随机的形状和旋转了。


最终的效果就完成了,最后调整一下摄像机和灯光,渲染一下看看效果。


猜你喜欢

转载自blog.csdn.net/cg_project/article/details/80158298