Maya 4.0 刚体和柔体-给刚体添加约束
刚体约束用于限制刚体于场景中某个位置或者另外一个刚体上,限制刚体的运动状态。当对场景中的一个物体使用约束时,系统会自动把它转换成刚体。 Maya 中的刚体约束分为: Nail( 钉 ) 约束、 Pin( 链 ) 约束、 Hige( 铰链 ) 约束、 Spring( 弹簧 ) 约束和 Barrier( 屏障 ) 约束。如图 11-15 所示的为用约束创建的球体碰撞效果。
图 11-15 刚体约束效果
Nail 约束
Nail 约束可以把刚体固定在场景中的某一个位置,它只对主动刚体起作用,而对被动刚体不起任何作用。运用刚体约束可以创建出吊起物体的效果,如图 11-16 所示。
下面是 Nail 约束的使用方法和效果具体操作步骤如下:
(1) 创建一个新场景,添加一个圆柱体,把它从 X 轴旋转 90 ° ,然后在 Z 轴上放大。结果如图 11-17 所示。
图 11-16 Nail 约束效果 图 11-17 建立圆柱体
(2) 创建一个圆环,把它拉伸成基本的链环形。把圆环转过来放在棒的下方。如图 11-18 所示。
(3) 复制第 1 个圆环物体,绕 Y 轴旋转 90 °,然后把它放好。这样重复 3 次以上,直到得到如图 11-19 所示的链子为止。
注意:
要确保环之间有一定距离 ( 即不使它们相互接触 ) 。否则建立刚体时将会出现渗透错误,并且模拟会停下来。
图 11-18 创建圆环 图 11-19 创建链
提示:
在建立了第 1 个环以后,移动并且旋转它,然后可以使用 Duplicate 属性对话框中的 Smart Transform 选项完成其余的工作。每一个环都将自动的旋转并移动到位。
(4) 选中棒和第 1 个环,执行 Soft/Rigid Bodies → Create Passive Rigid Body 命令。然后,选中其他所有的环,执行 Soft/Rigid Bodies → Create Active Rigid Body 命令。在这些环仍被选中的前提下,在场景中加入重力场 ( 执行 Fields → Gravity 命令 ) 。播放动画时,将会看到这些环落下来并且互相反弹着,最后在 200 帧左右停了下来,如图 11-20 所示。
图 11-20 加入重力场
(5) 为刚体加入约束。选中第 1 个圆环,执行 Soft/Rigid Bodies → Create Constraint 命令打开 Constraint Options 窗口,设置 Constraint Type 的类型为 Nail ,如图 11-21 所示。
(6) 单击 Create 按钮创建 Nail 约束。在视图中可以看到 Nail 约束处于圆环的原点位置,如图 11-22 所示。
(7) 单击播放按钮,会看到 Nbil 约束的效果。
图 11-21 Constraint Options 窗口
图 11-22 约束的位置
Pin 约束
Pin 约束可以在某一确定的位置上将两个刚体连接在一起,连接的物体可以是两个主动刚体,也可以是一个主动刚体和被动刚体。
下面是建立 Pin 约束的实例,具体操作步骤如下:
(1) 选中想要建立 Pin 约束的两个刚体。
(2) 执行 Soft/Rigid Bodies → Create Constraint □命令打开其参数对话框。
(3) 在 Constraint Type 下拉列表中选择 Pin 选项。
(4) 如果要在刚体发生碰撞时,刚体之间能够互相渗透,则选中 Interpenetrate 复选框。
(5) 如果要设置 Pin 约束的位置,就选中 Set Initial Position 复选框,然后在其下的 X 、 Y 和 Z 的文本框中输入 Pin 约束的坐标位置即可。如果没有选中此复选框,系统将会在两个刚体的中间创建 Pin 约束。
(6) 单击 Create 按钮创建 Pin 约束,结果如图 11-23 所示。
图 11-23 创建 Pin 约束
Hinge 约束
Hinge 约束可以通过铰链沿着某个轴限制刚体的运动,例如,通过 Hinge 约束可以创建门绕门轴旋转或钟表的摆动等物理现象。
用户可以在以下 3 个范围内创建 Hinge 约束:
● 一个主动刚体或者被动刚体与场景中的某一位置。
● 两个主动刚体之间。
● 一个主动刚体和一个被动刚体之间。
打开 Constraint Options 对话框,设置 Constraint Type 的类型为 Hinge 。
● Interpenetrate :当刚体之间产生碰撞时,选中该复选框可使刚体之间能够相互穿透。
● Initial Position :该复选框用于设置 Hinge 约束在场景中的位置,选中 Set Initial Position 复选框,然后输入 X 、 Y 和 Z 的坐标数值即可。如果没有选中 Set Initial Position 复选框,当为一个刚体创建约束时 Hinge 约束将在场景中的坐标原点。当为两个刚体创建约束时, Maya 会在两个刚体的中间点创建 Hinge 约束。
● Initial Orientation :用户可以通过输入 X 、 Y 和 Z 的值来设置 Hinge 约束的初始方向。在默认情况下, Hinge 约束的初始方向为 Z 轴,如图 11-24 所示。
图 11-24 默认的旋转方向
Spring 约束
Spring 约束主要用于模拟弹性绳索,可以创建为弹簧约束的对象比较广泛,主要包括以下 3 种:
● 一个主动刚体或者被动刚体与场景中的某一位置。
● 两个主动刚体。
● 一个主动刚体和一个被动刚体。
打开 Constraint Options 对话框,设置 Constraint Type 的类型为 Spring 。
● Interpenetrate :当刚体之间产生碰撞时,选中该复选框可使刚体之间能够相互 穿透。此选项处于非选中状态时,刚体之间不能互相穿透。
● Initial Position :该复选框用于设置 Spring 约束在场景中的位置,选中 Set Initial Position 复选框,然后输入 X 、 Y 和 Z 的坐标数值即可;如果没有选中 Set Initial Position 复选框,当为一个刚体创建约束时 Spring 约束将在场景中的坐标原点。当为两个刚体创建约束时, Maya 会在两个刚体的中间点创建 Hinge 约束。
● Stiffness :设置弹簧约束的弹力,在同样距离的情况下,该数值越大,弹簧的弹力越大。
● Damping :设置弹簧约束的阻尼力。阻尼力的强度与刚体的速度成正比,阻尼 力的方向和刚体速度的方向成反比。
● Rest Lenth :设置弹簧约束在静止时的长度。在默认的情况下,弹簧的静止长度和约长度相等。
Barrier 约束
Barrier 约束用于创建墙或地板等静止物体的效果,用户只能为一个主动刚体创建 Barrier 约束,主动刚体碰撞到屏障约束时不会反弹。
打开 Constraint Options 对话框,设置 Constraint Type 的类型为 Barrier 。
● Initial Position :该复选框用于设置 Barrier 约束在场景中的位置,选中 Set Initial Position 复选框,然后输入 X 、 Y 和 Z 的坐标数值即可;如果没有选中 Set Initial Position 复选框,则系统会在场景的原点创建 Barrier 约束。
● Initial Orientation :用户可以通过输入 X 、 Y 和 Z 的值来设置 Barrier 约束的初始方向。在默认情况下, Barrier 约束的初始方向为 XZ 平面。