AE怎么导入SRT文件?不需要任何脚本插件,却能一键生成

自CC2018版本的AE以来,您可以导入JSON文件以创建数据驱动的动画。那么,JSON文件基本上只是文本吗?所以这让我思考; “如果我尝试导入SRT文件而不是JSON会怎样?” 事实证明,如果在导入文件对话框中省略文件掩码(所有文件(*。*)),您实际上可以导入* .srt文件。运用

  1. footage(“filename.srt”).sourceText

如果显示SRT文件的(完整)内容,则作为textLayer的源文本上的表达式。我现在要做的就是解析内容,获取及时,出时和实际的子,并在正确的时间显示所有内容。请注意,我不是程序员,所以可能有一个比这更好,更有效,更漂亮的解决方案,但这是我的工作解决方案:

  1. var subFile = “sub.srt”;

  2. var lines = footage(subFile).sourceText.split(‘\n\r\n’);

  3. for (n = 0; n

  4. if (time >= srt(lines, n).start && time

  5. sourceText = srt(lines, n).sub;

  6. break;

  7. } else {

  8. sourceText = “”;

  9. }

  10. }

  11. //————————————

  12. function srt(lines, i) {

  13. origin = lines[i].split(‘\n’);

  14. ID = parseInt(origin[0]);

  15. startText = origin[1].match(/^[0-9][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9]/)[0].replace(“,”, “:”);

  16. endText = origin[1].match(/\s[0-9][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9]/)[0].replace(‘ ‘, ”).replace(“,”, “:”);

  17. var subtitle = “”;

  18. for (var j = 2; j

  19. subtitle = subtitle + origin[j] + ‘\n’;

  20. }

  21. return {id:ID, start:parseTime(startText), end:parseTime(endText), sub:subtitle};

  22. }

  23. //————————————

  24. function parseTime(str) {

  25. hours = parseInt(str.split(‘:’)[0]);

  26. minutes = parseInt(str.split(‘:’)[1]);

  27. seconds = parseInt(str.split(‘:’)[2]);

  28. millisesconds = parseInt(str.split(‘:’)[3]);

  29. t = (hours*60*60) + (minutes*60) + seconds + (millisesconds/1000);

  30. t = Math.round(t*100)/100;

  31. return t;

  32. }

您只需将上面的表达式放在TextLayer的Source Text属性中,并将“sub.srt”替换为导入的字幕文件的名称。

积分获取方式:发文赚钱+签到积分+推广返利+充值
本站仅供资源信息交流学习,不保证资源的可用及完整性,有任何问题请联系站长
加入终身VIP:全站资源免费+售后答疑服务 了解一下,网站的发展方向以终身VIP为主
转载文章请注明出处
果味酱CG小屋 » AE怎么导入SRT文件?不需要任何脚本插件,却能一键生成

(0)

相关推荐