找回密码
 立即注册
查看: 51|回复: 0

Tag Replace : 功能强大的通用型 Aegisub 自动化脚本

  • TA的每日心情
    慵懒
    12 小时前
  • 签到天数: 250 天

    [LV.8]以坛为家I

    7

    主题

    31

    回帖

    0

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    101127
    op200 发表于 4 小时前 | 显示全部楼层 |阅读模式
    本帖最后由 op200 于 2024-11-21 13:05 编辑

    项目地址

    起因(一些碎碎念):

    这个脚本最初是从24年4月份开始写了,一直更新到现在,今天更新到了 2.1.4 版本

    写这个脚本的原因是因为当时我决定开始学习 Aegisub 的特效,也就是使用自动化脚本生成复杂的字幕样式,于是我学习了一下 Aegisub 自带的卡拉OK模板执行器,以及找到了那个有很多特效模板的 ASS 压缩包

    但是我觉得那些特效模板虽然丰富,但无法解决我99%的需求,而且这些模板中有很多bug,例如有些模板会丢失首位帧、有的动效位置错位等等各种各样的问题

    正所谓自己写的代码再答辩都能看懂,但看别人代码就跟看天书一样,我决定自己写特效,而不是用模板,然后我就决定入门卡拉OK模板执行器,但我刚入门一点皮毛我就忍不了了——为啥这个脚本连判断哪些行被执行都只能用样式名判断?我本以为它能像HTML那样用类名判断

    再加上网上的相关教程很少,让我的学习动力很低,于是我决定自己写一个执行器 (/≧▽≦)/

    用了一上午学完了lua的基本语法之后,我就开始着手写脚本了

    一开始的写了基本的功能——标签的替换、自动注释原行、insert 和 append、用 class 分类……
    然后因为我想手动优化执行效率,导致代码可读性很差,把基本功能的bug 修完就花了近一周时间

    后面慢慢地加入新的功能,一直更新到现在,功能已经(应该算是)基本完善了,想着可能对大家来说有点用(目前就我自己在用),所以发出来给大伙瞅瞅(


    功能:

    具体功能在项目的wiki里有写,很全面,但不怎么详细

    对比卡拉OK模板执行器的功能,应该很多功能是没有的,不过具体哪些功能我不确定,因为我没用过那个脚本

    追踪
    对大部分字幕制作者来说最有用的应该是追踪功能,之前我发过帖子,在那之后我还加上了对蒙板追踪的功能,可以实现对不规则图形蒙板的追踪,具体用法是用mocha导出追踪数据,将数据写在模板行的变量里,然后对同类的执行行执行就行了,好处是可以把数据存在ass文件里,这就很开源(

    匹配行
    我就是因为不喜欢卡拉OK模板执行器的匹配功能才写这个脚本的,所以匹配部分我用的是类匹配,可以为每一行单独定义n个类,类有交集的行会被执行;
    除了类匹配,还支持样式名和说话人匹配

    插入
    与卡拉OK模板执行器不同,这个脚本的插入是默认插在原行的后面的,当然也可以插在整个字幕的尾部;
    还有缓存行的功能,可以先自己把字幕行存起来,然后经行复杂的处理,在丢进缓存里,然后释放缓存,行就会被插入到字幕中,这可以有效避免手动插入导致API出bug(Aegisub的API有些奇怪的bug)

    其他
    还有一些其他的奇奇怪怪的功能,比如颜色渐变、时域标签渐变等等,有的功能还挺好用,有的就比较多余



    增加新的功能:

    如果你有什么觉得好用的新功能,可以告诉我,我有空会尝试增加进去
    (这代码我自己都读不懂,估计也就我自己能加功能了)


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表