创建表达式来控制单个属性
 
 
 

在下列步骤中,将创建一个默认球体并编写一个表达式,以随着动画播放期间时间的增加而增加其“缩放 Y”(Scale Y)属性。

创建表达式

  1. 确保已完成课程准备中的步骤。
  2. 创建 NURBS 或多边形球体。在“属性编辑器”(Attribute Editor)中,单击变换节点(“nurbsSphere1”“pSphere1”)。
  3. 确保 X 缩放、Y 缩放和 Z 缩放值等于 1。将球体重命名为 Ball。(大写和小写文本很重要)
  4. 选中 Ball 后,选择“窗口 > 动画编辑器 > 表达式编辑器”(Window > Animation Editors > Expression Editor)
  5. “表达式名称”(Expression Name)框中,可以选择输入表达式名称,例如 ScaleBallHeight。

    如果在同一场景中编写多个表达式,请为每个表达式提供不同的名称,这样可能更便于找到所需的表达式(如果您以后决定更改它)。如果不提供名称,则表达式会获得默认名称,例如 expression1。

    请注意,“属性”(Attributes)列表显示了 Ball 的可设置关键帧的解锁属性,您很可能希望使用表达式对这些属性设置动画。使用滚动条查看整个列表。

  6. 在表达式文本区域中输入该表达式:

    如上所示精确键入所有字符。条目是区分大小写的。分号 (;) 表示表达式语句结束。在表达式中使用分号结束每条语句。

    如果表达式的语法不正确,或键入错误,则会在“脚本编辑器”(Script Editor)“命令行”(Command Line)的响应区域中显示错误消息。

  7. 单击“创建”(Create)以创建表达式。

    创建表达式时会检查该表达式有无语法错误,并且当您返回到开始时间或播放动画时,会将表达式转化为 Maya 可以执行的格式。单击“创建”还会为当前帧执行表达式。

    表达式将 Ball 的 scaleY 属性设定为 time + 1 后的值。Ball.scaleY 是该属性的全称。句点将对象和属性的名称分隔开。请注意,必须使用大写字母和小写字母拼写对象和属性,因为它们显示在“表达式编辑器”(Expression Editor)“对象”(Objects)“属性”(Attributes)列表中。

    单词 time 是在动画播放时更新的常用的预定义变量。它包含从第一帧到当前帧已用的秒数。该值随帧编号的增加而增加。

    在默认动画播放速率(每秒 24 帧)下,time 具有以下值(舍入为四个小数位):

    time(以秒为单位)

    0

    0

    1

    0.0417

    2

    0.0833

    3

    0.125

    24

    1.0

    240

    10.0

    可以在动画中的任何帧处查找已用时间,方法是使用桌面计算器计算该公式:

    例如,如果帧速率是 24 帧/秒,动画在第 1 帧,则已用时间是 1 除以 24,即 0.0417。在第 6 帧,已用时间是 6 除以 24,即 0.25。请注意,如果帧速率是 30 帧/秒,计算出的值可能不同。

  8. 转到开始时间,并播放动画。Ball 的 ScaleY 属性随时间的增加而增大:
    time(以秒为单位) Ball.scaleY(time + 1)

    0

    0

    1

    1

    0.0417

    1.0417

    2

    0.0833

    1.0833

    3

    0.125

    1.125

    24

    1.0

    2.0

    240

    10.0

    11.0

    Maya 会在每一帧执行表达式。这会使对象大小沿其 Y 轴缩放,从而在播放期间拉伸其高度。

    若要查看 Ball 的 ScaleY 属性在任何特定帧的值,请选择 Ball,显示“通道盒”(Channel Box),并在所需的帧停止动画。在停止动画后,“通道盒”(Channel Box)会更新其值。

    缩放是平滑的,因为几何体与动画播放的小时间增量同步拉伸。

  9. 关闭“表达式编辑器”(Expression Editor)窗口。