以下是实现湍流置换偏移属性无限循环且无缝衔接的表达式,可直接粘贴到AE的湍流置换-偏移属性表达式编辑器中:

// 参数调节区(直接修改数值即可)
cycleTime = 10; // 完整循环周期(秒)
maxOffset = 150; // 最大偏移量(像素)

// 核心算法(无需修改)
t = time % cycleTime;
progress = t/cycleTime;
curve = Math.sin(progress * Math.PI * 2); // 创建平滑的正弦曲线

x = curve * maxOffset; // X轴偏移
y = Math.cos(progress * Math.PI * 2) * maxOffset; // Y轴偏移(相位差90度)

// 输出最终结果
[x, y]

实现原理:

  1. 使用正弦和余弦函数创建相位差90度的二维运动轨迹

  2. 通过time%cycleTime实现无限循环

  3. 正弦波特性保证在10秒时位置和速度完全重置

  4. 圆形运动轨迹确保首尾完美衔接

参数调节说明:

  • cycleTime:控制完整循环所需时间

  • maxOffset:控制最大偏移幅度(根据实际效果调节)

优势特点:

  • 完全消除循环跳帧

  • 运动轨迹自然平滑

  • 参数调节直观简单

  • 性能开销极小

进阶调整技巧:

1.需要更随机效果时可叠加多个不同频率的正弦波:

// 在核心算法部分替换为:
freq1 = 1;
freq2 = 2.718;
x = (Math.sin(progress * Math.PI * 2 * freq1) * 0.6 + 
     Math.sin(progress * Math.PI * 2 * freq2) * 0.4) * maxOffset;
y = (Math.cos(progress * Math.PI * 2 * freq1) * 0.6 + 
     Math.cos(progress * Math.PI * 2 * freq2) * 0.4) * maxOffset;

2.需要非对称运动时,可单独调整XY轴的振幅系数

使用该表达式后,湍流置换效果将呈现完美的环形运动轨迹,在10秒周期内实现完全无缝的循环效果,且运动轨迹的自然性优于常规关键帧动画。

【下面是成品展示】