AE表达式需求:播放头落在标记点时递增滑块控件数值
AE滑块控制:播放头经过标记点时自动递增数值
实现步骤与表达式
- 确认你的文本层已添加好图层标记点(右键文本层 → 添加标记)
- 给滑块控制所在图层添加「滑块控制」效果(效果 → 表达式控制 → 滑块控制)
- 按住Alt/Option键点击滑块属性的码表,打开表达式输入框
- 粘贴以下表达式,记得把
"文本层"替换成你实际的文本层名称:
// 指定目标文本层,替换成你的文本层名称 textLayer = thisComp.layer("文本层"); // 提取所有标记点的时间并转为数组 markTimes = textLayer.marker.key().map(function(k){ return textLayer.marker.key(k).time; }); // 统计当前时间前(含当前时间)的标记点数量 count = 0; currentTime = time; for (var i = 0; i < markTimes.length; i++){ if (markTimes[i] <= currentTime){ count++; } else { break; // 标记点按时间排序,后续时间更大,直接终止循环 } } // 返回统计结果作为滑块数值 count
关键说明
- 这个表达式会自动统计播放头当前位置之前(包括当前帧)的标记点总数,每经过一个标记点,滑块数值就自动加1,完全匹配你的需求
- 标记点无需额外设置,只要按播放顺序添加即可(AE默认添加的标记点就是按时间排序的)
- 如果需要滑块初始值为0,第一个标记点触发后变为1,这个表达式刚好满足
内容的提问来源于stack exchange,提问作者Farid
相关产品推荐
相关产品推荐

