📜  After Effects 循环摆动 - Javascript (1)

📅  最后修改于: 2023-12-03 15:13:17.015000             🧑  作者: Mango

After Effects 循环摆动 - Javascript

在 After Effects 中,我们可以使用 Javascript 编写循环摆动的动画效果。这种效果使用正弦函数来模拟物体的振动,可以用于模拟钟摆、波浪等效果。

实现步骤
1. 定义预设值

在代码最开始,我们需要定义一些预设值,包括振幅(amplitude)、周期(period)、速度(speed) 等。这些值将在代码中使用,可以根据需要调整。

var amplitude = 200; // 振幅
var period = 4; // 周期
var speed = 2; // 速度
var time = 0; // 时间
2. 计算振幅

接下来,我们需要计算物体的振幅。振幅可以通过正弦函数来计算,公式为:

amplitude = sin(time * speed) * amplitude;

其中,time 表示当前时间,speed 表示速度,amplitude 表示振幅。在代码中,我们可以使用 Math.sin() 函数来计算正弦值,然后乘以振幅即可。

amplitude = Math.sin(time * speed) * amplitude;
3. 应用动画效果

最后,我们需要将振幅应用到物体上,模拟出效果。在 After Effects 中,可以使用 position 属性来实现动画效果。我们可以在代码中使用 “.valueAtTime()” 函数获取当前时间的值,然后将振幅应用到物体的 x 或 y 轴上,即可实现动画效果。

var x = thisComp.layer("Shape Layer 1").transform.position.valueAtTime(time)[0];
var y = thisComp.layer("Shape Layer 1").transform.position.valueAtTime(time)[1];

x = x + amplitude;
y = y + amplitude;

[x, y];
4. 完整代码
var amplitude = 200; // 振幅
var period = 4; // 周期
var speed = 2; // 速度
var time = 0; // 时间

while (time < time + period) {
    amplitude = Math.sin(time * speed) * amplitude;

    var x = thisComp.layer("Shape Layer 1").transform.position.valueAtTime(time)[0];
    var y = thisComp.layer("Shape Layer 1").transform.position.valueAtTime(time)[1];

    x = x + amplitude;
    y = y + amplitude;

    [x, y];

    time += 0.1;
}
结论

通过 Javascript 编写循环摆动的动画效果,可以快速实现钟摆、波浪等效果。通过调整振幅、周期、速度等预设值,可以实现各种不同的效果。