首先,根据maya场景单位(厘米),按1:10的比例将模型进行缩放。中山舰长度是65.9米(也有资料说是62.1米),在maya中的长度就是659厘米。
虽然不是生物角色那样的复杂运动,不过为了动画制作方便,仍需要进行一些控制器绑定。
【动画绑定】
1.使用简单的倍数表达式,通过nurbs曲线的位移来控制一些模型的圆滑,这样能让我同时对各个物体执行圆滑操作。
2.使用驱动关键帧,通过nurbs曲线的位移来控制船舵的转动。
3.自定义一个属性,通过与函数time建立倍数关系,控制螺旋桨的转动方向和速度。
4.通过各种约束,使用nurbs曲线控制舰炮的转向。
【动力学绑定】
在maya中使用动力学绑定时,都有一个重要的共同点,那就是动力学物体的局部坐标系,不能包含在控制它的运动物体的局部坐标系内。比如,控制粒子运动,会将力场作为运动物体的子级,而运动物体的子级不会同时包含粒子,否则粒子将产生二次运动。这种情况在使用骨骼ik,柔体,毛发系统,粒子系统,流体系统时尤为明显。布料系统和刚体系统比较特殊,动力学物体不受层级影响,但仍要注意与其他系统结合时的层级关系排布。对于动力学绑定而言,难点在于物体的整体缩放,特别是包含动力学曲线(或柔体曲线)+骨骼ik的时候:曲线1控制曲线2的形变,曲线2又通过ik控制骨骼的形变,骨骼又对模型进行着蒙皮控制。
要实现正确缩放,需要将模型之外的所有物体成组,然后对这个组进行缩放。尽管动力学曲线往往包含原始曲线和新动力学曲线两个层级,但由于它们是通过点层级进行控制,因此不受变形节点的影响,也就是说,它们是否同时为运动物体的子级是没有关系的。
因为动力学需要解算的关系,在绑定过程中发现一些异常变化是正常的。
小旗子使用的是n布料系统完成:通过transform的布料约束固定小旗和帆布,并对内核节点的windspeed设置一个随机表达式(nucleus1.windspeed=25*rand(1,2.5))。
桅杆边的绳梯使用了柔体动力学控制它们的摆动。通过柔体曲线控制ik链骨骼,配合扰乱场和重力场,制作出绳梯随机的轻微摆动。
轮船烟囱顶部添加流体容器制作烟雾效果,使用了maya2011的流体新功能:autoresize。流体发射器使用圆柱形的体积发射,关闭了heat(热能)和fuel(燃烧);流体形节点下主要调节的参数有density和velocity,然后是shading区块下的opacity(控制流体整体的密度疏密),此外开启textures区块下的 textureopacity,增加流体细节。尽管流体参数众多,但也不是每个参数都需要调节,应尽量避免过多参数的变动。最后使用一个“统一力场”,控制浓烟的方向。两个烟囱使用了两个流体容器,而不是两个发射器发射同一个流体,因为配合autoresize,使用同一个流体容器会发生一些异常的现象。远景使用的是10分辨率,近景则提高到20。
舰炮使用流体制作炮击效果(粒子适合做爆炸效果,而不是开炮效果)。炮击效果可分为3个部分:炮弹出炮管的一瞬间,气浪推动火光的过程,炮管冒出尾烟的结束(如果在地面,还会加入灰尘的扩散)。以正常的人眼为基本,开炮的一瞬间我们是无法看到气浪膨胀的过程的,以火光的最大范围作为起始帧即可,其中包含最为炽亮的炮弹流光;从下一帧到第5帧,是火光快速前进并结束的过程,其中伴随炮口快速喷射的白烟;间隔大概3帧后,炮管再次缓缓冒出白烟,结束过程。我使用了2个流体容器来模拟炮弹和火光。
炮弹使用的是没有动力学方格和发射器的流体容器,通过调节color的过渡方式作出此效果。
火光消失并产生黑烟,这个过程是发生了化学变化,只通过单纯的颜色和密度变化较难模拟,所以我开启了温度的动力学方格选项。颜色color设置为黑色,自发光incandenscence设置一个由明亮到黑色的过渡,并开启流体阴影。此外,对incandenscence和opacity的inputbias设置动画关键帧是整个动画过程中最重要的步骤。
textures开启incandescence和opacity是对整个特效过程细节的额外控制。
这里我还使用了流体形节点中的simulationratescale和maya2011新增的substeps。
maya2011新增加的流体发射器发射速度,对这个特效有着至关重要的作用。使用圆锥形的流体发射器,然后开启轴向速度:alongaxis,aroundaxis,directionalspeed。alongaxis是制作扩散效果,aroundaxis则是环绕效果,directionalspeed配合所设置的方向,是流体发射的主要方向。directionalspeed我取值50,其他两个为5,这样就模拟了炮击时的絮乱气流效果。
渲染时,远景使用的是分辨率20,近景则提高到40,并适当提高solverquality和shadingquality的参数值 。
最后是炮击后的残烟。创建一个圆柱体积的粒子发射器,放置于炮管,设置两个时间段的粒子发射:在产生大量黑烟前,炮管急速冒出白色的烟;在短暂停顿后,炮管内残留的少量白烟会再次涌出;在炮口附近放置两个体积类型的力场dragfield和volumeaxisfield,用于模拟白烟涌出时遇到的阻力和气流扰乱。制作这种和速度有很大关系的效果使用粒子会更容易控制。虽然maya有现成的n粒子和精灵粒子烟效,不过由于这些消耗资源比较大,所以我还是使用常规粒子来制作。这里只使用了粒子的radiuspp属性定义烟雾的扩散,其他的如透明度,粒子颜色,粒子形态,均通过粒子云材质进行调节。要让粒子烟雾和流体烟雾有比较好的结合,就需要分层渲染后在后期合成中进行一些调节。
本maya教程完。
所有评论