咨询电话:400-810-1418服务与监督电话:400-006-6572

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

发布时间:2019-10-18 15:59:03

案例分析

《植物大战僵尸》风靡全球,在游戏刚开始的时候有一个卷草皮的效果非常经典,如图所示。本案例将Maya的新布料系统与毛发系统联系起来,制作一个卷草地效果。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

在制作过程中需要注意以下几点:

1 制作之前需要考虑草皮的质感,它应该属于比较厚重柔软的材料,弹性和抗拉伸性都比较强。

2 由于草皮像蛋糕卷一样卷曲,需要使用一种方法将模型卷起来,再用布料模拟片头中草皮展开的效果,卷曲的方法有很多种,只要能达到目的就是好方法。

3 关于草皮的厚度,应该在完成布料计算后添加,这样可以节省动力学的解算时间。

4 草皮上的小草可以使用Maya的Fur进行模拟。

最终效果如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

制作步骤

一、制作草皮卷模型

(1)启动Maya,设置study\cloth. c为我们的工程,并进入到该工程的Scenes文件夹下,打开场景。单击渲染按钮,渲染效果如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

目前场景中没有任何物体,只有一个《植物大战僵尸》游戏的背景。我们将在场景中添加三维的草坪。

Tips:请使用Camer a01视图与Mentaray渲染器渲染场景。

(2)执行Create> Polygon Primitives> Plane (创建>多边形基本体>平面)菜单命令,创建一个平面模型,并将模型的细分段数调节为5 x 70的正方形网格,草皮长度大概为土地1.8倍的长度,草皮的宽度大概为一块砖的宽度,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

Tips:平面模型的长度和段数是作者前期经过测试得到的结果,因为模型破过弯曲变形后再展开会收缩变短,所以建模的时候需要适当地将模型加长,预留足够的长度。

(3) 选择模型,按下F2键切换到动画菜单模块,执行Create Deformers>Nonlinear> Bend (创建变形器>非线性>弯曲)菜单命令,并调节弯曲的参数,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(4)选择Bend变形器,将变换坐标调节到图所示的位置和大小,就可以得到一个卷曲的效果。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(5)最后删除卷曲好的模型的历史记录,并将模型的位置摆放在土地的左边界上,具体位置与游戏中的草皮一致,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

Tips:以上参数仅供大家参考, 我们的目的是制作一个像蛋糕卷一样的模型,所以可能需要大家耐心地进行测试。

二、制作草皮卷动态

(1)选择上一小节中制作好的模型,将当前菜单模块切换到nDynamics,执行nMesh> Create nCloth (nMesh> 创建nCloth)菜单命令,将模型转化为布料。为了不让草皮乱跑,选择最左的一排 布料点,执行nConstraint> Transform(约束>变换)菜单命令,将布料边缘处固定起来,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(2)选择布料模型,按Ctrl+a键打开其属性编辑器,进入到nucluse标签中,修改Gravity and Wind (重力和风)卷展栏下的Wind Speed (风速)值为10,设置Wind Driection (风向)值为0、0、-10,即-Z轴方向;再勾选Ground Plane (地平面)卷展栏下的Use plane (使用平面)选项,修改Plane Stickiness (平面粘滞)值为2。

这样,草皮卷会受到风力的影响慢慢地在地平面展开,并死死地粘在地面上不会乱动,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(3)播放动画进行查看,效果如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

动画的效果与我们想象中的样子相差甚远,一开始就完全塌陷了,这是因为当前的模型只是一个单片,而真实的草皮是有一定厚度的实体。 下面我们来解决这个问题。

在这里,布料模型虽然是单片效果,但在布料系统中有一个Thickness (碰撞厚度)和Self Cllide Width Scale (自碰撞宽度缩放)的属性可以帮我们解决这个问题。

(4)选择布料并打开其属性编辑器,找到ollisions (碰撞)卷展栏下的Self ollision Flag (自碰撞标志)属性,将其修改为Full Face (完整曲面)方式,使布科得到较高的自磁撞精度,然后将Thickness (厚度) 偵修改为0.01,设直Self Cllide Width Scale (自磁撞宽度比例)值为10.4,以自碰撞的厚度正好填满模型中间的空險为标准。为了查着方便,可以在Solver Display (解算器显示)属性下选择Self Cllision Thickness (自碰撞厚度)方式。调节效果如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

 (5)设置完成后,再次播放动画查看效果。

如图所示,这一次的伸展动画可以顺利进行,但是在伸展的过程中草皮发生T拐弯的现象,这是动力学计算过程的一个误差,我们需要继续解决这个问题。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

 (6)分别在草皮模型的两边创建两个方盒子,将草皮模型夹在中间,然后选择两个方盒,执行nMesh>Create Passive ollider (nMesh> 创建被动碰撞对象)命令,将两个盒子设置为碰撞对象,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

 (7)选择两个盒子,按下Ctrl+h键将其隐藏,再次播放动画查看效果,如图所示,当前的动态效果已经很不错了。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

 (8)布料动态测试结束后,选择草皮模型,执行nCache >Create New Cache (nCache> 创建新缓存)菜单命令,为布料添加缓存,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(9)缓存创建完成后,查看动画效果和草皮长度,如果草皮长度和土地长度不一致,可以适当用缩放工具调整一下,如果长度相差太多,则只能重新制作了,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

 (10)选择布料模型,按F3键切换到多边形菜单模块,执行Edit Mesh> Extrude (编辑网格>挤出)菜单命令,为布料制作一个厚度,厚度和之前的碰撞厚度大概相似,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(11)选择布料的所有点,执行Edit Mesh> Transform Compoment (编辑网格>变换组件)命令,并将设置窗口中的Random (随机)值为1,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(12)设置完成后,单击Apply按钮执行命令,这个工具的作用是,可以让每个点移动、旋转和缩放的距离有所变化,以实现凹凸不平的效果,如图所示。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

(13)选择布料模型,执行Mesh> Smooth(网格>平滑)菜单命令,为模型添加细分段数。如图所示,草皮卷动态制作完成。

草皮铺卷特效制作案例教程——以《植物大战僵尸》为参考(一)之制作草皮模型与动态

Tips:根据每个人的模型与布料尺寸的不同,我们需要耐心地进行测试,以上参数仅供参考,大家请根据实际的制作情况灵活修改参数。

(未完待续)