1、Maya 刚体和约束简介在 Maya 中,刚体是具有坚硬形状的属性的曲面。与常规的计算机曲面不同,刚体在动画过程中会相互碰撞而不是彼此穿透,刚体用于创建动力学模拟。同样,刚性曲面与 Maya 中的其他对象碰撞时不会变形。 刚体可以从多边形或 NURBS 曲面创建。可以将刚体属性指定给曲面,这样这些属性会以特定方式在模拟中起作用并做出反应。刚体属性的示例有速度、质量和反弹。 若要设置刚体运动的动画,可以使用场、关键帧、表达式、刚体约束,或者使用与粒子或其他刚体的碰撞。 刚体约束限制刚体的运动。约束会模拟您所熟悉的现实世界物品的行为,例如钉、钉子、屏障、铰链和弹簧。 在本课中,将创建一个刚体动力学
2、模拟,在该模拟中会让一个球落在一些木板上并观察动作的模拟。在本课程中,您将了解如何: 创建具有物理属性的对象。 将铰链约束应用到对象,使其以特定方式做出反应。 将刚体属性设定为对于模拟是主动的或被动的。 播放刚体动力学模拟。 课程设置可以基于 NURBS 曲面和多边形曲面创建刚体。在下列步骤中,将创建一些要用作刚体的多边形曲面。 创建多边形对象以进行刚体模拟 1. 确保已完成课程准备中的步骤。 2. 在“时间滑块”(Time Slider)中,将开始帧设定为 1,将结束帧设定为 200。 3. 选择“创建 多边形基本体 立方体”(Create Polygon Primitives Cube)
3、。 4. 在“多边形立方体选项”(Polygon Cube Options)窗口中,选择“编辑 重置设置”(Edit Reset Settings),并设定以下选项,然后单击 “创建”(Create) : 宽度(Width):2 高度(Height):4 深度(Depth) :0.25 轴(Axis): Z 5. 仍然保持多边形选中,选择“编辑 特殊复制”(Edit Duplicate Special) 。 6. 在“特殊复制选项”(Duplicate Special Options)窗口中,选择“编辑 重置设置”(Edit Reset Settings)。设置下列选项,然后单击“ 特殊复制
4、”(Duplicate Special): 平移(Translate):0 3 0 副本数(Number of copies):5 将创建多边形的五个副本,每个副本在较低的副本上方放置 3 个单位。 定位对象以进行刚体模拟 1. 按下图中的侧视图中所示,定位对象。若要精确地定位木板,请分别选择每块木板,并使用“通道盒”(Channel Box)从该列表中输入适合的值: pCube1 - 平移 Z (Translate Z):0 pCube2 - 平移 Z (Translate Z):2 pCube3 - 平移 Z (Translate Z):0 pCube4 - 平移 Z (Translate
5、 Z):2 pCube5 - 平移 Z (Translate Z):-1 pCube6 - 平移 Z (Translate Z):1 创建铰链约束铰链约束可沿指定的轴约束刚体。可以使用“铰链”(Hinge)约束创建一些效果,如门铰链、连接火车车厢的链或钟摆等。在此示例中,“铰链”(Hinge) 约束将木板约束到场景视图中的某个位置。 在以下步骤中,将“铰链”(Hinge)约束添加到木板的中心,这会自动将木板变为刚体。对每个木板执行该操作。默认情况下,Maya 会在您使用某个场或刚体约束控制刚体的运动时自动创建一个刚体。 创建铰链约束 1. 选择“柔体/刚体 创建铰链约束 ”(Soft/Rigi
6、d Bodies Create Hinge Constraint) 。 2. 在“约束选项”(Constraint Options)窗口中,设定下列选项: 初始方向(Initial Orientation) X、Y 、Z:0 90 0 使选项窗口保持打开状态。 默认情况下,初始方向设定为 0, 0, 0,这会确定铰链约束的方向,以使其在世界空间中平行于 Z 轴。通过在 Y 轴上将方向设定为 90,铰链约束将绕 Y 轴旋转 90 度,从而使该约束的方向平行于 X 轴。 通过使“设置初始位置”(Set Initial Position)保留其默认设置,将在刚体的质心创建铰链约束。 3. 在“约束选
7、项”(Constraint Options)中选择 pCube1 并单击“ 应用”(Apply)。 4. 在“约束选项”(Constraint Options)中选择 pCube2 并单击“ 应用”(Apply)。 5. 重复该操作,直至六个木板都应用了约束。 6. 关闭“约束”(Constraint) 选项窗口。 运行动力学模拟在接下来的步骤中,将创建一个球,然后添加重力以使球掉落并撞击板,再播放模拟。 为模拟创建球 1. 选择“创建 多边形基本体 球体”(Create Polygon Primitives Sphere) 。 2. 将“半径”(Radius)设定为 0.2,然后单击“ 创建
8、”(Create)。 3. 在“通道盒”(Channel Box)中,将“ 球体”(Sphere)的“平移 Y”(Translate Y)值设定为 18。 将重力属性添加到球 1. 在球体仍处于选定状态时,选择“场 重力”(Fields Gravity)。 将“ 重力”(Gravity)连接到球体时,将自动使球体成为主动刚体。“重力”(Gravity) 仅影响添加“重力”(Gravity)场时选定的对象。 运行动力学模拟 1. 在“时间滑块”(Time Slider)中,播放动画。 球将掉落并与板碰撞,板绕铰链约束旋转。 将主动刚体更改为被动刚体Maya 具有两种刚体:主动刚体和被动刚体。通过
9、动力学(场、碰撞和弹簧)而非关键点对主动刚体设定动画。 因为球和板都是主动刚体,因而球因重力的拉动而落下,并在碰撞到板后又反弹。 被动刚体可与主动刚体碰撞。可以对其“平移”(Translate)和“旋转”(Rotate)属性设置关键帧,但动力学对其没有效果。 在以上步骤中,所有板都是主动刚体并对球的碰撞做出反应。在以下步骤中,可以将底部的板更改为被动刚体,以使球反弹离开板而板却不对碰撞做出反应。 将主动刚体更改为被动刚体 1. 选择 pCube1 并显示“属性编辑器 ”(Attribute Editor)。 2. 单击 rigidBody1 选项卡,以显示刚体属性。 3. 在“刚体属性”(Ri
10、gid Body Attributes)区域中,禁用“主动”(Active)以使 pCube1 成为被动刚体。隐藏“属性编辑器”(Attribute Editor)。 4. 转到播放范围的开始处,然后播放动画。 观察 pCube1 如何不再对球的影响做出反应而球却继续反弹。课程总结在本课中,学习了一些与刚体动力学有关的基础概念。 主动刚体和被动刚体之间存在差异。 如果一个刚体是被动刚体,那么主动刚体可以与其发生碰撞,但不会移动它。通过设置关键帧可以控制其移动。 如果某个刚体是主动刚体,那么可以使用动力(特别是场和碰撞)来控制其移动。可以更改刚体的主动和被动状态来获得各种效果。例如,可以使用关键帧(被动刚体)将球滚离桌面,然后使用重力使球落下(主动刚体)。 可以在主动刚体与场景视图中的某个位置之间使用铰链约束。 也可以在被动刚体和与场景视图中的某个位置之间,两个刚体之间,以及主动刚体和被动刚体之间创建铰链约束。 其他类型的约束包括钉约束、钉子约束、弹簧约束和屏障约束。