可以使用含约束和表达式的动画层来驱动场景中的对象。有关将约束添加到动画层的信息,请参见为动画层添加约束。
请注意,将表达式添加到动画层的工作流更加复杂,并且还有一些已知的限制。(请参见动画层和约束的已知限制)。
若要设置表达式以驱动含分层动画的对象,则必须找到与要驱动的属性相对应的层的融合节点。然后,设置该表达式以驱动该融合节点的“inputB”属性。
以下示例描述了如何将表达式添加到含分层动画对象的 translateY 属性中。
创建可驱动分层动画的表达式
- 创建新场景,并添加任何要使用表达式设置动画的对象。以下示例描述了如何设置球体的动画。
- 选择球体之后,单击“动画层编辑器”(Animation Layer Editor)中的 ,以创建包含球体属性的层。默认情况下,新层名为 AnimLayer1。
后续步骤描述如何将表达式添加到 AnimLayer1 以驱动球体的 translateY 属性。
- 请执行下列操作之一,找到要连接表达式的融合节点:
- 打开“表达式编辑器”(Expression Editor)(“窗口 > 动画编辑器 > 表达式编辑器”(Window > Animation Editors > Expression Editor))。
- 选择“属性”(Attributes)区域中的“inputB”,然后键入表达式以驱动“表达式”(Expression)区域中融合节点的“inputB”。
例如,若要添加可驱动球体的 translateY 值的正弦函数,请输入以下内容:
pSphere1_translateY_AnimLayer1.inputB = sin(time);
(请参见创建动画表达式。)
- 单击“创建”(Create)。
现在,您为“inputB”属性写入的表达式将驱动 AnimLayer1 中的球体 translateY 动画。示例表达式使球体随着时间的变化沿正弦波上下移动。
含约束和表达式的动画层的已知限制
使用含约束和表达式的动画层时,应注意以下已知限制和解决方案。
- 含约束或表达式的层无法使用动画层编辑器输出工具导出。(请参见导入和导出动画层。)
- “曲线图编辑器”(Graph Editor)并非完全支持含约束的动画层。与基础动画(BaseAnimation)关联的约束属性始终会显示,即使将它们添加到层也是如此。
- 一旦曲线添加到动画层,便不能使用“设置受驱动关键帧”(Set Driven Key)窗口编辑“设置受驱动关键帧”(Set Driven Key)曲线。但仍可以使用“曲线图编辑器”(Graph Editor)来编辑曲线。(请参见设置受驱动关键帧。)
- 一旦多源约束移到动画层中,则无法向多源约束添加新目标。请改为创建含该约束的多个实例的多个层,然后调整层的权重值,以实现所需的效果。