(After Effects)随时间更改文本内容

时间:2016-05-08 06:24:02

标签: text after-effects

我想在播放歌曲时输入标题+艺术家名称,但我不知道如何实现这一点,因为有近30-35首歌曲,创建特定文本图层会很漫长而且很无聊为每首歌。 如果有一个技巧可以快速实现这一目标。

1 个答案:

答案 0 :(得分:1)

您可以通过脚本实现此目的。 我有这两个脚本应该做你想要的。我不久前写的。也许你需要做一些调整。

这个从csv文件中添加了几个文本图层。

https://github.com/fabiantheblind/after-effects-script-snippets/blob/master/comp_with_text.jsx

这个应该添加一个文本层,源文本设置为csv的内容。

https://github.com/fabiantheblind/after-effects-script-snippets/blob/master/text_to_comp.jsx

这是使用sourceText

添加文本图层的最小示例
/**
 * main function
 */
var main = function() {
  var txt = ['Hello - World', 'dog -cat', 'foo - bah']; // the text to add
  app.beginUndoGroup('add source text'); // open a undo group
  var curComp = app.project.activeItem; // get the current comp
  // check if the curent active item is a comp
  if (!curComp || !(curComp instanceof CompItem)) {
    alert('noComp');
    return;
    // end if no comp is active
  }
  var txtLayer = curComp.layers.addText('titles'); // add a text layer
  var counter = 0; // the time to add a keyframe to (in seconds)
  // loop the text
  for (var i = 0; i < txt.length; i++) {
    var curFrame = (counter / curComp.frameRate); // calc time for each frame
    $.writeln(curFrame);
    // add a keyframe with the text as value every frame
    txtLayer.text.sourceText.setValueAtTime(curFrame, txt[i]);
    counter++; // increase the time by one
  }
  app.endUndoGroup();
};
main();