ae用表达式视频批量添加字幕技巧
工作流程
在此活动的准备过程中,我与编辑确定我将使用该节目的最终音频在After Effects中生成带有Alpha通道的字幕。
您将能够直接在项目中使用文本框,预渲染简化了我们在该上下文中的生活。
撰稿人还获得了音频并用它来编写所有语音文字,创建了在After Effects中制作字幕所需的换行符。每当有没有字幕的句号时,她就会在文档中添加一个空白行。
通过手中的音频和副本,我在After Effects中收集了文本和音频,并进行了音频预览(键盘上的“。”)。我将预览的帧速率调整为正常速度的两倍,花一半的时间来收听整个节目。当我听到它时,我一直为每个换行符生成标记 (在键盘上使用“*”)。在此过程结束时,字幕已准备好呈现。
分离文本并在正确的时间范围内传播的任务由表达式执行。
使用表达式
我不是表达方面的专家,但随着时间的推移,我学会了如何阅读它们,而我现在能够理解它们的大部分含义。我认为花时间研究它们非常重要,为了创建这个字幕项目,我使用了以下表达式:
split()
这个表达是惊人的,非常有帮助。我在Zack Lovatt的帖子中学会了如何使用它。它基本上打破了部分文本,使用你喜欢的任何字符。就我而言,我用它来打破字幕的界限。语法很简单:
text.sourceText.split("/")[i]
将其翻译成适当的英语,意味着:
抓取此文本的内容(text.sourceText),每次出现字符“/”时将其分成不同的块(拆分(’/’)。请只显示第5块(用任意数字替换i)。谢谢!

但是,我们怎样才能使正确的块出现在确切的时刻,就像标记一样?
计数标记
如果我可以随着时间的推移创建一个计算层中标记数量的表达式,我会马上解决这个问题。我无法做到这一点。但沃尔特Soyka做到了,并解释如何在这个创新奶牛职位。对他来说,是冰球的数字记分牌。对我来说,解决我的问题。
m = thisLayer.marker;
i = m.nearestKey(time).index;
if (m.nearestKey(time).time > time){ i–;}
if (i < 1) { i = 1};
i–; i
这个表达式更难以阅读,但它基本上保留了一个名为“i”的包络,即我们通过的每个标记的参考编号。如果我们通过的最后一个标记是第二个,那么“I”将是2.如果它是第五个,“I”将是5。

有了这个,你可能已经知道两个表达式如何协同工作,对吧?每次我们通过标记时,分割表达式将在信封上查看它所持有的数字,然后它会在合适的时间向我们显示相应的文本块。
但是,如果计数块的数量小于标记的数量,那么可能会在表达式中产生错误,不是吗?
try {code} catch(err) {code}

但我更喜欢没有通知,在这种情况下我们只需要使用以下表达式:
try {code1} catch(err) {code2}
翻译:尝试代码1,如果不成功,使用代码2.简单易行。
最终守则
收集所有这些,我们只需将以下代码应用到文本框的源文本中:
m = thisLayer.marker;
i = m.nearestKey(time).index;
if (m.nearestKey(time).time > time){ i–;}
if (i < 1) { i = 1};
i–;
try {text.sourceText.split(“/”)[i]} catch(err) {“”}
按照上述工作流程在After Effects中使用字幕。使用您想要的格式,您可以更改字体,颜色,阴影,没有任何限制。请记住考虑对比度,以便在任何背景上都具有良好的可读性,我倾向于选择黄色字体,黑色轮廓和阴影,很多是VHS字幕的静脉。
结论
足以让人们不得不复制图层来在After Effects中创建字幕,或者使用Premiere的字符生成器。让表达式为你解决这个问题,并在渲染发生时去煮一杯咖啡。更好地掌握其工作原理,下载地址
本站仅供资源信息交流学习,不保证资源的可用及完整性,有任何问题请联系站长
加入终身VIP:全站资源免费+售后答疑服务 了解一下,网站的发展方向以终身VIP为主
你可以填一下网站发展的问卷调查:https://www.wenjuan.com/s/auY7vaL/ 以便我更好帮助你
转载文章请注明出处
果味酱CG小屋 » ae用表达式视频批量添加字幕技巧