MAYA粒子特效动画模块研究

2018-02-03 10:30胡晓辉
科技创新与应用 2018年5期
关键词:脚本动画

摘 要:粒子运动和变化是三维动画中常见的特效,仅仅通过Maya等三维软件自带的粒子制作系统不能高效、便捷的制作一些特定的粒子特效。文章对物体飘落特效的动画模拟开发设计了一个基于MEL语言的脚本模块,首先通过对物体真实飘落特征的分析将它们分为了小花瓣类、大花瓣类、薄片状、絮状四类物体,根据物体飘落的物理特性进行了受力分析,建立了物体飘落仿真模块开发的计算模型,研究了四类物体的重力因子、阻力、风力、旋轉速度等仿真参数。该模块可快速制作物体飘落的动画特效,同时能通过变量参数的修改反复变化动画效果。

关键词:Maya;粒子特效;动画;MEL;脚本

中图分类号:TP391.41 文献标志码:A 文章编号:2095-2945(2018)05-0193-03

Abstract: Particle motion and change is a common special effect in 3D animation. The particle making system with Maya and other 3D softwares can not make some special effects efficiently and conveniently. In this paper, a script module based on MEL language is designed for the animation simulation of object falling effects. First of all, through the analysis of the real falling characteristics of objects, they are divided into small petals, large petals, thin flake, and flocculent, and according to the physical characteristics of the physical characteristics of physical analysis, the calculation model of object falling simulation module is established, and the simulation parameters such as gravity factor, drag force, wind force and rotation speed of four kinds of objects are studied. This module can quickly produce the object falling animation special effects, and meanwhile repeatedly change the animation effect through the variable parameter modification.

Key words: Maya; particle effect; animation; MEL; script

引言

烟雾、爆炸、物体飘落等常见的自然现象在三维动画制作中都是通过粒子系统来制作的。这些特效的制作水平直接影响到动画的整体逼真度,一些好的动画作品,往往是通过这些粒子动画的优异表现来体现的。对开发者来说,仅仅用动画软件自带的粒子系统去制作这些特效是远远不够的,而且由于自带粒子系统的针对性不强,做出的粒子特效往往强差人意,所以应用MEL语言对Maya粒子系统进行二次开发是高阶动画制作者常见的建模手段。文中以物体飘落动画为例,研究粒子特效动画模块的开发方法。

1 Maya粒子系统

在动画制作中的特效制作主要有物理仿真系统与粒子模拟系统,这两个系统虽然在制作过程中要占用大部分的时间和系统,但是经过繁琐复杂的工作之后往往能做出让人觉得不可思议的逼真动画效果和视觉体验。这两个系统常用在物体飘落、粒子运动、爆炸、火焰与云雾的动态效果上。

粒子是动画场景中的点状物体,它们可以组合变化成各种需要动画模拟的对象。在制作粒子动画时,首先要确定粒子出现和产生的位置和形式,再确定粒子的运动轨迹和运动方式,粒子的生命周期从它出现到它消失位置。粒子动画可以循环运动生成整体逼真的动画效果。粒子系统的主要优点是可以通过简单的粒子运动来模拟现实中的复杂物体运动。

Maya带有粒子模拟系统,这个自带的模块可通过菜单直接调用,但是这个自带的模块操作繁琐,当需要反复进行模拟测试的时候需要不断切换菜单,重复性工作较多。对动画制作的高阶用户和专业用户来说,有些场景的制作在每个动画项目中都可以多次用到,每次都通过系统自带的粒子模拟系统已经满足不了特效制作的需要了。基于Maya的开放性,各种MEL语言制作的脚本插件应运而生,比如渲染分层插件、绑定角色插件等等,这些插件都是为了快速实现一定的动画制作功能而开发设计的。为了提高制作效率,更合理地为动画制作项目分配系统资源可以用MEL语言编写功能脚本代替Maya中传统的手工重复操作方式来制作动画特效。而且这种脚本还能不断地根据实际效果和需要通过动态调整变量的方式来反复建模,反复修改。

对于物体飘落动画来说,Maya本身自带的参数调节和测试,也不一定能实现特定的仿真效果。依据场景开发的需要,对飘落物体进行受力和运动分析,再结合MEL语言在调用Maya自带粒子模拟系统的同时进行脚本插件开发设计。

2 粒子特效动画MEL脚本的关键问题

动画制作常用的飘落物体主要有四类,分别是:小花瓣类花朵桃花,梅花等;大花瓣类花朵白玉兰,荷花等;薄片状植物竹叶,柳叶等;絮状植物蒲公英,羽毛等。它们的飘落受力主要是重力的加速作用力和空气阻力的减速。这些飘落物体的重力相同,但是由于各自的形状和密度不同,受到的空气阻力不同,进而在现实中它们在空气中的飘落表现也不同。可以先对标准物体下落进行分析,再根据蒲公英、桃花、白玉兰、柳叶各自的特点进行参数化设计。endprint

对规则物体飘落进行受力分析,物体飘落是由重力引起的,重力方向垂直向下,物体不同,重力影响因子G不同。在下落的过程中因为有空气的存在,物体受到与运动方向相反的空气阻力f。此外还有水平方向的风以速度u吹来。物体飘落的轨迹可以用下面公式表示:

其中,S为物体受力截面,θ为物体落下的倾斜角,也就是运动轨迹与垂直方向的夹角。

物体受力截面积S可以根据下面公式求得:

P越小也就代表物体的飘落倾斜角θ越小,运动轨迹也就越水平; P增大,物体的飘落倾斜角θ也增大,运动轨迹也就越来越垂直。经过分析重力影响因子G值从小到大排序,依次是蒲公英、桃花、柳叶、白玉兰;空气阻力f值从小到大的排序,依次是柳叶、桃花、蒲公英、白玉兰。

上述研究只是考虑了飘落物体的质量、密度、大小等基本情况,但是在实际生活中这些飘落物体的上述数据都不是均布的,在飘落过程中,也有可能转动和翻滚,造成迎风面受力和空气阻力的起伏变化,所以在创建动画时为了逼真模拟物体飘落,还需要考虑物体的旋转速度。如果侧面的风速不发生变化,那么旋转速度可以不变化,物体飘落且呈现周期性的摆动轨迹。对于上述四种飘落物体,Smax-Smin摆动值从小到大依次排序为桃花、白玉兰、柳叶、蒲公英;m值从小到大排序,依次是蒲公英、桃花、柳叶、白玉兰;所以白玉兰摆动最小,其次是桃花,接着是柳叶,蒲公英的摆动最大。摆动的时候,它们的摆动频率相同。

3 飘落粒子的参数

粒子飘落物体不同导致了飘落的形态和速度等视觉感官的不同。为了尽量做到真实飘落状态的仿真,可以按照下列分类对脚本模块进行参数设置。除列出的粒子飘落物体之外,对于不在范围内的其余粒子飘落物体,也可以依据他们和下列物体的形态和大小对比,自行调整相关参数数据再进行测试。

3.1 小花瓣类花朵桃花,梅花等的参数可以按如下进行设置

当默认每秒飘落的花瓣数相同时,设置Gravity重力场为3.4-3.6,设置random随机数为7.1,设置turbulence干扰场为55,设置decay衰减值为0-0.15,设置speed速度为0.6,设置Rate速率为0.15,设置Scale 缩放大小为4-12,设置air空气力场为2.5,设置lifespan生命周期为2,设置Rotate Speed 旋转速度为1.5。

3.2 大花瓣类花朵白玉兰,荷花等的参数可以按如下进行设置

设置Gravity重力场为7.2-8.7,设置random随机数为7.5,设置turbulence干扰场为65,设置decay衰减值为0-0.16,设置speed速度为0.6,设置Rate速率为0.15,设置Scale缩放大小为65-80,设置air空气力场为2.5,设置lifespan生命周期为2,设置Rotate Speed旋转速度为1.2。

3.3薄片状植物竹叶,柳叶等的参数可以按如下进行设置

设置Gravity重力场为4.3-4.7,设置random随机数为6.5,设置turbulence干扰场为69,设置decay衰减值为0-0.17,设置speed速度为0.6,设置Rate速率为0.15,设置Scale 缩放大小为35-60,设置air空气力场为2.5,设置lifespan生命周期为2,设置Rotate Speed旋转速度为0.9。

3.4 絮状植物蒲公英,羽毛等的参数可以按如下进行设置

设置Gravity重力场为0.3-0.7,设置random随机数为8.5,设置turbulence干扰场为45,设置decay衰减值为0-0.18,设置speed速度为0.6,设置Rate速率为0.45,设置Scale 缩放大小为55-110,设置air空气力场为2.5,设置lifespan生命周期为2,设置Rotate Speed 旋转速度为 0.6。

根据物体飘落的原理,相似的物体可以用同样的模块更换为相近的参数。在制作三维动画时根据剧情需要设置飘落物体发射位置,根据场景中的动画效果对参数进行调整和设置。

4 结束语

本文针对物体飘落动画的系统插件模块开发进行了分析和研究,经过对Maya软件自带的粒子模拟系统的分析,依据飘落的物体的物理特性分成了小花瓣类、大花瓣类、薄片状、絮状四类物体,建立了物体飘落仿真模块开发的计算模型,设定了这四类物体的仿真参数。运用MEL语言开发出该插件模块之后,在动画场景中分别对桃花、白玉兰、柳叶、蒲公英四种飘落物体进行建模和动画测试,验证了论文中数学模型和建模参数的合理有效。

参考文献:

[1]羅汉.MayaMEL动画编程从入门到精通[M].北京:兵器工业出版社,2005.

[2]王澄宇.Maya脚本应用手册:表达式与MEL语言[M].北京:人民邮电出版社,2013.

[3]田玉婷.Maya的MEL语言在项目中的开发应用[J].黑龙江科技信息,2007(22):100.

[4]张晓波.基于MEL语言的粒子飘落动画模拟研究[D].上海:上海交通大学,2013.

[5]刘娟娟.基于Maya MEL语言的数字媒体动画控制技术的研究[J].电子技术与软件工程,2015(1):115.

[6]吴文哲.MEL语言在Maya场景设计中的应用[J].数字技术与应用,2010(3):65-67.

[7]夏航.MAYA软件中使用MEL脚本设计粒子碰撞[J].中国现代教育装备,2010(17):31-34.

[8]胡晓辉,万嵩.基于软件工程及其模型的课件开发研究[J].高教学刊,2015(23):95-96.

[9]Mark R.Wilkins.Maya动画师MEL脚本编程全攻略[M].北京:电子工业出版社,2004

[10]单秀梅.基于Mel语言的CG仿真及其应用[D].上海:上海交通大学,2009.

[11]耿卫东.数字动漫设计基础[D].杭州:浙江大学,2008.

[12]李志豪,李才应.Maya命令参考大全[M].北京:兵器工业出版社,2006.

[13]何伟.MEL脚本语言在数字集群动画中的设计与实现[D].北京:北京工业大学,2012.

[14]贺瞿.基于动力学原理的Maya粒子特效插件[D].上海:上海交通大学,2011.endprint

猜你喜欢
脚本动画
嘘,有熊出没
自动推送与网站匹配的脚本
揭秘油画动画 逐帧堆砌的精致艺术
动画迷,变身
举一反三新编
捕风捉影新编
动画总动员
狡猾的狐狸
愚公移山