国语视界

 找回密码
 立即注册
查看: 7615|回复: 7

[字幕技术] Aegisub脚本运用5:Translation篇 平移

[复制链接]

31

主题

1324

帖子

1813

积分

营长

大洋
102549
阅读权限
50
发表于 21-7-14 16:44 | 显示全部楼层 |阅读模式
本帖最后由 zhanglangcn 于 21-7-14 16:45 编辑

前期回顾
Aegisub脚本运用1:Merge Bilingual SUBS篇 合并中英字幕https://cnlang.org/thread-86347-1-1.html
Aegisub脚本运用2:Utilities篇1 SDH字幕处理与对白检查https://cnlang.org/thread-86368-1-1.html
Aegisub脚本运用3:Utilities篇2 我想给特效换个位置https://cnlang.org/thread-86620-1-1.html
Aegisub脚本运用4:Font Resize篇 特效防抖https://cnlang.org/thread-86816-1-1.html


前言
想了好久,还是决定用几篇教程介绍以下我写的脚本的使用方法以及能够实现的功能。
首先先声明以下这一系列教程将不会包括:
1. 什么是脚本,脚本是用来干嘛的
2. Aegisub脚本要如何安装
3. 脚本快捷键如何设置
4. Yutils是什么,要怎么安装,(但其是实现脚本功能的一个非常重要的库,请自行按照https://cnlang.org/forum.php?mod=viewthread&tid=85654或百度教程安装)

所有我的脚本都保存在我的GitHub仓库内,地址https://github.com/zhang-changwei/Automation-scripts-for-Aegisub喜欢的大佬可以为我加star,遇到问题可以直接issue中提出,我在GitHub的回复肯定比在论坛提问回复及时。7月13日release已发布。

这一节将会介绍C Translation的使用方法,这是一个对多行字幕中的特定标签数值进行批量增大减小的脚本,使用该脚本可以实现对mocha导入行字幕的微调修正。

脚本界面

基本使用操作为(具体操作的意义将在下面具体说明):
0. 选中多行字幕(必须大于等于两行),点击该脚本,进入脚本界面
1. 勾选或不勾选setting选项框
2. 勾选需要进行操作的特效标签,对其他标签,勾选other tag选项框,然后下下拉菜单中选到需要操作的特效标签,支持一次勾选多个特效标签
3. 设置参数,对translation,只需设置translation列参数,同理对smooth,只需设置smooth列参数,大部分参数保持默认即可
4. 点击translation或smooth按钮,完成


参数说明(对translation操作)
以下以fscx特效标签为例,介绍脚本各参数的意义
最左侧的特效标签勾选框:脚本只会对勾选的标签操作,未勾选的会保持原样
fscx_start:对选中行首行中特效标签fscx的平移量,如原始为\fscx120,设置该参数为10,则运行脚本后该标签会变为\fscx130
fscx_end:对选中行末行中特效标签fscx的平移量,具体同上
fscx_index:当选定行中每行都有超过一个fscx标签时,使用该参数控制脚本需要操作的为哪一个fscx标签,如:
{\fscx120\pos(960,540)\t(\fscx150)}这是一行{\fscx90}示例
如需要对示例两字前的fscx标签(即该行的第3个fscx标签)进行操作,设置fscx_index=3,如此其他fscx标签会保持原样,一般该参数默认为1即可
脚本要求及其相似的特效标签结构,因而常被用在mocha生成行上。若选中字幕行中某行不存在选中标签,脚本可能会出错;若选中行中某行多出一个fscx标签,可能导致脚本错误判定需要操作的标签
脚本对选中字幕行中其他行特效标签fscx的平移量由参数fscx_start与fscx_end插值给出,如选中行有5行,fscx_start=10,fscx_end=30,则各行fscx平移量分别为10,15,20,25,30.
以下是原理的图示:

setting:选择插值模式,勾选为时间模式,不勾选为行模式,mocha生成行一行一帧情况下两者无差别,对具有完全相同时间轴的多行必须使用行模式,以下是两种模式区别的图示:

accel:改变偏移函数的具体形式,当accel=1,偏移函数为线性;当accel>1,偏移函数下凸;当accel<1,偏移函数上凸,与aegisub内置加速度一致,具体图示如下:

multiply:(只适用于fscx与fscy标签)若不勾选所有参数都是以加法模式作用在原始数据上的,勾选后,平移量以乘法作用于原始数据,如fscx_start=0.5,原始fscx=250,则脚本运行后fscx=125,常用于过水时需要大幅缩减特效尺寸的情况。


演示示例
原始数据如下

设置脚本界面如下

运行完后字幕如下,可以看到在actor栏内多出C字样作为运行成功的标记

下面举一个具体的栗子,例如下面这个mocha追踪结尾位置偏下,

使用脚本将结尾位置向上偏移,注意y轴坐标向上为负,向下为正

运行完脚本后结果如下:

可以看到效果明显变好,使用脚本反复对mocha生成行进行微调,以达到预期效果


最后对smooth操作进行参数说明
smooth操作大部分与translation操作相同,唯一区别在于偏移函数不同,smooth操作保持首末行标签数值不变,并且在首末行附近参数变化率(即导数)不变。smooth使用的偏移函数为单峰状函数,通过反向叠加该函数,达到抵消字幕行标签异常隆起的效果,以实现平滑目的。
deviation:峰高,即特效标签数值的最大改变量
accel:参数范围:0-inf,改变峰宽,该参数越大,峰越尖锐
transverse:参数范围:0-inf,改变峰在横轴(时间、行)上的位置
具体图示如下,其为仓库information文件夹下function smooth.cdf可执行文本,可用mathematica软件打开



切勿水贴!!!

评分

参与人数 2威望 +50 大洋 +2000 收起 理由
why1812 + 50 + 1500 厉害了我的神!
开心兔 + 500 厉害了我的神!

查看全部评分

32

主题

3732

帖子

2671

积分

营长

大洋
50426
阅读权限
50

热心会员

QQ
发表于 21-7-14 23:52 | 显示全部楼层
厉害,我的大神!!!
回复 支持 反对

使用道具 举报

1

主题

692

帖子

2053

积分

营长

大洋
11382
阅读权限
50
发表于 21-9-2 20:46 | 显示全部楼层
感谢分享经验
[img=600,600]https://p3-bcy.byteimg.com/img/banciyuan/8f238a9438fa49069b1d8c10453
回复 支持 反对

使用道具 举报

4

主题

433

帖子

67

积分

列兵

大洋
3
阅读权限
10
发表于 21-11-23 04:31 来自手机 | 显示全部楼层
贼牛逼啊!小白学习
回复 支持 反对

使用道具 举报

0

主题

2271

帖子

242

积分

排长

大洋
17579
阅读权限
30
发表于 22-2-21 09:44 | 显示全部楼层
好厉害,大神。
回复 支持 反对

使用道具 举报

1

主题

11

帖子

3

积分

列兵

大洋
41
阅读权限
10
发表于 22-5-10 00:26 | 显示全部楼层
很棒的教程哦,通俗易懂,谢谢大佬
回复 支持 反对

使用道具 举报

1

主题

18

帖子

3

积分

列兵

大洋
193
阅读权限
10
发表于 22-5-18 12:28 | 显示全部楼层
很棒的教程
回复 支持 反对

使用道具 举报

2

主题

343

帖子

52

积分

列兵

大洋
4200
阅读权限
10
发表于 23-2-2 03:47 | 显示全部楼层
这个非常实用
回复 支持 反对

使用道具 举报

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

本版积分规则

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