国语视界

 找回密码
 立即注册
查看: 11521|回复: 37

[字幕技术] 自写Aegisub LUA自动化脚本分享

[复制链接]

31

主题

1324

帖子

1813

积分

营长

大洋
102573
阅读权限
50
发表于 21-1-22 13:59 | 显示全部楼层 |阅读模式
本帖最后由 zhanglangcn 于 21-1-22 14:03 编辑

自己写的一些Aegisub LUA脚本分享 大佬勿喷

1.C Font Resize [推荐]
防止mocha抖动的一个脚本 选中要作用的行运行即可 具体方法见下图

P.S. 该脚本已更新至v1.1 修复行内缩放不正确问题 请仍在使用v1.0版本的大佬更新至此版本


2.C Translation [推荐]
整体平移选中行中标签的一个脚本 选中行(最好为逐帧行)运行 见图
例如设置posx_start=100 posx_end=200 accel=1 则
选中首行向右平移100pixel 末行向右平移200pixel 中间行等间隔向右平移
该脚本亦可作用于\fscx \fscy \clip标签
可用于制作3D特效 Mocha生成行的微调等



P.S. 该脚本原来想叫Gradient 现更名为Translation

3.C Change SUB resolution to match video PATCH
该脚本修复默认分辨率字幕脚本匹配至视频分辨率后边框与阴影大小出错的问题
选中所有行运行 具体方法见图



4.C Effect Dissolve
溶解特效脚本 将\fad(#,#)转换为溶解特效
选中一行运行 P.S. 该脚本会产生大量字幕行 Aegisub可能会很卡 请谨慎使用 具体方法与效果见图



P.S.图中字为“嘿”

5.C Merge Bilingual SUBS
中英合并时使用 将前后两行中的英文移至本行 请配合Hotkey使用 见图






本贴所有附件不回复即可见 回帖区留给使用后有问题的人 水贴者请绕道
欢迎报告脚本中的bug
允许为实现更多功能,对脚本做任何修改(请勿删去本人名字chaaaaang在其他地方发布)
只说不能用、不会用的一律无视 使用前请仔细查看开头注释部分
报告bug请展示Aegisub报错信息、bug产生场景等信息 可PM我

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 8威望 +60 大洋 +1850 收起 理由
why1812 + 10 + 800 赞一个!
Aimo + 50 + 500 试用了防抖,有效果,赞一个!.
hatsukoi + 10 厉害了我的神!
单身狗咋了 + 20 厉害了我的神!
KKYY + 200 厉害了我的神!
PiAO + 20 厉害了我的神!
HN200226 + 200 蓝天大佬牛逼!
令狐冲2019 + 100 赞一个!

查看全部评分

34

主题

1669

帖子

1600

积分

营长

大洋
92934
阅读权限
50
发表于 21-1-22 14:53 | 显示全部楼层
哇很不错,我买一个玩玩
回复 支持 反对

使用道具 举报

46

主题

753

帖子

1127

积分

营长

大洋
14619
阅读权限
50
QQ
发表于 21-1-22 14:57 | 显示全部楼层
蓝天大佬牛逼
回复 支持 反对

使用道具 举报

83

主题

643

帖子

1万

积分

禁止访问

大洋
10054
阅读权限
0

王者至尊富甲天下美女帅哥宣传达人最佳新人优秀版主突出贡献灌水之王论坛元老热心会员版主超级版主悍匪之王

发表于 21-1-22 15:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

32

主题

959

帖子

3563

积分

团长

大洋
146310
阅读权限
60
发表于 21-1-22 16:25 | 显示全部楼层
非常感谢楼主的分享,关于楼主防止mocha抖动的脚本的说明,其中提到\fs50 -> \fs5\fscx1000\fscy1000的变换方式,想请教一下这种变换方式对于减小mocha跟踪抖动的依据是?

关于mocha跟踪大小连续变化物体的情况,我自己尝试发现,跟踪这种物体所得的mocha跟踪数据,导入aegisub总会有抖动(即使设置\an5中心对齐),但同样的数据导入ae、pr、fcp等似乎都不会发生抖动,不知道是什么原因,楼主的脚本对这种大小一直变化的跟踪会有帮助吗?

关于mocha跟踪导入aegisub后抖动的来源,也希望楼主能具体说明一下

还望楼主不吝赐教,谢谢

PS:
另外我本人不懂lua语言的写法,因此如果有表述不清的地方还望楼主谅解。

个人认为如果只是为了实现特效标签的批量替换和规律性重复,其实vim加shell命令似乎也是不错的选择(bushi

点评

这个脚本不是批量替换那么简单 包括读取样式表信息以及很多判断操作都需要程序来实现 而且我提到的变化方式只是举了一个例子为了便于理解  发表于 21-1-22 18:22
回复 支持 反对

使用道具 举报

5

主题

4078

帖子

485

积分

排长

大洋
50669
阅读权限
30
发表于 21-1-22 16:56 | 显示全部楼层
强贴留名,先收藏了慢慢学习

点评

写明了不要水帖还水贴!!!!!  发表于 21-1-22 18:16
回复 支持 反对

使用道具 举报

48

主题

1469

帖子

8197

积分

旅长

大洋
196967
阅读权限
70
发表于 21-1-22 16:59 | 显示全部楼层
抹茶防抖真是太棒了!!!!!深深的佩服和万分的感谢
回复 支持 反对

使用道具 举报

31

主题

1324

帖子

1813

积分

营长

大洋
102573
阅读权限
50
 楼主| 发表于 21-1-22 18:12 | 显示全部楼层
fyc0066 发表于 21-1-22 16:25
非常感谢楼主的分享,关于楼主防止mocha抖动的脚本的说明,其中提到\fs50 -> \fs5\fscx1000\fscy1000的变换 ...

因为mod不支持浮点数的scale 所以\fscx99.00 和\fscx99.99的缩放效果是一样的,抖动来源于由\fscy99.99->\fscy100缩放的跳变,跳变比例是1%,经脚本处理后是\fscy999.9->\fscy1000的跳变,跳变比例是0.1%,所以抖动会显著减小

点评

借楼主地盘,呈上抖动另一种解法:跟踪前的初始语句直接使用\fscx\fscy四位数以上倍数配合小号字体替代直接输入的大号字体,再加载跟踪数据!  发表于 21-1-23 11:14
mod不支持浮点数导致的抖动,确切地讲,mod不支持fscx和fscy的小数部分,此乃起因!楼主此脚本的解决思路确实切中要点,可以大大缓解抖动!  发表于 21-1-23 11:06
回复 支持 反对

使用道具 举报

32

主题

959

帖子

3563

积分

团长

大洋
146310
阅读权限
60
发表于 21-1-22 18:17 | 显示全部楼层
zhanglangcn 发表于 21-1-22 18:12
因为mod不支持浮点数的scale 所以\fscx99.00 和\fscx99.99的缩放效果是一样的,抖动来源于由\fscy99.99-> ...


好的明白了,感谢楼主解答
回复 支持 反对

使用道具 举报

97

主题

2922

帖子

3123

积分

团长

大洋
710558
阅读权限
60
发表于 21-1-23 11:31 | 显示全部楼层
感谢楼主为坛友们献上优秀的自动化脚本
抹茶抖动相信困扰了不少坛友,有幸在解决抖动上与楼主殊途同归
下面有个小小请求,唐突之处,还请谅解!不知楼主能否编写淡入淡出叠加字符旋转(外加移动或者不移动)的自动化脚本
类似效果如下图:


声明:本人制作的所有字幕作品仅限论坛会员测试之用!请在测试后24小时内删除!严禁非法传播或用于商业用途,对用于商业用途所产生的法律责任,由使用者自负!
回复 支持 反对

使用道具 举报

31

主题

1324

帖子

1813

积分

营长

大洋
102573
阅读权限
50
 楼主| 发表于 21-1-23 14:17 | 显示全部楼层
anrry 发表于 21-1-23 11:31
感谢楼主为坛友们献上优秀的自动化脚本
抹茶抖动相信困扰了不少坛友,有幸在解决抖动上与楼主殊 ...

这个建议用卡拉OK解决哦
本人对卡拉OK不是很熟 仅提供一条示例代码
{\fry90\t(0,200,\fry0)\org($center,$middle)\move($x,$y,!$x+50!,$y,0,200)}
另外如果不喜欢样式表中的位置可以用translation脚本平移哦
回复 支持 反对

使用道具 举报

32

主题

959

帖子

3563

积分

团长

大洋
146310
阅读权限
60
发表于 21-1-23 14:19 | 显示全部楼层
本帖最后由 fyc0066 于 21-1-23 14:25 编辑
anrry 发表于 21-1-23 11:31
感谢楼主为坛友们献上优秀的自动化脚本
抹茶抖动相信困扰了不少坛友,有幸在解决抖动上与楼主殊 ...


移动加转动的效果,楼上已有方法解决,

这种移动/转动加淡入淡出的效果分两种情况:
不用mocha跟踪,字幕时间段未逐帧拆分,可以直接加\fad(e)标签;
用mocha跟踪,字幕时间段逐帧拆分,这时每一帧加\fad(e)标签就大可不必;完全可以用透明度标签\{1,2,3,4}a&H××&代替,因此思路就很明确,只需要确定要加淡入淡出效果的对应帧范围(后以淡出和主颜色为例),将透明度标签从\1a&H00&到\1a&HFF&按帧数等距分割,施加到每一帧上就行,比如:
  1. Dialogue: 0,0:00:05.00,0:00:05.02,Default,,0,0,0,,{\bord3\shad0\fs500\pos(960,840)\c&HFFFFFF&\1a&H00&\3a&H00&}1
  2. Dialogue: 0,0:00:05.02,0:00:05.06,Default,,0,0,0,,{\bord3\shad0\fs500\pos(960,840)\c&HFFFFFF&\1a&H33&\3a&H33&}1
  3. Dialogue: 0,0:00:05.06,0:00:05.10,Default,,0,0,0,,{\bord3\shad0\fs500\pos(960,840)\c&HFFFFFF&\1a&H66&\3a&H66&\3c&H000000&}1
  4. Dialogue: 0,0:00:05.10,0:00:05.15,Default,,0,0,0,,{\bord3\shad0\fs500\pos(960,840)\c&HFFFFFF&\1a&H99&\3a&H99&\3c&H000000&}1
  5. Dialogue: 0,0:00:05.15,0:00:05.19,Default,,0,0,0,,{\bord3\shad0\fs500\pos(960,840)\c&HFFFFFF&\1a&HCC&\3a&HCC&\3c&H000000&}1
  6. Dialogue: 0,0:00:05.19,0:00:05.23,Default,,0,0,0,,{\bord3\shad0\fs500\pos(960,840)\c&HFFFFFF&\1a&HFF&\3a&HFF&}1
复制代码

这里是将透明度标签从\1a&H00&到\1a&HFF&等距分割成6帧,其实就是将数字0到255分成0、51、102、153、204、255,再做十进制->十六进制的转换成00、33、66、99、CC、FF并施加到每一行上。
以上替换写成命令很容易,进制转换的代码加上浮点数转整型数的代码和搜索替换即可完成,大可不必写成脚本。
相信层主已经注意到,\shad(e)代码的颜色会因为透明度变化而与上层主颜色发生叠加,无论是\fad(e)还是\4a&H××&都无法解决此问题。
如:
  1. Dialogue: 0,0:00:05.00,0:00:05.23,Default,,0,0,0,,{\fad(0,230)\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&H00&\3a&H00&}1
复制代码


  1. Dialogue: 0,0:00:05.00,0:00:05.02,Default,,0,0,0,,{\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&H00&\3a&H00&\4a&H00&}1
  2. Dialogue: 0,0:00:05.02,0:00:05.06,Default,,0,0,0,,{\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&H33&\3a&H33&\4a&H33&}1
  3. Dialogue: 0,0:00:05.06,0:00:05.10,Default,,0,0,0,,{\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&H66&\3a&H66&\3c&H000000&\4a&H66&}1
  4. Dialogue: 0,0:00:05.10,0:00:05.15,Default,,0,0,0,,{\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&H99&\3a&H99&\3c&H000000&\4a&H99&}1
  5. Dialogue: 0,0:00:05.15,0:00:05.19,Default,,0,0,0,,{\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&HCC&\3a&HCC&\3c&H000000&\4a&HCC&}1
  6. Dialogue: 0,0:00:05.19,0:00:05.23,Default,,0,0,0,,{\bord3\shad2\fs500\pos(960,840)\c&HFFFFFF&\1a&HFF&\3a&HFF&\4a&HFF&}1
复制代码

上面两种字幕都出现了上述问题,这个问题我自己没办法解决,还望能得到解答。

上述思路其实同样适用于移动加转动的效果,即等距分割\fry再施加到每一帧,楼主可以试试

点评

感谢两位热心探讨,现行方案用的就是卡拉OK,感觉在淡入淡出和运动上还有瑕疵,所以向楼主提出了是否存在脚本实现更佳效果的构想。Thank you again!  发表于 21-1-23 17:22
其实我也只是说说,我自己也不知道写出来的代码会是啥样,但把特定的字幕帧抽出来做文本处理似乎是可行的  发表于 21-1-23 14:49
如果你只想要阴影把主色调设成透明就行 但你会发现aegisub里的阴影不是真正的阴影  发表于 21-1-23 14:48
脚本是为了方便制作字幕而写的,你说的替换应该已经超过了正则能处理的范围,大部分人应该都不会(我也不会)  发表于 21-1-23 14:46
就是相当于只显示字幕主体外的阴影了,如果是ae,ps里做剪切蒙版就行,但aegisub里没这样的操作呀  发表于 21-1-23 14:45
回复 支持 反对

使用道具 举报

48

主题

1469

帖子

8197

积分

旅长

大洋
196967
阅读权限
70
发表于 21-1-23 15:52 | 显示全部楼层
zhanglangcn 发表于 21-1-23 14:17
这个建议用卡拉OK解决哦
本人对卡拉OK不是很熟 仅提供一条示例代码
{\fry90\t(0,200,\fry0)\org($center, ...

这个最大的问题是aegisub的转动都是整句转动,要达到那个效果就要逐字转动,感觉卡拉ok也不能实现的样子

点评

卡拉OK逐字转动没问题,要注意两点:1.逐字打K值 2.特效标签使用syl,不能用line  发表于 21-1-23 17:23
好像是的  发表于 21-1-23 16:38
我试过正常的 你是不是没有逐字添加K值  发表于 21-1-23 16:15
回复 支持 反对

使用道具 举报

4

主题

2390

帖子

1024

积分

营长

大洋
14011
阅读权限
50
发表于 21-1-24 07:07 | 显示全部楼层
这纯技术一点不懂啊,进来慢慢体会慢慢学,感谢各位高手解惑。
回复 支持 反对

使用道具 举报

61

主题

3911

帖子

2936

积分

营长

大洋
90691
阅读权限
50
发表于 21-1-24 22:48 | 显示全部楼层
感谢分享技术贴!
回复 支持 反对

使用道具 举报

48

主题

1522

帖子

3082

积分

团长

大洋
13242
阅读权限
60
发表于 21-1-25 14:20 | 显示全部楼层
请问下,前面两个脚本要放在aegisub文件夹里的哪个子文件夹里?谢谢!
老白一个,刚学会初步的字幕跟踪!
回复 支持 反对

使用道具 举报

13

主题

1442

帖子

1084

积分

营长

大洋
4816
阅读权限
50
发表于 21-1-30 11:11 | 显示全部楼层
393754923 发表于 21-1-25 14:20
请问下,前面两个脚本要放在aegisub文件夹里的哪个子文件夹里?谢谢!
老白一个,刚学会初步的字幕跟踪! ...

aegisub安装目录下有个automation文件夹点进去会有一个autoload文件夹。把它放进那个autoload文件夹就行了

点评

谢谢!  发表于 21-2-2 07:47
回复 支持 反对

使用道具 举报

8

主题

1830

帖子

391

积分

排长

大洋
15932
阅读权限
30
发表于 21-2-4 23:19 | 显示全部楼层
厉害了楼主
回复 支持 反对

使用道具 举报

7

主题

2169

帖子

1206

积分

营长

大洋
473
阅读权限
50
发表于 21-4-28 10:49 | 显示全部楼层
跟踪字幕
学习受教了谢谢
回复 支持 反对

使用道具 举报

2

主题

353

帖子

57

积分

列兵

大洋
12699
阅读权限
10
发表于 21-5-7 10:44 | 显示全部楼层
言冰云 发表于 21-1-30 11:11
aegisub安装目录下有个automation文件夹点进去会有一个autoload文件夹。把它放进那个autoload文件夹就行 ...

所有的压缩包文件都放这里吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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