在线咨询




用Maya来做海浪冲刷海滩的效果(1)

edf40wrjww2news:news_content

现在很多人都热衷于研究各种插件来制作某种动画效果,笔者也是如此,插件的效率的确很高,而且效果也很不错,但是它也有局限性的稳定性的问题,毕竟不是一家出的软件。所以最好的办法还是开发利用三维软件本身的功能特点来制作效果。
笔者前一阵要制作一段海水冲击海滩的效果,出于对插件的迷信,一开始就把目光集中在realflow这个流体插件上,但是经过研究和实验,发现其效果并不很理想,最后还是用Maya本身的线变形功能来完成了效果。下面就将制作过程介绍一下:
1创建一个Nurbs平面,作为海面,改名字为sea, 将细分设置为60*60,删除历史,为方便动画,请参考如下做位置,角度和缩放的调整:

Translate x: 0
Translate y: 0
Translate z: -1.302
Rotate x: 0
Rotate y: 45
Rotate z: 0
Scale x y z: 16.107
2 再创建一个Nurbs平面,作为海滩,改名字为beach, 将其角度做一下旋转,角度不要太大,具体参数可参考如下:

Translate x: -0.011
Translate y: 2
Translate z: -2.67
Rotate x: 3
Rotate y: 0
Rotate z: 0
Scale x : 19.305
Scale y : 11.089
Scale z : 11.089
之所以将海面做45度的旋转是为了以后线变形(wire deform)方便。
如图所示:

3 现在我们来创建一条曲线,将曲线的位置接近海面并与海滩平行,其离海面距离不要太远,否则线变形不起作用。
4 选择缺省命令animation\deform\wire tool,选择海面后回车,再选择曲线后回车,线变形生效。我们将曲线向上抬起,可以看到海面发生了形变。现在将曲线向海滩方向略移,产生出海浪向前冲的形态。
在这个动画里我们主要用到wire变形中的envelope和 off distance这两个属性, envelope 的作用是控制变形的强度,当它为零时变形的作用就消失了。Dropoff distance 的作用是控制线变形的影响范围。
现在我们将通道栏中wire 变形Outputs 打开,将Dropoff distance 设为0.5左右。如图如示:

当我们使用线变形时,maya自动创建了一个线变形基础物体curve1BaseWire,海面的形变就是由于Maya计算出curve1 和curve1BaseWire的差别,如果我们移动curve1,海面只是发生形变,但如何才能做出海浪的前推动画呢?很简单,就是要把curve1和curve1BaseWire成组,或者使用命令deform \ edit wire \ parent base wire,maya会将两个物体成组为curve1Wires。
5 下面我们来做海浪的前推的动画,将时间栏移到第1帧,调整镜头位置,选择组curve1Wires做关键帧,将时间栏移到第30帧,将curve1Wires向海滩移动4个单位左右,(视离岸远近而调整)设定关键帧,为了做出海浪消退的效果,可以在第45帧左右将线向下移动一点。选择curv1,将时间栏移到第25帧,打开通道栏中的wire1,在envelope上设关键帧,此时的值应为1,将时间栏移到第30帧,在envelope上设关键帧,值为0.4,将时间栏移到第45帧,在envelope上设关键帧,值为0.1,做出变形强度的动画,这里所有的动画均没有绝对数值,完全根据动画的感觉而定,而且要配合第6步的簇节点的动画。

6 现在我们基本做出海浪前推动画,下面的工作就是要做出海浪不规则的边缘,先播放动画当海浪接近海滩时暂停动画,选择接近海滩的几个cv点,做deform \ create clusters簇变形, 这时我们适当地将簇节点向海滩方向移动一点,就会发现原来齐整的边缘产生出一些向前的突起,如图所示,这正是我们想要的效果,我们可以适当地调整簇的权重以使边缘更自然。



准备好加入上大AEC数字艺术Family了吗?