基本字幕特效代码
字形类
修改字体形状
加粗 {\b1}
取消加粗{\b0}
斜体 {\i1}
取消斜体{\i0}
下划线 {\u1}
删除线 {\s1}
字体大小{\fs256}
恢复默认大小{\fs}
或{\fsdefault}
字体名{\fn微软雅黑}
恢复默认字体{\fn}
不能写defaut
横向拉伸字体 {\fscx100}
纵向拉伸字体 {\fscy100}
(100
为初始)
字间距 {\fsp5}
文字边框宽度 {\bord1}
(数字为>=0的边框宽度,0为无边框)
– 文字边框横向变大 {\xbord10}
纵向 {\ybord10}
阴影与字体的具体 {\shad1}
(1为距离,默认向右下角)
– 改变横纵阴影位置 {\xshad1}
{\yshad1}
位置类
直接改位置{\pos(45,67)}
(x,y)
角落位置 {\an1}
(数字1-9,参考小键盘,如下)
7 8 9
4 5 6
1 2 3
字体间距 {\fsp48}
(48为一个默认字的大小,视默认字体大小而定)
X轴Y轴立体旋转 {\frx30}
{\fry30}
({\frx180}
为水平镜像,{\fry180}
为竖直镜像)
\frx
&\fry
通常需要正确的\an
配置,且可以和\fax
一起使用
绕中心2D旋转{\fr50}
改变旋转圆点 {\org(x,y)}
(x,y为圆点坐标)
横向扭曲(类似斜体) {\fax1}
纵向扭曲 {\fay1}
移动 {\move(x0,y0,x1,y1)}
(x0,y0为运动的起始坐标,x1,y1为运动的终止坐标,运动时间和字幕出现时间一致)
– 或者{\move(x0,y0,x1,y1,t1,t2)}
(t1
为开始运动的时间,t2
为结束运动的时间,单位均为ms
,1s=1000ms
)
关于非匀速运动:
有两个可行的方案。
① 可以近似的用半径极大的圆来拟合,配合\t。
例如:{\pos(624,574)\org(50000,574)\frz-0.1\t(0,500,0.5,\frz0)}测试字幕
② 用空白字符+
\fsp\t(\fsp)
来控制移动。
例如:{\pos(956,618)\fs100\fsp90\t(0,1500,0.5,\fsp0)} {\fs\fsp0}测试字幕
裁切 {\clip(x0,y0,x1,y1)}
(在x0,y0
到x1,y1
范围内的字幕才被显示,如下图)
反向裁剪
{\iclip(x0,y0,x1,y1)}
,只显示区域外的字幕
色彩类
第一颜色,即字体填充色 {\c&H颜色代码}
(十六位颜色代码000000-FFFFF,六位数,且顺序为蓝绿红)(写1c也可)
第二颜色,卡拉OK(见下)模式下被覆盖的颜色
第三颜色,即边框颜色 {\3c&H颜色代码}
第四颜色,即阴影颜色{\4c&H颜色代码}
全部透明度 {\alpha&H透明度}
(透明度为00-FF,00不透明,FF全透明)
也可以简写为
{\alpha透明度}
单独透明度调整,参考1234颜色 {\1a&H透明度}``{\3a&H透明度}``{\4a&H透明度}
{\3a&HFF}
和{\bord0}
效果一样,无边框
{\4a&HFF}
和{\shad0}
效果一样,无阴影
卡拉OK特效
在卡拉OK模式下,第二颜色c2
才起作用。
第一颜色1c
为卡拉OK特效结束后的颜色,第二颜色2c为卡拉OK特效结束前的颜色。
{\K100}
(K后面数值越大,变化速度越慢)
{\K100\2c&HFFFFFF\1c&HFF0000} 啊
柔滑类
让字体显示柔滑
淡入淡出
– {\fad(t1,t2)}
(t1为淡入动画的时间,t2为淡出动画的时间,单位ms)
– {\fade(a1,a2,a3,t1,t2,t3,t4)}
(a1,a2,a3为透明度(0-256),0-t1保持a1透明度,t1-t2从a1变成a2,t2-t3保持a2透明度,t3-t4从a2变成a3透明度)
边框向外模糊柔化 {\blur10},可以配合bord使用
边框向内模糊柔化 {\be10}
功能类
格式化样式 {\r}
(restore所有)
– 格式化后直接调用其他字体样式 {\r样式}
字符码 {\fe1}
调整编码
0=ANSI (預設),西欧语音
1=DEFAULT,视操作系统而定
2=SYMBOL,符号
128=SHIFTJIS (日語),
129=HANGEUL,韩语字符集
134=GB2312 (简体中文),
136=CHINESEBIG5 (繁体/正体中文),
255=OEM,
130=JOHAB,韩语字符集
177=HEBREW,希伯来语
178=ARABIC,
161=GREEK,
162=TURKISH,
163=VIETNAMESE,
222=THAI,
238=EASTEUROPE,
204=RUSSIAN,
77=MAC,
186=BALTIC
换行方式 {\q1}
,(取0-3)
– {\q2}
大小写 \N
or \n
都是换行
– {\q1}
时 \N
换行 \n
空格,且 \n
在字幕边缘时不起作用
– 0:智能断行,尽可能让所有的行等长,不可能等长时选择让顶端的行宽一些。只有遇到\N
会强制换行。
– 1:行尾换行,尽可能填满一行,然后换行。只有遇到\N
会强制换行。
– 2:不换行,多余的字符会超过屏幕边缘。遇到\n
和\N
都会强制换行。
– 3:智能换行,与参数1相似,但是会选择让靠近底部的行更宽。
插入类
不用打花括号,通常打在文本中。
换行 \N
空格 \n
(关于N
or n
可以参见\q
相关信息)
强制空格 \h
,边缘也能空格,\n
不能在边缘空格
特效代码的动画过渡: \t
- 用在特效代码中,格式为
(\特效\t(\特效))
- 例如拟时针旋转:
{\fr0\t(\fr360)}
;顺时针旋转:{\fr360\t(\fr0)}
- 动画高级过渡
{\特效\t(t1,t2,v,\特效)}
(v为速度,v<1先快后慢,v=1正常,v>1先慢后快,t1-t2为变化时间,v可不写) - 这些ass标签可以使用
\t
效果。
字符 形状 其他效果 \fs \fscx \bord \fsp \fscy \xbord \c \frx \ybord \1c \fry \shad \2c \frz \xshad \3c \fr \yshad \4c \fax \clip \alpha \fay \iclip \1a \be \2a \blur \3a \4a
图形类
使用Aegisub中菜单栏Subtitle – ASSDraw 来画,画完之后会在下方出现图形的代码。
在字幕中插入图形: {\p1}图形代码{\p0}
(123可以调整图形大小,1最大,p0结束绘图)
正方形:{\p1}m 0 0 l 100 0 100 100 0 100{\p0}
椭圆:{\p1}m 0 0 s 100 0 100 100 0 100 c{\p0}
【此例中c即等于 "p 0 0 100 0 100 100"
】
圆形:{\p1}m 10 0 b 20 0 20 15 10 15 b 0 15 0 0 10 0 {\p0}
图形偏移 上下移动 {\pbo1\p1}
更复杂图形
特效
横向滚动特效 Banner;v;0/1;50
(v为速度,越大越慢,通常2-10;0/1为从右往左/从左往右滚动;50为到边缘时的透明度)
纵行滚动特效 scroll up;y1;y2;v;50
(y1为起始位置,y2为终止位置,v为速度,50为到边缘时的透明度)若要从上往下,则改为scroll up
,y1y2不变。
打轴
单人轴
- 先设定:样式
- 注意合适的前后留空,例如字幕开头留空120-150ms,结束留空100-300ms
- 两轴相距小于300ms,进行时间连续
- 字幕轴最短持续时间。例如500ms
- 注释字号45,位置合理
- 正常字幕字号50
- 文字排布合理,占用宽度小于⅔屏幕宽度
以上均为参考值
Aegisub软件笔记
可视化排版
十字工具
双击点会把该点的坐标以 \pos 的形式写入到当前行中。
拖动工具
拖动工具有两种模式。使用辅助工具条在两种模式之间切换。
(左下角可以切换/pos /move)
矢量裁剪
这个工具可以绘制矢量区域,区域外部的字幕不会被渲染。不同点在于,这个工具可以通过贝塞尔曲线的形式拟合各种图形。
1.拖动,允许你拖动控制点 2.插入线段,允许你插入一条从最后一个点出发,到鼠标位置结束(点击)的一条线段。 3.插入一条贝塞尔曲线段,和上面的相同,但是它会多出两个控制点,用来调节曲线形状。 4.在直线和曲线间转化,在线段或三次曲线上点击使它们之间相互转化。 5.分割曲线,在线段或三次曲线上点击,使它们在点击处分为两段 6.移除控制点,点击删除控制点 7.徒手绘制图形(直线),在视频上点击并用鼠标拖动,绘制手绘图形,该图形会自动闭合,由初始点连接到终点,由直线段围成。 8.徒手绘制图形(平滑曲线)和7的功能相似,不过图形由曲线段围成。
字幕栏操作
- 在字幕栏中将某行的位置进行上移/下移。选择要移动的行,按住Alt键,同时按↑或↓键。
- 若想要改变 特效标签 在字幕栏中的缩略显示方式,可在工具条中选择”切换标签隐藏方式”(默认情况下,每一组特效标签用一个小太阳的符号表示)。
正则替换
正则表达式: Ctrl+H
调出搜索替换的框框,勾选使用正则表达式,搜索内容写入^
替换内容写入你要添加的内容,注意\
要转义,比如你要添加{\blur1}
就要写入{\\blur1}
Karaoke Template
简单记录一些Karaoke Template的编写语法。
格式
文本行特效写打Karaoke(可多行),代码行改注释,特效中加指定类型。选中所有行,运行脚本。
Template行特效类型
template line
对整句(line)进行代码操作。
将文本中的{\k__}
替代为template line
中的内容(文字或代码),例如:
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template line,测试
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k1}a{\k1}b{\k1}c{\k1}d
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,测试a测试b测试c测试d
template syl
对音节(syllable),即每个被{\k__}
划分的字符,进行代码操作,并将字符以单行的形式显示。
需要注意的是,在第一个{\k__}
前,会默认存在一个字符(即使是空)。
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl,测试
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k1}a{\k1}b{\k1}c{\k1}d
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,测试
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,测试a
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,测试b
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,测试c
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,测试d
template syl char
对每个字符(character)进行操作。syl
可写可不写,因为tempate
默认是对音节进行操作的。
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl char,{\pos($sx,$sy)}
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100}two
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\pos(588,360)}o
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\pos(609,360)}n
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\pos(631,360)}e
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\pos(648,360)}t
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\pos(667,360)}w
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\pos(692,360)}o
可以看到,以上代码把单个字符进行了分行,并指定到了对应的绝对位置。
template syl noblank
使生成代码时删去空行。
template syl notext
使生成代码时,所有文字被删除,但时间依然保留。
template syl noblank
使生成代码时删去空行。
template syl noblank notext
使生成代码时,只剩下有文字的,且被替换成了空行。
template syl keeptags
正常执行template
时,形如{\an}
的标签会被自动删除。为了保留标签,可以打上keeptags
。
template syl loop 5
正常执行template
时,代码只会被执行一次。为了多次执行,可以打上loop+数字
。
相关的内联变量:!j!
例如
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template line loop 5,!j! | !maxj! | !j*100!
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100}two{\k100}{\fs50}three{\k100}four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,1 | 5 | 100 one1 | 5 | 100 two1 | 5 | 100 three1 | 5 | 100 four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,2 | 5 | 200 one2 | 5 | 200 two2 | 5 | 200 three2 | 5 | 200 four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,3 | 5 | 300 one3 | 5 | 300 two3 | 5 | 300 three3 | 5 | 300 four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,4 | 5 | 400 one4 | 5 | 400 two4 | 5 | 400 three4 | 5 | 400 four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,5 | 5 | 500 one5 | 5 | 500 two5 | 5 | 500 three5 | 5 | 500 four
此处j代表循环此处,min
和max
都是j
在运行中的最大和最小值。
template syl fx hk
正常执行template时,每一个音节都会被执行。为了只执行选定的音节,可以打上fx+标记
;并在音节前加入相同的标记-标记
。这时会对标记之后的音节执行操作。
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl fx hk,aaa
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100}two{\k100\-hk}three{\k100}four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,aaathree
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,aaafour
为了只执行选定范围的音节,可以在结束音节后添加一个无关标签表示结束。
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl fx hk,aaa
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100\-hk}two{\k100}three{\k100\-mc}four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,aaatwo
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,aaathree
实际上,每个音节的原始标记都是空的。与fx相关的内联函数为!syl.inline_fx!,用于获取指定音节的标签名
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl,!syl.inline_fx!
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100\-hk}two{\k100}three{\k100\-mc}four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,one
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,hktwo
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,hkthree
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,mcfour
code syl
在code
语句中可以加入lua
语句。
用! !来表示代码块。
模板
clip – 由左至右消失
{\pos($sx, $sy)\clip($sleft, $stop, $sright, $sbottom)\t($sstart, !$sstart+$sdur!, 1, \clip($sright, $stop, $sright, $sbottom))}
iclip – 由左至右显现
{\pos($sx, $sy)\iclip($sleft, $stop, $sright, $sbottom)\t($sstart, !$sstart+$sdur!, 1, \iclip($sright, $stop, $sright, $sbottom))}
内联变量
自适应变量 Automatic variants
$start $end $mid
行或音节的开始时间、结束时间、中点时间,行是绝对时间,音节是相对行的时间(通用,自动进行判断)
以下代码可以实现单词逐一fade出现:
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template line,{\alpha&HFF\t($start,$end,\alpha&H00)}
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100}two{\k100}three{\k100}four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\alpha&HFF\t(0,1000,\alpha&H00)}one{\alpha&HFF\t(1000,2000,\alpha&H00)}two{\alpha&HFF\t(2000,3000,\alpha&H00)}three{\alpha&HFF\t(3000,4000,\alpha&H00)}fourr
$sx $xy
以上代码可以同样用template syl与$sx $sy来实现。$sx与$sy是音节在默认对齐方式下的绝对位置(x,y),配合\pos和\move使用。
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl,{\alpha&HFF\t($start,$end,\alpha&H00)\pos($sx,$sy)}
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,{\k100}one{\k100}two{\k100}three{\k100}four
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\alpha&HFF\t(0,0,\alpha&H00)\pos(452,23)}
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\alpha&HFF\t(0,1000,\alpha&H00)\pos(495,23)}one
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\alpha&HFF\t(1000,2000,\alpha&H00)\pos(579,23)}two
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\alpha&HFF\t(2000,3000,\alpha&H00)\pos(679,23)}three
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,{\alpha&HFF\t(3000,4000,\alpha&H00)\pos(783,23)}four
Lua语法
更多Lua语法相关请转到单独文章:Lua For Aegisub
计算
用!和!来表示lua语句和运算。
例如:
行结束时间
行结束时间
$lend
又可以写作
!$lstart+$ldur!
数值运算
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl,!100+99!
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,文字
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,199
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,199文字
文字
用 ” ” 来表示string,用 .. 来连接字符串。
Comment: 0,0:00:00.00,0:00:00.00,CN_UP,,0,0,0,template syl,!"AB".."CD"!
Comment: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,karaoke,文字
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,ABCD
Dialogue: 0,0:00:00.00,0:00:05.00,CN_UP,,0,0,0,fx,ABCD文字