胡晓辉+余瀚欣
摘 要:在动画项目制作过程中常常需要制作印痕类的物体建模,采用传统手动方式既费事费力,也无法保证建模的真实性和准确性。文中以三维脚印制作为例,利用MEL语言编写了能快速建模的Maya模块。该模块通过分析脚底与地面的接触关系,计算出地面出现脚印的形状、深浅和时间,再利用bump mapping凹凸纹理映射法及Displacement mapping位移贴图法根据脚印贴图序列制作出地面上的三维脚印。这个模块制作三维脚印的原理同样可以用在其他三维印痕的制作。
关键词:Maya;MEL;插件;印痕;建模
中图分类号:TP391.41 文獻标志码:A 文章编号:2095-2945(2018)07-0014-02
Abstract: In the process of making animation project, it is often necessary to make the object modeling of imprints, and it is difficult to use the traditional manual method, and the authenticity and accuracy of the modeling can not be guaranteed. Taking the three-dimensional footprint making as an example, the Maya module which can model quickly is compiled by using MEL language. This module calculates the shape, depth and time of footprints by analyzing the contact relationship between foot soles and ground. Using bump mapping concave and convex texture mapping method and displacement mapping method, the three-dimensional footprints on the ground are made according to the footprint mapping sequence. This module can also be used in the production of other three-dimensional prints.
Keywords: Maya; MEL; plug-in; imprint; modeling
引言
三维动画制作已经在影视、媒体、教育等方面得到了广泛的应用。三维动画软件Maya作为顶尖的行业软件,以它功能强大,兼容性好等优点在通常作为首选的开发工具之一。在用Maya开发三维动画作品的时候,常会遇到一些场景中一些移动的物体留下地面痕迹的建模,比如脚印、爪印等印痕的建模工作,这些印痕的建模往往是情节和日常生活中的真是场景必不可少的,但是这些印痕的建模又比较繁琐,完全通过手工建模工作量大、准确性低。论文将以三维印痕中的脚印为例,运用Mel语言进行编写脚本,制作一个能在Maya中快速建模的插件模块。
1 建模开发思路
在Maya中,如果不考虑真实感细节特效的制作,有两种方法可以实现产生凹凸三维效果:
一是bump mapping凹凸纹理映射法:
采用bump mapping凹凸纹理映射法制作的的凹凸效果并不是真实的三维模型存在凹凸,而是一种纹理映射,是一种视觉假象。一般是在渲染完成后的模型表面上叠加凹凸纹理,造成表面的亮度波动变化,进而使人在视觉上觉得形状是凹凸的。bump mapping凹凸纹理映射法对计算机系统资源需求较少,也可以批量做出大量的凹凸映射,但是如果是近景镜头或者仔细观察,还是较容易发现真实性不佳,所以bump mapping凹凸纹理映射法适合于制作远景镜头中的凹凸效果。
二是displacement mapping位移贴图法:
采用displacement mapping位移贴图法通过真正改变模型几何形状的办法来再现凹凸,所以这种方法对系统资源的占用也比较高。它可以制作比较精细的凹凸,所以适合于制作近景或者是特写镜头中的凹凸效果。
无论是采用凹凸纹理映射法还是位移贴图法制作凹凸效果,最终都需要进行表面贴图。由于现实中印痕的出现往往是动态的、是逐步成型的,所以贴图也应该是动态进行的,要表现出印痕逐步产生的过程,这些动态地贴图就要采用动画文件来粘贴制作。
在动画项目制作中,场景是这样的:人物走在沙地或者是泥土上,脚步踩进地面再抬起来,另外一只脚重复这个过程,如此往复在地面上留下一行凹凸的脚印痕迹。单个脚印因为人类行走通常是脚后跟先着地,然后整个脚板从后到前全部落地,地面在压力下,脚印从后往前开始逐步凹下,外缘被挤压凸出,最终形成整个脚印。从一个单一脚印形成到一连串脚印形成过程从时间上来讲是动态的,从空间上来讲造成了地面的凹凸变形。此外,在近景和特写镜头中,根据现实的真实效果,还需要有阴影等细节表现。
动画场景中的脚印是由脚步踩到地面形成的,也即是当脚板低于地面产生三维凹凸,就生成脚印了。可以根据现实中脚印的出现原理来进行脚印的制作和贴图。具体思路是:根据脚步下地面模型的凹凸落差来判断是否生成脚印,脚印的大小和形状与脚掌模型一样,凹陷表面图案可根据鞋底花纹复制,再设置其它细节和材质,最后以此为模型蓝本,进行其余脚印的复制建模。
2 解决方案与制作方法
利用Maya中的凹凸特效之外,根据上述思路制作脚印效果还存在几个问题:endprint
首先,该如何根据脚板地面的位置判断生成脚印。由于地面可能坑洼不平和起伏,无法用地平面的水平坐标为基准确定是否生成脚印。
可以创建一个新的虚拟物体,把它的坐标位置确定为地面位置,在Maya中创建Locator,通过MEL语言geometryConstraint -w 12 $Ground_name “Foot_Locator”;将Locator和地面约束在一起来定义这个Locator贴着地面滑动来確定脚板踩到地面的位置。其中变量$Ground_name是要关联的地面位置,Foot_Locator是这个新建的Locator名称。通过这种方法,就可以将两者的接触面贴合在一起,即可以确定了这个Locator的Y轴坐标位置。
保证了Y轴坐标位置之后,就要依据脚步的轨迹确定Locator的X轴和Y轴坐标位置。因为脚板的形状也是不平整的,采用脚板BoundingBox矩形的中心点位置坐标为脚板的位置。然后将脚板BoundingBox矩形的X轴和Y轴坐标参数赋值给Locator的X轴和Y轴坐标,这样就可以保证随着脚步轨迹Locator随着脚板在地面上的位置移动。最后计算Locator和脚板之间的间隔,并且对这个间隔数值设置一个偏差值α,这个偏差值α允许脚板BoundingBox矩形的中心点可以比脚板最低点的位置有正负的细小偏差时也能复制脚板。
其次,脚板模型在复制之后会长时间保留,但在渲染阶段并不是根据脚印出现才进行渲染的,这就需要另外控制脚印出现和消失的时间。可以利用材质控制单独对每一个复制的脚板模型用surface shader表面着色器定义材质,再通过材质操作out matte opacity对脚板的透明度进行控制。脚印出现的时间一般就是复制出新脚板模块的时刻,在场景中可以设置脚印出现的前几帧画面渐变出现,在脚印需要消失的后几帧画面渐变为透明,使得脚印的变化不那么僵硬,更加显得自然和真实。
为了保证近景镜头的细节清晰度,所以在创建脚印贴图时设置垂直于地面的摄像机,通过选景框包含整个脚印范围尽量使得模型贴图最大化。设置好摄像机的镜头范围后,为了降低建模和制作的系统资源占用率,都会把要对出现新脚印的地面单独复制,如果是displacement mapping位移贴图法还需要对凹凸模型进行平滑化设置,使得贴图尽可能清晰。
设置好的摄像机位置可以控制Bump3D凹凸节点的相对位置,进而控制了Bump Projection,因此摄像机映射和Bump Projection选取范围相同,所以保证了这种由贴图控制bump mapping凹凸纹理映射法和displacement mapping位移贴图法脚步和脚印变化的一致性。
3 结束语
论文根据在动画制作过程中碰见的印痕制作问题,以脚印为例介绍了采用MEL程序快速建模的思路和方法。通过Mel语言程序,借助新建Locator和脚板BoundingBox矩形确定脚板踩出脚印的时间制作出脚印的模型贴图,再利用bump mapping凹凸纹理映射法和displacement mapping位移贴图法来实现地面上的脚印。通过这种原理制作的脚印动画,可以应用到其它很多印痕动画的制作之中,不仅可以是本文涉及到的人或者动物的脚印,也可以是场景中其它物体的运动造成的各种印痕。该方法制作的脚印建模,经过Mel程序实现和调试,证明用在脚印生成方面是可行的,此外降低了系统占有率,也便于实践操作,具有很好的应用前景。
参考文献:
[1]David A.D. Gloud.Maya 5编程全攻略[M].北京:电子工业出版社,2004.
[2]于海雯.Maya编程技术[J].电脑知识与技术,2013(36):8409-8410.
[3]李志豪,李才应.Maya 命令参考大全[M].北京:兵器工业出版社,2006.
[4]田玉婷.Maya的MEL语言在项目中的开发应用[J].黑龙江科技信息,2007(22):100.
[5]吴文哲.MEL语言在Maya场景设计中的应用[J].数字技术与应用,2010(3):65-67.
[6]胡晓辉,万嵩.基于软件工程及其模型的课件开发研究[J].高教学刊,2015(23):95-96.
[7]王澄宇.Maya脚本应用手册:表达式与MEL语言[M].北京:人民邮电出版社,2013.endprint