返回
AE Joy:探索五个令人惊艳的 AE 表达式代码块【JS】
前端
2024-01-31 08:06:53
- 循环路径动画 (Loop Path Animations)
现在,让我们用一个表达式代码块开启我们的冒险之旅:循环路径动画。这个代码块允许您沿着预定义的路径循环移动图层,为您的动画增添动感。准备好了吗?让我们开始吧!
// 定义路径
var path = [
[0, 0],
[100, 100],
[200, 0],
[300, 100],
[400, 0]
];
// 定义循环次数
var numLoops = 3;
// 获取图层位置
var pos = thisComp.layer("Layer").position;
// 循环移动图层
for (var i = 0; i < numLoops; i++) {
for (var j = 0; j < path.length; j++) {
pos += [path[j][0] - pos[0], path[j][1] - pos[1]];
}
}
2. 随机改变到特定值 (Randomize to Specific Value)
下一个代码块将带我们进入随机的世界。随机改变到特定值代码块允许您在给定范围内随机改变图层属性。无论是位置、旋转还是缩放,这个代码块都能让您的动画充满惊喜。
// 定义属性名称
var propName = "Position";
// 定义随机变化范围
var minVal = 0;
var maxVal = 100;
// 获取图层属性值
var propVal = thisComp.layer("Layer").transform.property(propName).value;
// 随机改变属性值
propVal += Math.random() * (maxVal - minVal) + minVal;
// 设置新属性值
thisComp.layer("Layer").transform.property(propName).setValue(propVal);
3. 随机生成蒙版 (Randomize Mask)
蒙版是动画师的强大工具,可以用来创建各种视觉效果。随机生成蒙版代码块让您能够轻松生成随机形状的蒙版,为您的动画增添创意。
// 定义蒙版形状类型
var maskType = "Ellipse";
// 定义蒙版大小范围
var minWidth = 100;
var maxWidth = 200;
var minHeight = 100;
var maxHeight = 200;
// 定义蒙版位置范围
var minX = 0;
var maxX = 400;
var minY = 0;
var maxY = 300;
// 生成随机蒙版
var mask = thisComp.layer("Layer").createMask(maskType);
mask.size = [
Math.random() * (maxWidth - minWidth) + minWidth,
Math.random() * (maxHeight - minHeight) + minHeight
];
mask.position = [
Math.random() * (maxX - minX) + minX,
Math.random() * (maxY - minY) + minY
];
4. 梯度旋转 (Gradient Rotation)
梯度旋转代码块将为您的动画增添动感和深度。通过这个代码块,您可以让图层以梯度的方式旋转,创造出令人惊叹的视觉效果。
// 定义旋转速度
var speed = 360;
// 获取图层旋转角度
var rotation = thisComp.layer("Layer").transform.rotation;
// 旋转图层
rotation += speed * time;
// 设置新旋转角度
thisComp.layer("Layer").transform.rotation = rotation;
5. 贝塞尔曲线扩展 (Bezier Path Extend)
最后,我们来看看贝塞尔曲线扩展代码块。这个代码块可以将贝塞尔曲线扩展到预定义的长度,为您的动画增添流畅的运动感。
// 定义贝塞尔曲线
var path = thisComp.layer("Layer").path;
// 定义扩展长度
var extendLength = 100;
// 扩展贝塞尔曲线
path.extendPath(extendLength);
现在,您已经掌握了这五个令人惊艳的 AE 表达式代码块。准备好让您的动画脱颖而出了吗?尽情探索这些代码块的无限可能,将您的创意变为现实吧!