尝试的最终结果是:声音文件中的每一个关键帧经过,文本都会通过打字机动画添加一个字母。本质上,声音文件是键盘的声音。所以这将使字母与键音相匹配。
我对为 After Effects 编写表达式还很陌生。到目前为止,我已将声音文件转换为关键帧并将曲线从范围选择器拖到其中一个声道。但是,这会将范围选择器设置为通道的值。所以目前文本在显示 0-5 个字符之间来回弹跳。
这是音频文件和相关文本文件的屏幕截图。
有任何想法吗?
尝试的最终结果是:声音文件中的每一个关键帧经过,文本都会通过打字机动画添加一个字母。本质上,声音文件是键盘的声音。所以这将使字母与键音相匹配。
我对为 After Effects 编写表达式还很陌生。到目前为止,我已将声音文件转换为关键帧并将曲线从范围选择器拖到其中一个声道。但是,这会将范围选择器设置为通道的值。所以目前文本在显示 0-5 个字符之间来回弹跳。
这是音频文件和相关文本文件的屏幕截图。
有任何想法吗?
threshold = 9.5;
audioLev = thisComp.layer("typewr11.wav").effect("Both Channels")("Slider");
above = false;
frame = Math.round(time / thisComp.frameDuration);
n = 0;
while (frame >= 0){
t = frame * thisComp.frameDuration;
if (above){
if (audioLev.valueAtTime(t) < threshold){
above = false;
}
}else if (audioLev.valueAtTime(t) >= threshold){
above = true;
n++;
}
frame--;
}
n;
很抱歉看到这个很晚。基于伟大的 Dan Ebberts 的工作 ( http://www.motionscript.com/design-guide/audio-count.html ),这里是解决方案。但首先让我指出:
“每次声音文件中的关键帧通过时,文本都会添加一个字母”——实际上,这是不正确的。如果您将音频转换为关键帧,您正在寻找某个音量阈值来触发动作;这不是任何关键帧。
所以这就是我所做的:
这是带有一些解释性注释的图像:
Ebberts 警告说,如果你有一个非常长的合成/层来执行这个表达式,它可能会因为每帧都必须循环而陷入困境(每帧循环迭代都会增加),所以要注意这一点。