SSA & ASS (Advanced SubStation Alpha) 字幕

SSA & ASS
全称SubStation Alpha (.ssa) & Advanced SubStation Alpha (.ass)
SSA是[V4 Styles]而ASS是[V4+ Styles]
V4+的代码是基于V4 的先进版本
而且2个字幕文件内的格式有一定差别

[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None

[Aegisub Project Garbage]

[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,0.5,0,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:09.07,0:00:13.14,Default,,0,0,0,,♪我的爱 从相遇的那一刻起♪
Dialogue: 0,0:00:13.27,0:00:17.41,Default,,0,0,0,,♪我的生活 一切都被你占据♪
Dialogue: 0,0:00:17.51,0:00:21.58,Default,,0,0,0,,♪在突如其来的重力中♪
Dialogue: 0,0:00:21.65,0:00:26.76,Default,,0,0,0,,♪感受着你 我的爱♪
Dialogue: 0,0:00:26.78,0:00:29.29,Default,,0,0,0,,=命中注定我爱你=
Dialogue: 0,0:00:32.59,0:00:36.80,Default,,0,0,0,,=第一集=

ASS 的结构类似CSV,先定义Format头,然后依次排布内容
时间格式:
小时:分钟:秒.百分之一秒数
hh:mm:ss.ff

[Script Info] 脚本的一般全局信息
ASS文件第一行必须是[Script Info]
;开头表示注释
Title:标题
Original Script:脚本原作
Original Translation: 译者
Original Editing: 编辑
Original Timing: 时间轴人员
Synch Point: 同步点
Script Updated By: 脚本修订者
Update Details: 修订详情,修订部分的描述

Script Type:类型(用于兼容性设置,SSA为4.00,ASS为4.00+)
PlayResX & PlayResY:屏幕宽高
WrapStyle:指定了当一行字幕过长时的换行方式
0:智能换行:上行较宽
1:于行尾词出换行:仅于\N后断行
2:不自动换行:于\n和\N后断行
3:智能换行:下行较宽
ScaledBorderAndShadow:字幕边框宽度和阴影深度是否随着视频分辨率等比缩放,yes或no
YCbCr Matrix:
PlayResX: 视频宽度PlayResY: 视频高度,这两个定义了视频的分辨率
PlayDepth: 显示颜色深度 8bit 10bit
Collsions: 字幕碰撞处理,当两条字幕重叠时,如何进行移动,共有两种方式

  • Normal:后一条字幕出现在前一条的上方
  • Reverse:前一条字幕向上移动给后一条字幕让位
    Timer: 时间轴计时器,单位为%,默认为100.0000
    大于100时,字幕会比预定越来越早的出现
    小于100时,字幕会比预定越来越晚的出现
    一般不改变,取默认100.0000
    [V4+ Styles]
    [V4+ Styles]作为这一部分的开始,紧跟着第二行Format:基本也是固定的,而Style行的各个值和Format行的各个名字之间是一一对应关系。这个部分就像是一张表单,Format行就是表头,Style行就是往表格里填的数据,大概就是这么一个关系,一个脚本可以设置多个字幕样式,并在[Events]中调用。
  • Name: 样式名字
  • FontName:字体名称
  • Fontsize:字体大小
  • PrimaryColour. 第一颜色,即文字本身的颜色
  • SecondaryColour. 第二颜色。在卡拉OK时使用,卡拉OK指令会用第一颜色填充第二颜色。
  • TertiaryColour(SSA中TertiaryColour;ASS中称为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. 上下缩进。文字热点(对齐点)距离视频上下的最小间距离。这取决于文字对齐方式,如果该文字使用中对齐,则上下缩进值无效。需要时文字可用\n或\N命令换行。ASS文件中,Script Info部分的一个参数“WrapStyle”也可以改变此值。
  • AlphaLevel. 透明度(0至255有效)
  • Encoding:字体编码;默认为1
    [Events]
    字幕的主体部分,记录了对话的开始和结束时间,对话内容和显示等信息
    字幕的出现时间和样式、对样式的修改和特效均在这里编写。 其一般语法格式为:{\命令(参数,多个参数用逗号隔开)}, 例如 {\move(80,80,200,200,150,300)}.只有一个参数的命令不需要括号 (如. {\kf89}).
    有两处注意:
  • 一对大括号内可以放置多个语句。 如. {\bord8\be1}
  • \N 和 \n 命令不需要在两边加大括号就可使用。

脚本附件
[Fonts]
用于将TrueType类型的.ttf字体重新编码后嵌入到脚本中
fontname: [B][I].ttf
文件名全为小写,后加
,粗体可加B,斜体可加I,均为可选,最后添加数字代表字符编码
例:fontname: chaucer_B0.ttf
[Graphics]
用于将编码的图像嵌入到脚本中
支持的图像格式有.bmp, .gif, .ico, .jpg, .wmf
filename:


ASS对比SRT的先进性主要在字幕特效,以下是一些ASS特效演示:
符号说明:
* → 代码注意事项
【 】 → 代码简要说明
e.g. → 代码使用举例
( ) → 解释、强调、补充以及吐槽等
[扩] → 高阶代码,只在VSFilter2.39+的版本使用可能 (These tags are only available in VSFilter 2.39 and later, and might not be safe for softsubbing.)

部分中英对照参考:
圆括号 parentheses → ( )
尖括号 angle brackets → < >
逗号 comma → ,
反斜线符号 backslash → \
大括号 override blocks → {}
斜体 Italics

00 代码格式说明
反斜线符号+代码名称+参数(有可能为多个)
*所有代码必须是英文格式,中文标点无效(生效了的代码是彩色的);
*尖括号< >内的参数必填;
*<>本身不需要输入代码;
*[ ] 内参数可以省略,具体用法参照相关内容。
e.g.
\fs \fs50 【字体大小设置为50】
\pos (, ) \pos(470, 260) 【字幕位置定位于点(, )】
\move (, , , [, , ])
\move (100, 150, 300, 350)
【字幕从点 (100, 150) 移动至 (300, 350),持续时间为从字幕出现开始到字幕消失为止】
01特殊代码 Special characters (不需写在 { } 内)
\n – 软性换行 Soft line break
【只在换行方式 (Wrapping mode) 2(详情见下↓) 下有效,其他方式下则被替换为空格】
\N – 硬性换行 Hard line break【无视换行方式,强制换行】
\h – 硬性空格 Hard space【在硬性空格前后不会自动换行,且其在一行首尾时不会被缩进】
换行方式 Wrap Style: \q

02 普通代码 Override tags
(必须写在 { } 内,且影响之后所有的文字(当行代码),直到有第二个相同类型的代码出现以覆盖其效果)
可使用面板按钮便捷设置。
●斜体 Italics: \i1 \i0
●粗体 Bold: \b1 \b0 \b

*大部分字体不支持自定义字体粗细;如支持,更改的粗细应为100的倍数;
*100最细,400正常,700为粗体,900为极粗。
e.g. {\b100}How {\b300}bold {\b500}can {\b700}you {\b900}get?
●下划线 Underline: \u1 \u0
●删除线 Strikeout: \s1 \s0
●重置字幕样式 Reset style:\r[<style>]
e.g. -Hey\N{\rAlternate}-Huh?\N{\r}-Who are you?
【假设此条字幕样式为"Default",则"Hey" 为Default style,“Huh?” 被改成了"Alternate",“Who are you?” 又被恢复为Default style】
●字体名 Font name: \fn
*可使用面板按钮便捷设置。
e.g. {\fnLucida Calligraphy}Think of you {\fn@微软雅黑 } @字体 逆时针90度旋转文字
在这里插入图片描述
●字体大小 Font size: \fs \fs10 \fs88
*指的是文字纵向的像素数量。
●文字间距 Letter spacing:\fsp
e.g. \fsp3 \fsp10
在这里插入图片描述
边框宽度 Border size:\bord
*可设为0,也可为小数;
*请注意若文件→配置内的比例缩放边框和阴影被勾选,边框宽度效果会受影响。
e.g. \bord5, \bord0.5, \bord0【无边框】
[扩]●边框宽度 Border size (extended): \xbord \ybord
【横向的字体边框宽度(x)和纵向的字体边框宽度(y)可分别设置】
*可设为0,也可为小数;
*一行代码中,在\xbord 或\ybord后使用\bord 指令的话,\xbord和\ybord效果会被覆盖。
e.g. \xbord4\ybord0\fsp7\fs60}
在这里插入图片描述
阴影深度 Shadow distance: \shad
【阴影作用于文字背后,出现在右下角;经过颜色设置可造成 3D字体假象】
*可以为小数,不可为负数。
e.g. \shad10 \shad3.5
在这里插入图片描述
[扩]●阴影深度 Shadow distance (extended): \xshad \yshad
【横向的阴影深度(x)和纵向的阴影深度(y)可分别设置】
*可设为0,可为小数,也可为负数。
e.g. \xshad5\yshad0 \xshad-6\yshad4
在这里插入图片描述
模糊边缘 Blur edges: \be1【模糊边缘】\be0【不模糊边缘】
*字体有边框时以边框颜色为准模糊边缘,无边框时以文字颜色为准模糊文字边缘;
*模糊效果在字体较小时比较明显,但是使用可以使文字看过去更柔和。
e.g. \be1 \be0
在这里插入图片描述
[扩] \be
*字体有边框时以边框颜色为准模糊边缘,无边框时以文字颜色为准模糊文字边缘;
*设置值必须为整数;
*因为模糊效果为渐变色,设置值过高没有意义(末端几乎透明)。
e.g. \fs40\be10 \fs40\be20
在这里插入图片描述
[扩]●模糊边缘 Blur edges(gaussian kernel):\blur
*字体有边框时以边框颜色为准模糊边缘,无边框时以文字颜色为准模糊文字边缘;
*设置值可为小数;
*用法与\be几乎一样,但是因为算法不同,在设置值较高的时候有很好的表现,但要注意设置值过高会给CPU带来压力。
e.g. \fs40\be5 \fs40\be10
在这里插入图片描述
设置颜色 Set color
\1c&H& (= \c&H&) 【主要颜色 (原色) 】
\2c&H&【卡拉 ok效果中的次要 (第二) 颜色】
\3c&H&【字体边框颜色 】
\4c&H&【字体阴影颜色】
*&……&不可以省略;
*颜色代码参照http://en.wikipedia.org/wiki/Hexadecimal,蓝绿红顺序;
*可以用软件的选色盘查找。(参见下图)
*可用面板按钮快捷设置。
*常见颜色代码:
正红:&H0000FF& 正黄:&H00FFFF& 正绿:&H00FF00&
纯白:&HFCFCFC& 纯黑:&H000000&
在这里插入图片描述
设置透明度 Set alpha
\alpha&H 【一次性设置以下四者的透明度】
\1a&H 【文字原色透明度】
\2a&H 【卡拉 ok效果中的第二颜色透明度】
\3a&H 【字体边框透明度】
\4a&H 【字体阴影透明度】
*经实践Set alpha代码内的&和H均可省略不写;
*采用十六进制(00【不透明】, 37【25%透明】80【50%透明】, FF【100%透明】);
*不区分大小写;
*超过80效果就不明显了
e.g. \alpha00 \alpha37 \alpha80
在这里插入图片描述
字体编码 Font encoding:\fe
*可在样式编辑器中设置。
e.g. \fe0 【ANSI码 (USA) 】 \fe128 【SHIFT_JIS 码 (Japan) 】
在这里插入图片描述
栅格定位 Line alignment:\an
*\pos和\move会覆盖\an指令效果,但是\an的特征会保留;
(如\pos(300,500)\an1,字幕是居左的,在字幕有两行以上的情况下每行开头均居左,否则是居中)
*屏幕划分方法:
在这里插入图片描述
栅格定位 Line alignment(legacy):\a
*\pos和\move会覆盖\a指令效果,但是\a的特征会保留(同\an);
*屏幕划分方法:
在这里插入图片描述
●静态定位 Set position:\pos(, )
*准确度与分辨率有关;
*可双击屏幕设置;
*点 (, ) 的位置不是绝对的(不见得是整条字幕的中心),有时与Alignment的选择有关。
●移动命令 Movement:\move(, , , [, , ])
*t1和t2的单位为毫秒;
*一行文本中,不得有多于一条的\move命令,也不能同时有\move和\pos;
*移动只可能是匀速的。
【从位置 (x1, y1)移动到(x2,y2) [字幕开始时间之后t1毫秒开始移动;从t1开始,移动过程持续t2时间],若t1,t2省略,默认移动时间为此栏字幕条持续时间】
e.g.
\move(100,150,300,350)【字幕从 (100, 150)移动至(300, 350),持续时间为整条字幕时间】
\move(100,150,300,350,500,1500)【同上,但字幕从其出现 500ms后开始移动,1.5s 后移动结束 】
●旋转原点 Rotation origin:\org(,)
*一旦旋转/缩放中心被设定,则它就是固定不动的;
*将该点设于极远处、配合快速特效可以造成跳跃的视觉效果;(反正我不会用OTZ)
*每条文本最多只能有一个org命令。
●淡入淡出 Fade:\fad(,) or \fad(, )
【开始时间到t1淡入,t2到结束时间淡出】
*t1, t2单位为毫秒;
*t1+t2必须小于最多等于本条字幕的持续时间;
*t1=0,无淡入; t2=0,无淡出。
●淡入淡出 Fade(complex):\fade(,,,,,,)
*透明度值为十进制,从0(不透明)到255(完全透明);
*时间以毫秒计;时间为累计时间;
*七个参数都必须有;
*fade命令中透明度标记影响 1c-4c所有颜色。
【t1之前透明度为a1,在t1到t2时间段透明度由a1渐变为a2,在t2到t3时间内透明度保持为a2,在t3到t4时间段透明度由a2渐变为a3,t4之后透明度保持为a3】
在这里插入图片描述
e.g. \fade (255, 32, 224, 0, 500, 2000, 2200)
【字幕从开始0s到0.5s由透明渐变为几乎不透明,维持32的透明度1.5s,此后在0.2s之内由透明度32变为224(几乎透明),此后维持几乎透明状态直至本条字幕时间结束】
●字体缩放 Font scale
* 以百分比表示,100 即原始尺寸。
\fscx 【字体沿X轴方向缩放】
e.g. \fscx50【宽度变为原来的一半】 \fscx200【宽度变为原来的一倍】
\fscy 【字体沿Y轴方向缩放】
e.g. \fscy50【高度变为原来的一半】 \fscy200【高度变为原来的一倍】
e.g. Think of you {\fscx200\fscy200}Think of you
在这里插入图片描述
●文字旋转 Text rotation \fr[<x/y/z>]
*\fr默认绕Z 轴(垂直于屏幕的轴)。
\fr (= \frz) 【绕Z轴旋转(逆时针为正,顺时针为负)】
e.g. \fr-90 \fr90 {\frz-90\fn@微软雅黑 }【绕Z 轴旋转与 @字体结合效果】
在这里插入图片描述
\frx 【 绕 X轴(水平轴)旋转(为正值时字向后倒,为负时字向前倾)】
e.g. \frx60 \frx-60
在这里插入图片描述
\fry【绕 Y轴(竖直轴)旋转(为正值时字左大右小,为负时字左小右大)】
e.g. \fry60 \fry-60
在这里插入图片描述
其它尝试:
e.g. \frx40\fry60 \frx-30\fry-30\frz30
在这里插入图片描述
[扩]●文本倾斜 Text shearing: \fax \fax
【文本倾斜效果】
*一般而言取较小的值,小于2的值效果都非常明显;
*在旋转命令之后,倾斜所应用的轴为旋转之后的轴,与初始轴无关。
e.g. \fax1 \fay1
在这里插入图片描述
e.g.【配合旋转】 \fr90\fax0.5 \fr90\fay0.5
在这里插入图片描述
卡拉OK特效 Karaoke effect:
*单位为厘秒 (cs) ,100cs = 1000ms = 1s。
\k 【卡拉 ok跳色效果,一个字一个字间断变色】
*的时间经过之后执行跳色命令。
e.g. {\k50}{\k80}Think {\k25}of {\k60}me
【50cs之后 "Think"从次要颜色跳为主要颜色, 80cs后"of"跳为原色,25cs后"me"跳为原色】
\kf or \K 【卡拉 ok填充效果(与\k效果相似,但是有从左到右填充效果,较为平滑) 】
*在时间段内填充完色。
e.g. {\kf80}Think {\kf25}of {\kf60}me
【80cs内 "Think"从次要颜色由左至右变成主要颜色, 25cs内"of"渐变为原色,60cs内"me"渐变为原色】
\ko 【边框卡拉 ok跳色效果(与\k效果相似)】
e.g. {\ko50}{\ko80}Think {\ko25}of {\ko60}me
【一开始所有边框都没有,50cs之后 "Think"的边框跳色, 80cs后"of"的边框跳色,25cs后"me"的边框跳色】

●矩形蒙板 Clip(rectangle)
\clip (, , , ) 【只有矩形内的内容被显示】
*默认为矩形,以 (x1, y1), (x2, y2) 分别为对角线端点坐标。
e.g. \clip (0, 0, 704, 245)
在这里插入图片描述
[扩]●矩形蒙板 Clip(rectangle)
\iclip (, , , ) 【只有矩形内的内容不被显示】
*默认为矩形,以 (x1, y1), (x2, y2) 分别为对角线端点坐标。
*iclip的影响效果是整行、无视代码放置位置的。
e.g. \iclip (0, 0, 704, 245)
在这里插入图片描述
●图形蒙板 Clip (vector drawing)
\clip ()
\clip (, )
[扩]\iclip()
[扩]\iclip(, )
*iclip的影响效果是整行、无视代码放置位置的。
*代码使用方法、效果与Clip (rectangle) 一致,请结合Drawing tags自己探索。
e.g. \clip (1, m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0)
【绘图1:1,显示圆内字幕】
●动态变换 Animated transform
\t(

  • n > 0,n为所扩大的范围,用2^(n-1)转化(可使所做图像更精细)。
    ●基线偏移 Baseline offset: \pbo 【图像沿y轴平移】
    *该命令只应用于y轴(纵向)。
    e.g. \pbo-50【图像沿Y轴向上平移50像素】 \pbo100【图像沿Y轴向下平移100像素】
    04 绘图命令Drawing commands
    *这些命令必须遵循\clip(矢量作图)的代码格式,或者位于 {\p#}和{\p0}之间。
    ●正方形 Square {\p1}m 0 0 l 100 0 100 100 0 100{\p0}
    *改变数字可以画出各种四边形,请自行探索~
    在这里插入图片描述
    ●椭圆 Rounded square {\p1}m 0 0 s 100 0 100 100 0 100 c {\p0}
    【请参照Square的图示理解代码】
    *此例中c等于 “p 0 0 100 0 100 100”。
    在这里插入图片描述
    ●(几近) 圆形 Circle (almost)
    {\p1}m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0{\p0}
    *此处第二个b可省略。
    在这里插入图片描述
    补充解释:
    ●移动 Move: m 【绘制点移动至点(x, y)】
    *所有的绘图命令都必须用这个标记开始;
    *如果此前有个未封闭的形状,系统自动将其封闭。
    ●(不封闭) 移动 Move (no closing) : n 【绘制点移动至点(x, y) 】
    *如果此前有个未封闭的形状,不封闭现有的形状。
    ●线条绘制 Line: l
    【以现在所在位置和(x, y) 坐标为两端点绘制一条直线,同时绘制点移动至(x, y) 】
    ●三次贝塞尔曲线 Cubic Bézier curve b
    【以当前位置为起点,(x3, y3)为终点,点 (x1, y1)和 (x2, y2)为控制点,绘制一条曲线(如下图)】
    在这里插入图片描述
    ●三次贝塞尔曲线连结 Cubic b-spline
    s ……
    *至少有三个坐标(当有三个坐标时等同于b命令);
    *此命令可以将不同的贝塞尔曲线连在一起。
    【作用概念同b命令,绘制光滑的三次贝塞尔曲线至点N(xN, yN)】
    ●贝塞尔曲线扩展 Extend b-spline p
    【将用b命令绘制的曲线扩展至(x, y)】
    *等同于在s命令后增加一个(x, y) 坐标。
    ●封闭曲线Close b-spline c
    【封闭用b命令绘制的曲线】
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SSA算法,即样本空间自适应算法(Sample Space Adaptation Algorithm),是一种基于概率论和数学统计原理的数据处理算法。该算法主要用于处理未知分布的数据,通过对样本空间的适应性调整,提高数据处理的准确性和可靠性。 SSA算法首先根据已有的样本数据,建立数据模型或者概率分布函数,来描述数据的分布情况。然后,根据样本数据的特征进行参数估计,获得模型的参数值。接下来,利用参数估计的结果,对未知数据进行概率预测和推断,得到数据的一些重要统计指标。 SSA算法具有以下特点和优势: 1. 适应性调整:SSA算法可以根据样本数据的分布情况,自动调整参数估计的结果,以适应不同的数据场景,从而提高处理的灵活性和准确性。 2. 鲁棒性:SSA算法对于异常值和噪声的容忍度较高,能够有效地降低这些干扰对数据处理结果的影响。 3. 可扩展性:SSA算法可以通过引入更多的样本数据,进一步优化模型和参数估计的结果,提高算法的可靠性和可预测性。 4. 处理能力:SSA算法适用于处理各种类型的数据,包括数值型数据和离散型数据,可以实现对数据的全面分析和解释。 总之,SSA算法是一种强大的数据处理算法,能够通过对样本空间的自适应调整,实现对未知分布数据的准确分析和推断。在实际应用中,SSA算法被广泛应用于数据挖掘、统计分析、机器学习等领域,为决策和预测提供了重要的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值