数码资源网

文章频道 软件下载 安卓下载 苹果下载

当前位置:首页文章中心动画专栏Maya → 昆虫翅膀拍打的动画制作

昆虫翅膀拍打的动画制作

时间:2005-11-05 14:56:09人气:205作者:网友整理
直升机战昆虫v1.4.5
直升机战昆虫v1.4.5 for Android
  • 类型:飞行射击大小:30.95M语言: 评分:4.3
  • 直升机战昆虫是一款十分休闲的小游戏,打击其他飞机,释放你的翅膀,进入不可思议的空...
立即下载
奇妙昆虫日记安卓apk(昆虫早教认知) v9.37.0 免费版
奇妙昆虫日记安卓apk(昆虫早教认知) v9.37.0 免费版 for Android
  • 类型:安卓学习阅读大小:66.70M语言:简体中文 评分:3.0
  • 宝宝巴士制作的昆虫早教认知软件,奇妙昆虫日记安卓apk专门为四岁以上的宝宝设计的...
立即下载
昆虫探险记v2.7
昆虫探险记v2.7 for Android
  • 类型:养成经营大小:373.29M语言:简体中文 评分:3.4
  • 昆虫探险记是一款非常适合儿童的科学探索类休闲益智游戏,好玩的模拟养成类手游,昆虫...
立即下载
当我们掌握了maya中expressions(表达式)的基础后,我们会发现自己经常用得着它们,比如最大限度的避免手动设置关键帧的麻烦。我认为表达式是maya中最有特色的部分,为了解说使用它们的基本用法,这个教程将展现如何创造一个非常简单的动画:使用速度控制属性完成一个小飞虫拍打翅膀的动画。这个模型十分粗糙,因为这不是我们这个教程的目的。

    1.创建三个nurbs球体,通过变形和移动完成一个粗略的飞虫身体和一对翅膀的建模,分别命名翅膀为 "rWing" 和 "lWing", 命名身体为“bug”或者其他,如果你喜欢,也可以赋予他们一些简单的材质。

    2.移动翅膀的轴点好让他们能围绕适当的轴(如图)旋转。

  3.将翅膀子关系与身体,使其能跟随身体移动。

    4.打开表达式编辑器(Window > Animation Editors > Expression Editor...)。 我们可以设其快捷键为ALT+e,(ALT+e在默认快捷键设置中没有被用到,这是个好的选择) 。在编辑器左边会看到我们当前选择的物体,而在右边是其可设关键帧的属性。表达式则是输入在底下的白框内。要知道的是我们输入的表达式不一定是与现在选择的物体关联的,我们可以为任何东西写表达式,例如别的物体,或者一个shader,任何我们想要的都可以。当然,如果我们已经有了一个选择的物体,就可以轻松的知道我们想控制的属性的确切名称了,因为所有的可设关键帧属性都已经列在该窗口的右边了。

[page]

  5.在Expression Name一栏中输入"wingFlap" ,接着在表达式的对话框(该窗口底下)中输入如下内容:lWing.rotateX = time * 10;
    点击 "Create" 使该表达式生效。这个句法是十分简单的,我们输入了物体的名字(确切的说是节点的名字),跟着是我们想要控制的属性和周期,在这个例子中,我们想要控制的是lWing的x轴,“time”属性是maya的内置值,它以秒为单位来跟maya交流,它以10为倍数因此运动效果也就更加显而易见了(翅膀拍打得更快)。在maya中每个表达式的表述最后都要用分号以示结束。点击“Play”,我们会看到翅膀旋转起来了

    6.查看Hypergraph,我们会看到lWing受wingFlap表达式的控制,而在Channel Box,lWing的x轴属性数据则变成了橙色,并为某样东西所控制,我们不能直接改变它。

 7.创建一个重复往返运动最简单的方法就是运用正弦函数。改动这个表达式为如下:
    lWing.rotateX = sin (time * 10) * 40;
    如果之前在表达式编辑器中输入的表达式不见了,只要点击Select Filter > By Expression Name,然后在左边的列表中点击wingflap即可。这个正弦函数的结果乘于40,也就是说此运动描述了一个大的弧形,当然,也可以在两个很小的数值范围内作往返拍打运动,这视乎我们在此输入的数值。点击“Edit”,在这里,此按钮代替了“Create”按钮,作用是更新我们对表达式所作的改变。如果出现"Error: Expression invalid after edit"这样的信息,清检查你表达式的语法,如果不修正这个错误,Maya将会自行执行你输入的最后一个“正确的”表达式,也就是 lWing.rotateX = time * 10;

    8.播放此动画,可看到翅膀作往返拍打运动。

[page]

  9.我们会发现这运动并不符合空气动力学,因为对应的一双翅膀在同一时间中X轴旋转的方向应该是相反的,也就是上下拍打的方向应该是一致的。为解决这个问题,我们在右边翅膀表达式的正弦函数前加一个负号,如下:
    lWing.rotateX = sin (time * 10) * 40;
    rWing.rotateX = -sin (time * 10) * 40;

    10.播放动画,现在这只小飞虫能生存下去的机会更大啦

 11.现在假设我们想要控制翅膀拍打的速度。当前,这个速度由表达式中 *10 这部分来决定。为翅膀的速度创建一个属性以让我们去改变动力速度甚至为它设置关键帧。在属性编辑器中,选择这个飞虫的转换节点(就是名为 "bug"的那个),接着选择Attributes > Add Attributes。
    在属性名字(Attribute Name)一栏中输入WingSpeed,确定“Float”和 "Make Attribute Keyable"两项为选择,并设置最小值(Minimum value)为0,最大值(Maximum value)为10,默认值(Default value)为5,点击ok。——按钮“add”让我们可以在不必每次都关闭此窗口的情况下增加几个属性。

    12.现在于飞虫转换节点窗口的附加属性中,我们会发现一个新的属性:“Wing Speed”,并已经根据我们的设置要求定值在5,现在我们不必管它。

[page]

 13.让我们先回到表达式编辑器,并将两行表述中的10数值改为bug.WingSpeed,如下:
    lWing.rotateX = sin (time * bug.WingSpeed) * 40;
    rWing.rotateX = -sin (time * bug.WingSpeed) * 40;    

    14.需要注意两点:大小写(当我们要作定义时能正确的输入属性名字是非常重要的)和我们正在通过一个属性---在飞虫节点之下---控制着这个翅膀的事实,移动WingSpeed此属性的滑块并观察翅膀运动的效果。

    15.重做这个练习,我们可以在各个步骤中尝试不同的方法,输入不同的数据,这样我们可以对此教程理解的更为透彻。别忘了,我们始终没有设过任何一个关键帧。Enjoy。

相关文章

感谢速联科技、八度网络、九九数据、亿恩科技、群英网络赞助部分带宽!

关于本站 | 联系方式 | 版权声明 | 下载帮助(?) | 网站地图

Copyright 2002-2020 95262.com 【数码资源网】 版权所有 粤ICP备2020128507号-1

本站所有软件来自互联网,版权归原著所有。如有侵权,敬请来信告知 ,我们将及时撤销。