1

尝试的最终结果是:声音文件中的每一个关键帧经过,文本都会通过打字机动画添加一个字母。本质上,声音文件是键盘的声音。所以这将使字母与键音相匹配。

我对为 After Effects 编写表达式还很陌生。到目前为止,我已将声音文件转换为关键帧并将曲线从范围选择器拖到其中一个声道。但是,这会将范围选择器设置为通道的。所以目前文本在显示 0-5 个字符之间来回弹跳。

这是音频文件和相关文本文件的屏幕截图。

有任何想法吗?

在此处输入图像描述

4

1 回答 1

2
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 ),这里是解决方案。但首先让我指出:

“每次声音文件中的关键帧通过时,文本都会添加一个字母”——实际上,这是不正确的。如果您将音频转换为关键帧,您正在寻找某个音量阈值来触发动作;这不是任何关键帧。

所以这就是我所做的:

  1. 引入了一个打字机音效文件,其中输入了 11 个字符(http://frogstar.com/wp-content/uploads/2012/wav/typewr11.wav)。
  2. 将音频转换为此音频层的关键帧,从生成的新层中获取“两个通道”键并将它们粘贴到原始音频层中,删除不必要的新创建层。
  3. 创建了包含 11 个左右字符的文本文件(“12345,六个!!”)。
  4. 从文本层的动画弹出窗口中选择不透明度。将范围选择器单位设置为索引,不透明度(范围选择器,而不是图层)设置为 0。
  5. 将平滑度设置为 0。
  6. 按住 Option 键单击范围选择器的“开始”属性,将上面的表达式粘贴到其中。

这是带有一些解释性注释的图像:

两层,音频打字

Ebberts 警告说,如果你有一个非常长的合成/层来执行这个表达式,它可能会因为每帧都必须循环而陷入困境(每帧循环迭代都会增加),所以要注意这一点。

于 2014-05-02T01:16:51.837 回答