高级工作流: 结合使用约束和表达式以及动画层

 
 
 

可以使用含约束和表达式的动画层来驱动场景中的对象。有关将约束添加到动画层的信息,请参见为动画层添加约束

请注意,将表达式添加到动画层的工作流更加复杂,并且还有一些已知的限制。(请参见动画层和约束的已知限制)。

若要设置表达式以驱动含分层动画的对象,则必须找到与要驱动的属性相对应的层的混合节点。然后,设置该表达式以驱动该混合节点的“inputB”属性。

以下示例描述了如何将表达式添加到含分层动画对象的 translateY 属性中。

创建可驱动分层动画的表达式

  1. 创建新场景,并添加任何要使用表达式设置动画的对象。以下示例描述了如何设置球体的动画。
  2. 选择球体之后,单击“动画层编辑器”(Animation Layer Editor)中的 ,以创建包含球体属性的层。默认情况下,新层名为 AnimLayer1。

    后续步骤描述如何将表达式添加到 AnimLayer1 以驱动球体的 translateY 属性。

  3. 请执行下列操作之一,找到要连接表达式的混合节点:
    • “动画层编辑器”(Animation Layer Editor)中,选择“层 > 打包到资源中”(Layers > Package Into Assets)。(请参见将动画层打包到资源中。)
    • 打开“Hypergraph”窗口(窗口 > Hypergraph: 连接(Window > Hypergraph: Connections)),双击展开 AnimLayer1_Asset,然后双击展开嵌套的 AnimLayer1_BlendNodes 资源。
    • 选择 pSphere1_translateY_AnimLayer1 混合节点。

      这是与球体的 translateY 属性相对应的混合节点。

  4. 打开“表达式编辑器”(Expression Editor)“窗口 > 动画编辑器 > 表达式编辑器”(Window > Animation Editors > Expression Editor))。
  5. 选择“属性”(Attributes)区域中的“inputB”,然后键入表达式以驱动“表达式”(Expression)区域中混合节点的“inputB”

    例如,若要添加可驱动球体的 translateY 值的正弦函数,请输入以下内容:

    pSphere1_translateY_AnimLayer1.inputB = sin(time);
    

    (请参见创建动画表达式。)

  6. 单击“创建”(Create)

    现在,您为“inputB”属性写入的表达式将驱动 AnimLayer1 中的球体 translateY 动画。示例表达式使球体随着时间的变化沿正弦波上下移动。

含约束和表达式的动画层的已知限制

使用含约束和表达式的动画层时,应注意以下已知限制和解决方案。

相关主题