Maya4.0刚体和柔体-刚体动力学(2)
2006-04-05 19:42:42 来源:WEB开发网下面是制作一个刚体动画的实例。具体操作步骤如下:
(1)创建一个新场景。创建一个NURBS平面并且将其调整到与Maya栅格大小相当。然后创建一个半径为1的NURBS球体,并且把它移到平面上方。如图11-7所示。
(2)选中平面,进入Dynamics模块,执行Soft/RigidBodies→CreatePassiveRigidBody命令。现在所选平面成为被动刚体。
(3)选中NURBS球体,执行Soft/RigidBodies→CreateActiveRigidBody命令,所选小球成为主动刚体。
(4)为了使动力模拟可以正常播放,播放速度设置为Free,以便物理引擎计算进入到下一帧所需的数据。选择Window→Setting/PReferences→Preferences命令并选择Setting/Timeline命令,或者单击位于屏幕右下方的AnimationPreferences按钮,都可以激活同一个对话框。在Preferences对话框的Playback区域,设置PlaybackSpeed为Real-time,如图11-8所示。
(5)除了为物体添加刚体节点之外,还要为主体刚体制作出初速度和运动方向,这样才能发生刚体动画。选择Dynamics|Fields→Gravity命令。然后打开DynamicsRelationships窗口(Window→RelationshipEditors→DynamicsRelationships命令),选择窗口左边Outliner中的nurbsSphere1,并且确保在所选窗口右边框内的gravityField1是高亮显示,如果不是高亮显示,单击gravityField1使它成为高亮显示。如图11-9所示。
提示:
如果在创建重力场之前就选中球体,那么二者会自动建立关系。如果这时有其他未被选择的主动刚体,它们将不受这个场的影响。
下面回倒并且播放动画,小球会落向地板并且反弹起来。如果动画结束得太快以至于看不到这些,那么将动画的帧数增加到200帧以上。
现在对物体检查其刚体设置。在Channel盒,可以看到所选物体中rigidBody1(或rigidBody2或其他)列在形状节点下面。选择平面,然后单击rigidBody1文本。
这时在通道栏中将会看到更多的选项,这些选项提供了比想像还要多的刚体控制。主要有以下几个参数:质量(mass)、弹性(bounciness)、阻尼(damping)、静摩擦力(staticfriction)以及动摩擦力(dynamicfriction)。将弹性改为0.9并重放动画(记住首先要回倒动画!)。小球在第1次弹回时应当达到与开始下落时几乎一样的高度,并且花较长的时间才能静止下来。现在将弹跳力改为2,可以看到小球一次比一次跳的高,很快就从视野中消失了。
还可以试试其他设置,比如摩擦和阻尼小球和平面的设置都可以试一试。也可以试试质量设置,但是被动刚体的质量被定义为无穷大,因此这项设置对平面无效。改变小球的质量时动画并没有什么变化,这是因为重力是一种万有引力,它以同样的方式作用于所有的物体。
提示:
改变这些数字是学习刚体应用的重要途径。要对每一个通道内的每一个刚体都试试不同的设置。
主动刚体和被动刚体之间的转换
选取物体,执行Soft/RigidBodies→SetActiveKey命令,无论刚体的原始状态如何,刚体都将变为主动刚体。执行Soft/RigidBodies→SetPassiveKey命令,则刚体将变为被动刚体。
下面是打开和关闭刚体主动模式的实例具体操作步骤如下:
(1)创建一个新场景。创建一个与栅格大小相当的NURBS平面。再创建一个长方体,将其平放在X轴上,然后将其压扁成一个平板,如图11-10所示。
(2)为了使长方体能够正确转动,移动它的坐标中心点。按Insert键(这样会把Move工具手柄从有箭头变成没有箭头的),然后将手柄移动到长方体的最右侧,如图11-11所示。设置完成后一定再按一次Insert键,否则将一直停留在插入状态。
(3)完成这些设置后,再创建一个半径为1的球体,把它放在长方体的左端。如图11-12所示。
(4)选中平面和球体,执行Soft/RigidBodies→CreatePassiveRigidBody命令,将它们设置为被动刚体。在Hypergragh窗口或者Outliner窗口中,把球体用鼠标中键拖曳到长方体的上面,把球体设置为长方体的子物体,如图11-13所示。这样球体和长方体就可以一起旋转。在长方体的旋转通道,把第1帧设置为关键帧。将时间滑块移动到大约15帧,沿Z轴旋转长方体约成45°角,如图11-13所示,把这一帧也设为关键帧。
提示:
如果Autokeyframe按钮启动状态,那么当某通道内发生变动时,只要该通道内已经由人工手动设置了第1个关键帧,Maya会自动设置新的关键帧。
(5)播放动画,将看到圆柱体(连同球体一起)会在几帧内旋转,然后停住不动。
下面使球体产生刚体运动。在Channel栏中从刚体属性的底部找到Active属性,它的当前值应当为Off。选中通道的名字(Active),把时间滑块移动到第12帧,在Active名字上单击鼠标右键,在出现的菜单中选择KeySelected命令。这将在Active通道设置一个值为off或false的关键字。现在向前移动1到2帧,单击Active名旁边的文本,在Channel盒内输入On。如果Autokey功能是打开的,这时将自动生成一个关键帧;否则在该通道内手动生成一个关键帧。
这样球体就会变成一个要被圆柱体投掷到空中主动刚体。即小球将从圆柱体的运动中“继承”它的速度和转动,在离开圆柱体飞出去的同时小球变成了一个主动刚体。
(6)回倒并播放动画。小球会飞向无穷远处。为了使模拟更为真实,应当再一次加上重力场。选中小球,然后执行Fields→Gravity命令,(重力场会自动与小球连接起来)。再一次播放动画,小球或者从圆柱体上发射出去,或者从圆柱体上的滚下来。若小球从抛射机上飞出去的速度太慢,可以试着让圆柱体在最后一帧中转动的角度大一些,也可以减少圆柱体转动的帧数;若是小球飞得太快,可以让圆柱体在最后一帧中转动的角度小一些,或者增加圆柱体转动的帧数
更多精彩
赞助商链接