小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
2D 转 3D(2D to 3D Null)
附加一个 2D 位置到 3D 空对象上
thisComp.layer("3D Layer Name").toComp([0,0,0]);
根据标记持续时间自动淡入和淡出(Auto Fade In & Out by Marker Duration)
淡入淡出使用标记来设置持续时间
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 }
在文本上垂直居中锚点(Center Anchor Point Vertically on Text)
使锚点始终在文本层垂直居中
y=value[1]-sourceRectAtTime(time).height/2;
[0,y]
用复选框控制属性(Control Property with Checkbox)
将这个表达式应用到你想要控制的属性(比如不透明度),并确保它引用了正确的控制层。
value * thisComp.layer("Controls").effect("Control Name")("Checkbox"); // replace Checkbox Control with your checkbox control
用空对象控制形状图层(Control Shape Layer Position with Null)
通过空对象控制形状层的位置 —— 像设置父级,但保持你的形状层的相对位置。
control=thisComp.layer("Control NULL"); // your controller null
controlPos = control.toComp(control.transform.anchorPoint);
fromComp(controlPos)
// apply to position property
延迟(Delay)
一定数量帧的延迟属性
delay = 5; //number of frames to delay
d = delay*thisComp.frameDuration*(index - 1);
thisComp.layer(1).rotation.valueAtTime(time - d)
使用滑动条延迟关键帧(Delay Keyframes With Slider)
使用滑块控件将关键帧动画延迟定义的秒数。像标记触发器一样工作,但更简单。
delay = thisComp.layer("Controls").effect("Delay")("Slider"); // pickwhip to your Delay Slider (in seconds)
valueAtTime(time-delay)
选择下拉菜单(Dropdown Menu Select)
通过下拉菜单选择来控制图层的不透明度。添加一个数字[1,2,3 等]到图层的开始,使其工作
select = thisComp.layer("CONTROLS").effect("Dropdown")("Menu"); // pick whip to your dropdown
(select == parseInt(thisLayer.name[0])) ? value : 0;
冻结随机数字(Frozen Random Number)
生成随机数
seedRandom(index,true);
myValue = random(50) ;
获取当前的日期和格式(Get Current Date and Format)
获取当前日期的有用代码片段
d = new Date(Date(0));
// Format Settings
divider = "/"
yearLength = 2; // use 2 for YY, 4 for YYYY