【AE表达式】常用小合集

2D 到 3D 空

将 2D 位置附加到 3D Null

thisComp.layer("3D Layer Name").toComp([0,0,0]);

按标记持续时间自动淡入和淡出

使用标记淡入淡出图层以设置持续时间

fadeFrames = 6; m = 0; t=time;
if(marker.numKeys > 0) {
    m = marker.nearestKey(time).index;
    tag = marker.key(m).comment;
    if(tag == 'Highlight'){
        tMin = marker.key(m).time;
        tMax = tMin + marker.key(m).duration;

        if(t < tMin){
            linear(time, tMin - framesToTime(fadeFrames), tMin, 0, value);
        } else {
            linear(time, tMax - framesToTime(fadeFrames), tMax, value, 0);
        }
    } else {
        value;
    }
} else {value}

 

在文本上垂直居中锚点

使锚点始终垂直居中在文本图层上

y=value[1]-sourceRectAtTime(time).height/2;
[0,y]

使用复选框控制属性

将此表达式应用于要控制的属性(如不透明度)并确保它引用正确的控制层。

value * thisComp.layer("Controls").effect("Control Name")("Checkbox"); 
// replace Checkbox Control with your checkbox control

使用 Null 控制形状图层位置

使用 Null 控制形状图层位置 – 与育儿类似,但保持形状图层的相对位置。

control=thisComp.layer("Control NULL"); // your controller null
controlPos = control.toComp(control.transform.anchorPoint);
fromComp(controlPos)
// apply to position property

延迟

一定帧数的延迟属性

delay = 5; //number of frames to delay
d = delay*thisComp.frameDuration*(index - 1);
thisComp.layer(1).rotation.valueAtTime(time - d)

使用滑块延迟关键帧

使用滑块控件将关键帧动画延迟定义的秒数。像标记触发器一样工作,但更简单。对 MOGRT 有用

delay = thisComp.layer("Controls").effect("Delay")("Slider"); // pickwhip to your Delay Slider (in seconds) 
valueAtTime(time-delay)

 

下拉菜单选择

通过下拉菜单选择控制图层的不透明度。在图层的开头添加一个数字 [1,2,3,etc] 使其工作

select = thisComp.layer("CONTROLS").effect("Dropdown")("Menu"); // pick whip to your dropdown
(select == parseInt(thisLayer.name[0])) ? value : 0;

 

冻结随机数

生成随机数

seedRandom(index,true);
myValue = random(50) ;

获取当前日期和格式

获取当前日期的有用片段

d = new Date(Date(0));
// Format Settings
divider = "/"
yearLength = 2; // use 2 for YY, 4 for YYYY

 

忽略父轮换

保持孩子的当前旋转,即使父母旋转。

value - parent.transform.rotation

忽略父级

以另一个图层为父级时保持图层的比例。应用于子层的缩放属性。

s = [];parentScale = parent.transform.scale.value;for (i = 0; i < parentScale.length; i++){s[i] = (parentScale[i]== 0) ? 0 : value[i]*100/parentScale[i];}s

忽略父级(如果父级有父级)

以另一个图层为父级时保持图层的比例 – 即使该图层有父级。应用于子层的缩放属性。

L = thisLayer;
s = transform.scale.value;
while (L.hasParent){
 L = L.parent;
 for (i = 0; i < s.length; i++) s[i] *= 100/L.transform.scale.value[i]
}
s

 

继承父不透明度

从父层继承不透明度

(hasParent) ? parent.opacity : value;

继承父不透明度(可编辑)

从父级继承不透明度,但保留子级的可编辑性

(hasParent) ? (parent.opacity/100) * value : value;

反转不透明度

与另一层的不透明度交替不透明度。

t = thisComp.layer("Back").transform.opacity // Pickwhip the layer you want to invert

循环输入和输出

在时间上向前和向后循环动画

loopIn() + loopOut() - value;

循环路径关键帧

在形状图层或蒙版的路径属性上无缝循环关键帧。

// loop path keyframes. Behaves like loopOut('cycle')
if (numKeys >1 && time > key(numKeys).time) {
 t1 = key(1).time;
 t2 = key(numKeys).time;
 span = t2 - t1;
 delta = time - t2;
 t = delta%span;
 valueAtTime(t1 + t)
} else {
    value
}

 

循环摆动

无缝循环摆动表达式(以秒为单位)

frequency = 2; // wiggles per second
amplitude = 40; // amount of pixels to wiggle
secondsToLoop = 3; // time to loop in seconds
// --------
t = time % secondsToLoop;
wiggle1 = wiggle(frequency, amplitude, 1, 0.5, t);
wiggle2 = wiggle(frequency, amplitude, 1, 0.5, t - secondsToLoop);
linear(t, 0,  secondsToLoop, wiggle1, wiggle2)

 

保持描边宽度

在缩放图层时保持笔触宽度。应用于笔画宽度属性\n

value / length(toComp([0,0]), toComp([0.7071,0.7071])) || 0.001;

文字图层的最大宽度比例

使用 scale 属性限制文本层的最大宽度

maxW = effect("max-width")("Slider"); // pick whip to your slider
sourceW = sourceRectAtTime(time,true).width;

 

分色时间 + 摆动

使用摆动表达式添加分色时间定格动画效果。

f = 2;
a = 10;
posterizeTime(f);
wiggle(f, a);

 

将图层缩放到特定宽度

缩放图层以适合像素宽度。应用于比例属性

w = 600; // set to your target width
s = 100*w/thisLayer.width;
[s,s]

 

使用下拉菜单显示/隐藏图层

应用于图层的不透明度属性。将图层名称更改为以 [1,2,3] 开头以匹配 Dropdown 控件。\n

select = effect("Dropdown Control")("Menu").value; 

标记上的触发表达式

使用标记触发操作的样板表达式

n=0;
if(marker.numKeys>0) {
 n=marker.nearestKey(time).index;
 if(marker.key(n).time>time) {
  n--;
 } if(n==0) {
  value;
 } else { 
  t=time-marker.key(n).time; //time since marker 
  //Do Stuff 
 }
} else { 
 value;
}

 

在两个值之间摆动

在两个值之间随机摆动。

min = -10; // minimum value
max = 50; // maximum value
freq = 5; // wiggles per second
amp = Math.abs(max-min)/2; // amount to wiggle
offset = (max+min)/2;
wiggle(f, a) + offset;

 

在一维上摆动

将摆动限制为一维(X 或 Y)。注意:摆动 X 尺寸。仅对于 Y 维度,将最后一行更改为 [value[0],w[1]]

frequency = 2;
amplitude = 10;
w = wiggle(frequency, amplitude);
[w[0],value[1]]

 

参考:

1.https://aereference.com/expressions

2.OD 晚点加

给TA充电
共{{data.count}}人
人已充电
AEAE文章

【AE基础 】形状图层终极手册

2021-12-17 14:13:39

AEAE插件/脚本

【AE脚本】PinComps 合成给爷定住 1.0.4 | 免费

2021-12-20 16:36:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索