这是我多年前所做的笔记,资料都是从网上摘抄,其中内容难免有缺失或错误。
这一部分主要是记录了一些文件内容的标题和信息
[Script Info]
; Script generated by Aegisub r8942
; http://www.aegisub.org/
!: 注释
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: TV.601
Original Script: 脚本原作者
Original Translation: 译者
Original Editing: 编辑
Original Timing: 时间轴
Synch Point: 0
Script Updated By: 修订者
Update Details: 修订详情,修订部分的描述
PlayResX: 1280
PlayResY: 720
PlayDepth: 颜色深度
Collsions: Normal
Timer: 100.0000
下面就[Script Info]
这一部分作简单说明:
-
ASS文件第一行必须是
[Script Info]
-
;
后面可以填写任何内容 -
!:
后面是注释部分 -
Title:
脚本文件的标题 -
ScriptType:
脚本格式ASS
文件为v4.00+
-
WrapStyle:
指定了当一行字幕过长时的换行方式共有4种换行方式:
0
:智能换行:上行较宽1
:于行尾词出换行:仅于\N
后断行2
:不自动换行:于\n
和\N
后断行3
:智能换行:下行较宽 -
ScaledBorderAndShadow:
字幕边框宽度和阴影深度是否随着视频分辨率等比缩放,yes
或no
-
YCbCr Matrix:
-
Original Script:
脚本原作者 -
Original Translation:
译者 -
Original Editing:
编辑 -
Original Timing:
时间轴人员 -
Synch Point:
同步点 -
Script Updated By:
脚本修订者 -
Update Details:
修订详情,修订部分的描述 -
PlayResX:
视频宽度PlayResY:
视频高度,这两个定义了视频的分辨率 -
PlayDepth:
显示颜色深度 -
Collsions:
字幕碰撞处理,当两条字幕重叠时,如何进行移动,共有两种方式Normal
:后一条字幕出现在前一条的上方Reverse
:前一条字幕向上移动给后一条字幕让位 -
Timer:
时间轴计时器,单位为%
,默认为100.0000
大于
100
时,字幕会比预定越来越早的出现小于
100
时,字幕会比预定越来越晚的出现一般不改变,取默认
100.0000
这一部分主要保存了字幕的样式
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
以[V4+ Styles]
作为这一部分的开始,紧跟着第二行Format:
基本也是固定的,而Style
行的各个值和Format
行的各个名字之间是一一对应关系。这个部分就像是一张表单,Format
行就是表头,Style
行就是往表格里填的数据,大概就是这么一个关系,一个脚本可以设置多个字幕样式。
下面讲一下每个名字的具体意义:
Name
:样式名字FontName
:字体名称Fontsize
:字体大小PrimaryColour
:主要填充颜色SecondaryColour
:次要填充颜色,用于标准卡拉OK模式下的预填充OutlineColour
:字体边框颜色BackColour
:字体阴影色Bold
:粗体,1开启,0关闭Italic
:斜体,1开启,0关闭Underline
:下划线,1开启,0关闭StrikeOut
:删除线,1开启,0关闭ScaleX
:宽度缩放,单位为%
,默认100
ScaleY
:高度缩放,单位为%
,默认100
Spacing
:字体间距Angle
:旋转角度BorderStyle
:边框样式;默认为1
,即使用正常字体边框,设置为3
时,则使用不透明背景取代字体边框Outline
:边框宽度Shadow
:阴影距离Alignment
:字幕对齐方式MarginL
:左边距MarginR
:右边距MarginV
:垂直边距Encoding
:字体编码;默认为1
这一部分就是字幕的主体部分,记录了对话的开始和结束时间,对话内容和显示等信息
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.24,0:00:01.99,Default,,0,0,0,,所以
Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,,注释
这一部分以Events
作为开始,后面紧跟的Format
基本也是固定的,后面的行和Format
也是对应关系。
Layer
:字幕的层,当两条字幕重叠时,层数较大的会叠加在层数小的上面,如果层数相同,那么后出现的会叠加的先出现的上面,层数默认为0
Start
:字幕的开始时间,精度为0.01s
End
:字幕的结束时间,精度为0.01s
Style
:样式名称,对应[V4+ Styles]
中的Name
项Name
:说话人。只做参考,一般省略MarginL
:左边距。可对样式进行修改,默认为0
采用原值,若不为0
则取代原值MarginR
:右边距。可对样式进行修改,默认为0
采用原值,若不为0
则取代原值MarginV
:垂直边距。可对样式进行修改,默认为0
采用原值,若不为0
则取代原值Effect
:动态效果;Scroll up, Scroll down, Banner, Karaoke
Text
:字幕。可以通过添加代码改变字幕,实现多种特效
每一行字幕开头的修饰语有两种:
Dialogue
:正常的对话字幕内容Comment
:注释内容,这些行不会作为字幕内容显示在视频中
在这一部分正式开始之前,先作一个简单的说明:
- 所有代码前必须加
\
- 代码必须放在
{}
中,\N
,\n
,\h
除外
在代码说明部分会出现以下标记:
<...>
:表示该部分需要输入参数[...]
:表示该部分为可选择输入项<../..>
:表示从给定参数中任选一项
-
\N
:强制换行 -
\n
:空格,和空格键效果一样 -
\h
:强制空格,即使在行首和行尾也能生效 -
\a<alignment>
:设置字幕对齐方式,alignment
取值如下表左 中 右 上 5 6 7 中 9 10 11 下 1 2 3 -
\an<alignment>
:设置字幕对齐方式,alignment
取值和数字小键盘的布局相同,这种方式比较容易记住,所以通常采用这种方式设置对齐方式,包括第二部分[V4+ Styles]
中的Alignment
也是采用的这种对齐方式左 中 右 上 7 8 9 中 4 5 6 下 1 2 3 -
\b<0/1>
:设置粗体。0
为关闭,1
为开启 -
\b<weight>
:设置字体磅值,取值为100的倍数。100: Lowest, 400: Normal, 700: Bold, 900: Heaviest
-
\i<0/1>
:设置斜体。0
为关闭,1
为开启 -
\u<0/1>
:设置下划线。0
为关闭,1
为开启 -
\s<0/1>
:设置删除线。0
为关闭,1
为开启 -
\be<0/1>
:边框模糊。0
为关闭,1
为开启 -
\be<strength>
:边框模糊 -
\blur<strength>
:边缘模糊。strength
取值越大,效果越明显,当没有字幕边框时,显示为字幕主体模糊效果 -
\bord<size>
:设置边框宽度 -
\xbord<size>
:设置x方向边框宽度 -
\ybord<size>
:设置y方向边框宽度 -
\shad<depth>
:设置阴影距离 -
\xshad<depth>
:设置x方向阴影距离 -
\yshad<depth>
:设置y方向阴影距离 -
\r<style>
:设置样式 -
\r
:设置为默认样式 -
\fa<x/y><factor>
:文本错切。错切实在旋转之后应用的,以旋转后的坐标系为基准,不受旋转中心的影响,通常取值为[-2, 2]
,超出范围取值效果并不好 -
\fn<fontname>
:设置字体,若要使字体旋转90°显示,在fontname
前加@
-
\fs<fontsize>
:设置字体大小 -
\fe<charset>
:设置字体编码 -
\fsc<x/y><percent>
:设置字体缩放,{\fscx<percent>}
代表宽度缩放,{\fscy<percent>}
代表高度缩放,percent
单位为%
,默认为100
-
\fsp<pixels>
:设置字体间距,默认为0
-
\fr[<x/y/z>]<degrees>
:设置旋转角度,x, y, z
分别代表横纵坐标轴和垂直于屏幕向上的坐标轴,degrees
取值为正数逆时针旋转,取值为负数顺时针旋转 -
\org(<x>, <y>)
:设置旋转中心点 -
\alpha&H<aa>&
:设置字体透明度,16进制,取值范围00-FF
,取值越大,透明度越大 -
\$a&H<aa>&
:设置字体透明度,$
可以取值为1, 2, 3, 4
,分别代表主要填充透明度,次要填充透明度,边框透明度,阴影透明度 -
\c&H<bb><gg><rr>&
:设置字体颜色,16进制,ASS
脚本中颜色格式为<bbggrr>
-
\$c&H<bb><gg><rr>&
:设置字体主体颜色,$
可以取值为1, 2, 3, 4
,分别代表主要填充颜色,次要填充颜色,边框颜色,阴影颜色 -
\move(<x1>, <y1>, <x2>, <y2>, [<t1>, <t2>])
:字幕移动效果(x1, y1)
为开始位置,(x2, y2)
为结束位置,t1, t2
为移动的开始和结束时刻,单位为ms
,相对于字幕的开始时间,若省略,则默认使用字幕的开始和结束时间 -
\pos(<x>, <y>)
:设置字幕位置 -
\fad(<t1>, <t2>)
:淡入淡出效果,t1
为淡入所用时长,t2
为淡出所用时长,单位为ms
-
\fade(<a1>, <a2>, <a3>, <t1>, <t2>, <t3>, <t4>)
:淡入淡出效果a1
为淡入开始时的透明度,a2
为淡入结束时的透明度,a3
为淡出结束时的透明度,透明度采用10进制,取值为0-255
t1, t2
为淡入的起止时刻,t3, t4
为淡出的起止时刻 -
\t([<t1>, <t2>, <accel>,] <style modifiers>)
:动态效果,可配合多种效果使用t1, t2
为动态效果的开始和结束时刻,单位为ms
,相对于字幕的开始和结束时间,若省略,则默认使用字幕的开始和结束时间accel
用于控制动态效果的速度,默认为1
,0<accel<1
时,速度逐渐变慢,accel>1
时,速度逐渐变快 -
\q<x>
:设置换行方式,取0/1/2/3
-
\clip([<x1>, <y1>,] <x2>, <y2>)
:字幕矩形遮罩,显示剪裁后的区域 -
\iclip([<x1>, <y1>,] <x2>, <y2>)
:字幕矩形遮罩,不显示剪裁后的区域 -
\clip([<scale>, ]<drawing commands>)
:遮罩(矢量绘图){\clip(1, m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0)}
将只显示椭圆内的字幕 -
\iclip([<scale>, ]<drawing commands>)
:遮罩(矢量绘图) -
\p<0/1/..>
:绘图模式,n
为放大比例,{\p1}
启用绘图模式,{\p0}
退出绘图模式 -
\pbo<y>
:设置绘制时的基线偏移,偏移发生在y方向,y
小于0
向上偏移,y
大于0
向下偏移
-
Scroll up;<y1>;<y2>;<delay>[;<range>]
:字幕从下往上滚动 -
Scroll down;<y1>;<y2>;<delay>[;<range>]
:字幕从上往下滚动y1
为字幕滚动开始时的竖直位置,y2
为字幕滚动结束时的竖直坐标delay
为字幕移动速度,单位为ms/pixel
range
为淡入淡出的范围 -
Banner;<delay>[;<0/1>, <range>]
:字幕横向滚动delay
为字幕移动速度,单位为ms/pixel
第二个参数取
0
时字幕从右向左移动,取1
时字幕从左向右移动range
为淡入淡出的范围 -
Karaoke
:卡拉OK效果\k[<f/o>]<duration>
:duration
为持续时间,单位为0.01s
{\k<duration>}
:未填充时显示次要颜色,填充后显示主体颜色{\kf<duration>} and {\K<duration>}
:未填充时显示次要颜色,填充后显示主体颜色,填充过程有平滑效果{\ko<duration>}
:未填充时显示次要颜色,且不显示边框,填充后显示主体颜色和边框
-
m <x> <y>
:移动光标到点(x, y)
,自动闭合之前的形状,开始新的绘制 -
n <x> <y>
:移动光标到点(x, y)
,不闭合当前形状 -
l <x> <y>
:从当前光标位置绘制一条到点(x, y)
的直线 -
b <x1> <y1> <x2> <y2> <x3> <y3>
:绘制一条从当前光标位置到点(x3, y3)
的3次贝塞尔曲线,以(x1, y1), (x2, y2)
为控制点 -
s <x1> <y1> <x2> <y2> <x3> <y3> .. <xN> <yN>
:Cubic b-spline
绘制一条从当前光标位置开始的连续3次贝塞尔曲线,到达点N,至少应该包含3个点。相当于把多个贝塞尔曲线连接到一起。 -
p <x> <y>
:将b曲线延申至点(x, y)
,相当于在s
语句后面再加一个点 -
c
:闭合b曲线
这里只介绍相关代码,不讲如何使用VSFilterMod
-
\fsc<scale>
:字体缩放,相当于同时使用\fscx
和\fscy
-
\fsvp<leading>
:设置纵向偏移,leading
取正数向上偏移,负数向下偏移{\r\fsvp10}\fsvp10{\r\frz10}\frz10{\r\fsvp0}\fsvp0{\r\fsvp-10}\fsvp-10
-
\frs<angle>
:文字基线倾斜,选择方向取决于样式设定的对齐方式。{\frs90\frz-90}\frs90\frz-90
-
\z<arg>
:设置z
方向坐标,表示文字到屏幕的距离,结合\frx
和\fry
使用效果更明显{\z100\t(\z0\frx360)}a
-
\distort(<u1>, <v1>, <u2>, <v2>, <u3>, <v3>)
:文字扭曲效果,通过移动角上的坐标,具体确定相对的位置{\distort(1, 0, 1.2, 1, -0.2, 0)}\distort(1, 0, 1.2, 1, -0.2, 0)
-
\rnd[<x/y/z>]<arg>
:边界变形效果,在给定区间(-arg, arg)
内随机移动边界上的像素{\r\rnd10}\rnd10{\r\rndx10}\rndx10{\r\rndy10}\rndy10{\r\rndz10}\rndz10
-
\$vc(&H<bb><gg><rr>&, &H<bb><gg><rr>&, &H<bb><gg><rr>&, &H<bb><gg><rr>&)
:渐变颜色,4个颜色参数分别代表左上,右上,左下,右下
角的颜色值,$
可以取值为1, 2, 3, 4
,分别代表主要填充颜色,次要填充颜色,边框颜色,阴影颜色{\r\1vc(00FFFF, FFFF00, FF00FF, 000000)}sup /aegi/
-
\$va(&H<aa>&, &H<aa>&, &H<aa>&, &H<aa>&)
:渐变透明度,4个透明度参数分别代表左上,右上,左下,右下
角的透明度值,$
可以取值为1, 2, 3, 4
,分别代表主要填充透明度,次要填充透明度,边框透明度,阴影透明度{\r\3va(FF, 00, FF, 00)}\3va(FF, 00, FF, 00)
-
\$img(<file path>[, <xoffset>, <yoffset>])
:图片填充用重复发图片图案代替颜色,参数为图片路径(用
/
分隔)和可调整填充的基本偏移量,路径可以是相对于字幕文件的位置。$
可以取值为1, 2, 3, 4
,分别代表主要填充颜色,次要填充颜色,边框颜色,阴影颜色VSFilterMod
只支持24或32位的真色彩png
图片,偏移量可用\t
实现动态效果注意:
\be
和\blur
只能模糊边框,不能模糊图片{\3vc(&HFF00FF&, &HFFFF00&, &H00FFFF&, &HFFFFFF&)\1img(D:/a.png, 0, 0)\pos(300, 300)\bord10}{\p1}m -150 0 b -150 -80 -80 -150 0 -150 80 -150 150 -80 150 -1 150 80 80 150 4 150 -80 150 -150 80 -150 0{\p0}
-
\mover(<x1>, <y1>, <x2>, <y2>, <angle1>, <angle2>,<radius1>, <radius2>[, <t1>, <t2>])
:极限移动和
\move
一样,但可以实现圆形或者螺旋移动轨迹angle1, angle2
代表开始移动时和结束移动时的旋转角度radius1, radius2
代表开始移动时和结束移动时的旋转半径{\mover(0, 0, 0, 0, -90, 0, 150, 150)}
在屏幕左上角沿着半径为150像素的圆形旋转90° -
\move3(<x1>, <y1>, <x2>, <y2>, <x3>, <y3>[, <t1>, <t2>])
:曲线移动 -
\move4(<x1>, <y1>, <x2>, <y2>, <x3>, <y3>, <x4>, <y4>[, <t1>, <t2>])
:曲线移动曲线移动字幕,可以带3个或4个基点,产生三次或四次贝塞尔移动轨迹
-
\jitter(<left>, <right>, <up>, <down>, <period>[, <seed>])
:抖动使字幕位置产生抖动。前4个参数设定了在各个方向上的最大偏移量,
period
为抖动周期,以ms
为单位,seed
设定随机数发生器的种子数 -
\movevc(<x1>, <y1>)
:可移动矢量 -
\movevc(<x1>, <y1>, <x2>, <y2>[, <t1>, <t2>])
:可移动矢量可以独立移动屏幕上的矢量图(包括
\clip
和\iclip
),不受\pos
和\move
的影响,参数和\move
相同{\pos(80, 140)\movevc(0, -60, 0, 60)\clip(m 46 84 1 120 141 146 206 188 144 268 182 155 130)}
用于将TrueType
类型的.ttf
字体重新编码后嵌入到脚本中
fontname: <fontname>_[B][I]<charset>.ttf
文件名全为小写,后加_
,粗体可加B
,斜体可加I
,均为可选,最后添加数字代表字符编码
例:fontname: chaucer_B0.ttf
用于将编码的图像嵌入到脚本中
支持的图像格式有.bmp, .gif, .ico, .jpg, .wmf
filename: <filename>