当前位置:编程问答 > Maya >

Maya 4.0 刚体和柔体-刚体动力学(2)

问题:Maya 4.0 刚体和柔体-刚体动力学
    下面是制作一个刚体动画的实例。具体操作步骤如下:

(1) 创建一个新场景。创建一个 NURBS 平面并且将其调整到与 Maya 栅格大小相当。然后创建一个半径为 1 的 NURBS 球体,并且把它移到平面上方。如图 11-7 所示。

图 11-7 创建一个新的场景

(2) 选中平面,进入 Dynamics 模块,执行 Soft/Rigid Bodies → Create Passive Rigid Body 命令。现在所选平面成为被动刚体。

(3) 选中 NURBS 球体,执行 Soft/Rigid Bodies → Create Active Rigid Body 命令,所选小球成为主动刚体。

(4) 为了使动力模拟可以正常播放,播放速度设置为 Free ,以便物理引擎计算进入到下一帧所需的数据。选择 Window → Setting/Preferences → Preferences 命令并选择 Setting/Timeline 命令,或者单击位于屏幕右下方的 Animation Preferences 按钮,都可以激活同一个对话框。在 Preferences 对话框的 Playback 区域,设置 Playback Speed 为 Real-time ,如图 11-8 所示。

图 11-8 Prefernece 对话框

(5) 除了为物体添加刚体节点之外,还要为主体刚体制作出初速度和运动方向,这样才能发生刚体动画。选择 Dynamics|Fields → Gravity 命令。然后打开 Dynamics Relationships 窗口 (Window → Relationship Editors → Dynamics Relationships 命令 ) ,选择窗口左边 Outliner 中的 nurbsSphere1 ,并且确保在所选窗口右边框内的 gravityField1 是高亮显示,如果不是高亮显示,单击 gravityField1 使它成为高亮显示。如图 11-9 所示。

图 11-9 Dynamics Relationships 窗口

提示:

如果在创建重力场之前就选中球体,那么二者会自动建立关系。如果这时有其他未被选择的主动刚体,它们将不受这个场的影响。

下面回倒并且播放动画,小球会落向地板并且反弹起来。如果动画结束得太快以至于看不到这些,那么将动画的帧数增加到 200 帧以上。

现在对物体检查其刚体设置。在 Channel 盒,可以看到所选物体中 rigidBody1( 或 rigidBody2 或其他 ) 列在形状节点下面。选择平面,然后单击 rigidBody1 文本。

这时在通道栏中将会看到更多的选项,这些选项提供了比想像还要多的刚体控制。主要有以下几个参数:质量 (mass) 、弹性 (bounciness) 、阻尼 (damping) 、静摩擦力 (static friction) 以及动摩擦力 (dynamic friction) 。将弹性改为 0.9 并重放动画 ( 记住首先要回倒动画! ) 。小球在第 1 次弹回时应当达到与开始下落时几乎一样的高度,并且花较长的时间才能静止下来。现在将弹跳力改为 2 ,可以看到小球一次比一次跳的高,很快就从视野中消失了。

还可以试试其他设置,比如摩擦和阻尼小球和平面的设置都可以试一试。也可以试试质量设置,但是被动刚体的质量被定义为无穷大,因此这项设置对平面无效。改变小球的质量时动画并没有什么变化,这是因为重力是一种万有引力,它以同样的方式作用于所有的物体。

提示:

改变这些数字是学习刚体应用的重要途径。要对每一个通道内的每一个刚体都试试不同的设置。

主动刚体和被动刚体之间的转换

选取物体,执行 Soft/Rigid Bodies → Set Active Key 命令,无论刚体的原始状态如何,刚体都将变为主动刚体。执行 Soft/Rigid Bodies → Set Passive Key 命令,则刚体将变为被动刚体。

下面是打开和关闭刚体主动模式的实例具体操作步骤如下:

(1) 创建一个新场景。创建一个与栅格大小相当的 NURBS 平面。再创建一个长方体,将其平放在 X 轴上,然后将其压扁成一个平板,如图 11-10 所示。

(2) 为了使长方体能够正确转动,移动它的坐标中心点。按 Insert 键 ( 这样会把 Move 工具手柄从有箭头变成没有箭头的 ) ,然后将手柄移动到长方体的最右侧,如图 11-11 所示。设置完成后一定再按一次 Insert 键,否则将一直停留在插入状态。

图 11-10 建立场景 图 11-11 移动手柄

(3) 完成这些设置后,再创建一个半径为 1 的球体,把它放在长方体的左端。如图 11-12 所示。

图 11-12 建立球体

(4) 选中平面和球体,执行 Soft/Rigid Bodies → Create Passive Rigid Body 命令,将 它们设置为被动刚体。在 Hypergragh 窗口或者 Outliner 窗口中,把球体用鼠标中键拖曳到长方体的上面,把球体设置为长方体的子物体,如图 11-13 所示。这样球体和长方体就可以一起旋转。在长方体的旋转通道,把第 1 帧设置为关键帧。将时间滑块移动到大约 15 帧,沿 Z 轴旋转长方体约成 45 °角,如图 11-13 所示,把这一帧也设为关键帧。

[page_break]

图 11-13 设置子物体

图 11-14 制作长方体动画

提示:

如果 Auto keyframe 按钮启动状态,那么当某通道内发生变动时,只要该通道内已经由人工手动设置了第 1 个关键帧, Maya 会自动设置新的关键帧。

(5) 播放动画,将看到圆柱体 ( 连同球体一起 ) 会在几帧内旋转,然后停住不动。

下面使球体产生刚体运动。在 Channel 栏中从刚体属性的底部找到 Active 属性,它的当前值应当为 Off 。选中通道的名字 (Active) ,把时间滑块移动到第 12 帧,在 Active 名字上单击鼠标右键,在出现的菜单中选择 Key Selected 命令。这将在 Active 通道设置一个值为 off 或 false 的关键字。现在向前移动 1 到 2 帧,单击 Active 名旁边的文本,在 Channel 盒内输入 On 。如果 Autokey 功能是打开的,这时将自动生成一个关键帧;否则在该通道内手动生成一个关键帧。

这样球体就会变成一个要被圆柱体投掷到空中主动刚体。即小球将从圆柱体的运动中“继承”它的速度和转动,在离开圆柱体飞出去的同时小球变成了一个主动刚体。

(6) 回倒并播放动画。小球会飞向无穷远处。为了使模拟更为真实,应当再一次加上重力场。选中小球,然后执行 Fields → Gravity 命令, ( 重力场会自动与小球连接起来 ) 。再一次播放动画,小球或者从圆柱体上发射出去,或者从圆柱体上的滚下来。若小球从抛射机上飞出去的速度太慢,可以试着让圆柱体在最后一帧中转动的角度大一些,也可以减少圆柱体转动的帧数;若是小球飞得太快,可以让圆柱体在最后一帧中转动的角度小一些,或者增加圆柱体转动的帧数。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,