首页 > 解决方案 > 如何在影响后使用 Math.round(easeOut(time...)?

问题描述

我有一个形状层,我想使用这个表达式为位置 x 设置动画

x=clamp(thisComp.layer("Control Values").effect("Value Bar 1")("Slider"),0,100);
Math.round(easeOut(time,inPoint+0.53,inPoint+1.8, 0, x))
[x, value[0]]

但他显示“表达式结果必须是维度 2。不是 1”

在此处输入图像描述

问题出在哪里??

标签: animationafter-effects

解决方案


我尝试使用带有滑块的 Shape Layer + Control Values 图层重新创建您的设置,但我得到的错误略有不同

我认为您的代码给您带来了错误,因为它在第 2 行和第 3d 行缺少分号,并且 AE 不知道何时停止处理 1 行并移至下一行?它必须有一个术语:)

这是对我有用的代码,没有任何错误:

x=clamp(thisComp.layer("Control Values")("Effects")("Values Bar 1")("Slider"),0,100);

Math.round(easeOut(time,inPoint+0.53,inPoint+1.8, 0, x));

[x, value[0]];

我会稍微清理一下以使其更具可读性。此外,您应该为Math.round函数创建一个变量,因为您想使用它来影响位置 x?我还将value[0]更改为value[1] - 否则,您的 Position y 指的是 Position X 原始值。你可以改变它,但它有点违反直觉——你向左/向右移动你的层,所以它向上/向下——value[1] 解决了这个问题。

valuesBar = thisComp.layer("Control Values")("Effects")("Values Bar 1")("Slider");

x=clamp(valuesBar, 0,100);

x2 = Math.round(easeOut(time,inPoint+0.53,inPoint+1.8, 0, x));

[x2, value[1]];

推荐阅读