挤压变形器示例

将球体挤压到地面上

默认情况下,Maya 将非线性变形器控制柄放置在要变形的对象的中心。例如,创建一个球体并为其创建一个挤压变形器后,Maya 会将挤压变形器控制柄放置在该球体的中心。将会相对于球体的中心进行变形。如果要靠着地面挤压球,可以调整挤压变形器的属性,并移动挤压变形器控制柄以使变形相对于球体与地面接触的位置。通常,可以进行这些调整以便可以产生相对于球体内部或外部的任何位置的挤压效果。

设置球体和变形器

  1. 创建基本体 NURBS 球体。
  2. 按数字键 3 可提高显示分辨率。
  3. 移动球体以使其位于透视视图中的栅格上。
  4. 为球体创建挤压变形器。

编辑变形器

  1. 通过设定 squash1 的属性来编辑挤压变形器,如下所示:

    下限(Low Bound):0

    上限(High Bound):0.75

  2. 移动变形器控制柄以使下边界是该球体与地面接触的位置。

靠着地面挤压球体

  1. 现在,在“通道盒”(Channel Box)中,更改“因子”。

    会发生相对于球体的底部(球体与地面接触的位置)的挤压变形。

反弹球设置

可以使用挤压变形器来创建挤压和拉伸效果。本示例显示如何可以为反弹球动画设置球。

使用挤压控件创建 NURBS 球体

  1. 执行上一个示例。
  2. 将 squash1 的“因子”(Factor)属性设定回到 0。

为拉伸控件创建变形器

  1. 为球体创建另一个挤压变形器,以提供拉伸控件。使用默认的创建选项。

    squash1 变形器提供了球落在地面上时所发生的挤压。刚创建的变形器 (squash2) 将提供球在飞行中时将发生的拉伸。

定义球

  1. 将球体 (nurbsSphere1) 和变形器控制柄(squash1Handle 和 squash2Handle)分组。
  2. 重命名该组球。
  3. 打开“通道控制”(Channel Control)窗口(窗口 > 常规编辑器 > 通道控制(Window > General Editors > Channel Control)),然后将下列属性设定为“不可设置关键帧”(Non Keyable)
    • 缩放 X(scaleX)缩放 Y (scaleY)缩放 Z(scaleZ)
    • 可见性(visibility)

    现在“通道盒”(Channel Box)仅列出球的下列可设置关键帧的属性:“平移 X”(Translate X)“平移 Y”(Translate Y)“平移 Z”(Translate Z)“旋转 X”(Rotate X)“旋转 Y”(Rotate Y)“旋转 Z”(Rotate Z)

  4. 关闭“通道控制”(Channel Control)窗口。

    现在将为球添加两个属性以进行挤压和拉伸。

  5. 选定球后,请选择修改 > 添加属性(Modify > Add Attribute)
    • 添加名为 flyStretch 的可设置关键帧属性,并且“最小值/最大值”(Min/Max Values)设置如下:“最小值”(Minimum)为 0,“最大值”(Maximum)为 10,“默认”(Default)为 0。
    • 添加名为 landSquash 的可设置关键帧属性,并且“最小值/最大值”(Min/Max Values)设置如下:“最小值”(Minimum)为 0,“最大值”(Maximum)为 10,“默认”(Default)为 0。
  6. 关闭“添加属性”(Add Attribute)窗口。

为拉伸设置驱动者和受驱动关键帧

  1. 打开“设置受驱动关键帧”(Set Driven Key)窗口(“关键帧 > 设置受驱动关键帧 > 设置”(Key > Set Driven Key > Set) > )。
  2. 将球加载为驱动者,选择“flyStretch”属性,然后将该属性设定为 0。
  3. 将 squash2 加载为受驱动,选择“factor”属性,然后将该属性设定为 0。
  4. 单击“关键帧”(Key)
  5. 将球的“flyStretch”属性设定为 10。
  6. 将 squash2 的“factor”属性设定为 0.6。
  7. 单击“关键帧”(Key)

为挤压设置驱动者和受驱动关键帧

  1. 打开“设置受驱动关键帧”(Set Driven Key)窗口(如果该窗口尚未打开)。
  2. 将球加载为驱动者,选择“landSquash”属性,然后将该属性设定为 0。
  3. 将 squash1 加载为受驱动,选择“factor”属性,然后将该属性设定为 0。
  4. 单击“关键帧”(Key)
  5. 将球的“landSquash”属性设定为 10。
  6. 将 squash1 的“factor”属性设定为 -2。
  7. 单击“关键帧”(Key)
  8. 单击“关闭”(Close)来关闭编辑器。

    现在,该球已经准备好用于具有挤压和拉伸效果的反弹球动画了。

设置球的动画

现在,已经为动画设置该球。请尝试为球反弹创建一个动画。包括球在飞行中时的拉伸效果和球撞击地面时的挤压效果。例如,动画可能看起来与下列图像有类似之处。

这些图像仅显示反弹球的一个简单示例。开发反弹球的动画时,请尝试看看可以为球的移动提供多少“角色”。