MAYA软件中使用MEL脚本的设计粒子碰撞.docVIP

MAYA软件中使用MEL脚本的设计粒子碰撞.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MAYA软件中使用MEL脚本的设计粒子碰撞

MAYA软件中使用MEL脚本的设计粒子碰撞   摘要:目前,随着三维技术的普及与进步,MAYA软件在三维动画、影视特效中的应用越来越广泛。但是,作为MAYA软件核心技术之一的MEL脚本在国内成功运用的案例还非常有限。本论文从艺术设计人员的角度和思维方式出发,将三维动画中频繁使用的粒子碰撞效果运用MEL脚本进行设计,从而带来制作时间的缩短和成本的降低。   关键词:MAYA软件;粒子碰撞;MEL脚本      在影视特效中,粒子碰撞效果经常会被用来模拟一些自然现象,比如:流水、火焰、落石等。这主要由于如果采取实际拍摄的手法需要昂贵的高速摄像机和微距镜头等设备才能实现,且其中的细节表现始终是一项难度较高的技术。在一些成本、条件有限且精度要求较高的片断中,影视业界经常会采用三维软件模拟的创作手法来加以表现。   在MAYA软件中为了逼真地模拟出自然界物体的运动效果,往往需要设计师使用上百个命令,还需要不断地进行调整和测试才能够逐步接近。而且,这种效果经常会需要在不同作品中反复使用到,只是为了不同场景需要进行细微调整,如果每一次都要凭借经验进行庞杂的设定过程则会大大降低工作效率。那么,如果能够将这些复杂的操作使用MEL脚本,编辑成为可以“一键式”执行的程序化命令将会大大简化设计师的工作时间和精力。这种脚本的设计与开发在国内外都是有着很好的需求和市场前景的。      一、创建场景   粒子特效在MAYA软件中经常用于模拟很多自然现象和场面镜头,如:电影《指环王》一片中魔兽军团攻城镜头。在使用该项功能时,往往还需要搭配动力学的部分功能,使得场景效果更加逼真。   在脚本中,主要设计粒子对象的基础形态,以及如何使它们与表面产生相互作用的力,还有就是指定系统中的一个或多个粒子与一个或一组表面碰撞并产生相互作用。   首先,在场景中,利用MEL脚本命令创建出一个平面:   polyPlane -name Floor -width 1 -height 1 -subdivisionsX 4 -subdivisionsY 4 -axis 0 1 0;   然后,使用setAttr命令重命名并放大该平面:   setAttr Floor.scaleX 6;   setAttr Floor.scaleZ 6;   现在需要在场景中添加一个设定方向的发射器并将其命名为Emit,并将发射器类型设定为Directional,频率Rate为30,方向为X=0,Y=-1.0,Z=0,扩散度为0.2。由于是对于发射器创建的测试阶段,为了减小计算量粒子的频率仅设置成为30个/秒。将发射器沿着Y轴移动4个单位,使得被发射粒子在穿越Floor对象前需经过一段时间。下面创建发射器的MEL代码:   string $eObject [] =`emitter -name waterEmit -position 0 26 0 -type direction -rate 100-speed 0.2 -spread 0.2 -dx 0 -dy -1 -dz 0`;   在命令中,通过使用单引号将命令字符串括起来,也能够创建一个包含创建发射器命令返回结束的字符串数变量。通过这个操作,字符串数组将包含被创建节点的名称。发射器名称Emit将存入数组第0个位置,并且它的形状节点名称EmitShape将存入数组第1个位置。   由于在MAYA软件中,粒子的发射器和粒子是两个独立开来的节点,创建发射器并不能产生出粒子,因此要创建一个粒子对象。完成操作后,还需要将这一结果存入另一个字符串数组变量,然后利用connectDynamic命令将存储在两个字符串中的结果用动力学的方式连接起来。这样做的目的是明确地指出发射器应该发射哪些粒子:   string $pObject [] =`particle`;   connectDynamic ?Cemitters $eObject [0] $pObject [0];   现在将场景动画的默认时间更改为1000帧以便使粒子能够充分解算,并观察效果(如图1所示):   playbackOptions ?Cmin 1 ?Cmax 1000;      图1 创建场景         二、碰撞粒子   通过上一步的命令,虽然创建出来了被碰撞物体Floor和模拟水流的Particle1,但仔细观察会看到,粒子穿透了平面而并没有与之发生碰撞。因此,需要添加碰撞节点,并通过这个节点将粒子与平面连接,以使其落到平面后产生应有的反弹效果:   collision ?Cresilience 1.0 ?Cfriction 0.0 Floor;   connectDynamic ?Ccollisions Floor

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档