ass字幕特效代码详解

本文详细剖析了一个ass字幕里面的全部内容,让你更深入的了解ass。

转载自 百度贴吧 – 潇一吧


一个ass字幕,用windows的记事本打开后,可以看到如下内容:

[Script Info]
ScriptType: v4.00
Collisions: Normal
PlayResY: 480
PlayResX: 640
PlayDepth: 0
Timer: 100.0000

[v4 Styles]
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,TertiaryColour,BackColour,Bold,Italic,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Alp丨haLevel,Encoding
Style: New Style,幼圆,30,16777215,4227327,8404992,16744448,0,0,1,1,2,2,30,30,12,0,134

[Events]
Dialogue: Marked=0,0:00:00.20,0:00:03.30,New Style,NTP,0000,0000,0000,,UC0079年12月24日
Dialogue: Marked=0,0:00:05.30,0:00:08.30,New Style,NTP,0000,0000,0000,,我们要跟这艘战舰共存亡
Dialogue: Marked=0,0:00:09.30,0:00:12.30,New Style,NTP,0000,0000,0000,,但我们不可让你们白死
Dialogue: Marked=0,0:00:13.30,0:00:17.30,New Style,NTP,0000,0000,0000,,直至完成任务为止
Dialogue: Marked=0,0:00:18.40,0:00:20.40,New Style,NTP,0000,0000,0000,,差不多了
Dialogue: Marked=0,0:00:20.40,0:00:22.40,New Style,NTP,0000,0000,0000,,别慢吞吞


从Script Info 讲起。Script Info——脚本信息,顾名思义,就是你所制作的字幕文件的一些信息,具体格式因所使用的编辑器不同而不同,但却要遵守一个原则:就是要在开头用“[Script Info]”来标记。下面是用SubCreator 编辑时的脚本信息:

[Script Info]
Title: 08ms team 12
ScriptType: v4.00
Collisions: Normal
PlayResY: 480
PlayResX: 640
PlayDepth: 0
Timer: 100.0000

其中红字部分是重要部分,它会影响到后面的设置:比如ScriptType: v4.00会影响字幕特 效的相关命令(有一部分命令是要在v4.00+中才会实现的,不过实用性不大,所以在此还是用 v4.00);640 、480则会影响字幕定位时的坐标。


 接着,我们来看看v4 Styles,在这部分,我们要做的就是设置字幕的各种属性简单的说就是设置全局参数。还是先放上例子再来说明吧:

[v4 Styles]
Format: Name,Fontname,Fontsize,P丨rimaryColour,SecondaryColour,TertiaryColour,BackColour,Bold,Italic,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Alp丨haLevel,Encoding
Style: New Style,幼圆,30,16777215,4227327,8404992,16744448,0,0,1,1,2,2,30,30,12,0,134
Style: TITAL,宋体,40,13777215,2327327,5404392,14744448,0,-1,1,1,2,2,15,15,270,0,134

format是在说明各参数的含义:
name:你给这种风格的字幕所起的名字;
Fontname:字体类型;
Fontsize:文字大小;
PrimaryColour:第一字幕色——字幕首选色;
SecondaryColour:第二字幕色(目前本人仅知道在卡拉OK效果时会用上);
TertiaryColour,BackColour:字幕边缘色,阴影色丨;
Bold,Italic:粗体(B),斜体(I) 0为关闭,-1为开启;
BorderStyle;字幕显示方式:1=Outline + drop shadow, 3=Opaque box;(不好用中文表述,就采用原话,推荐用1)
Outline,Shadow:当上面的设置是1时,就可以设置文字的边框和阴影的粗细了,可取值:0,1,2,3,4;
Alignment:设置文字的对齐方式:1=左对齐,2=中对齐,3=右对齐,4=置顶,8=置中,5=1+4=置顶左对齐,6丨=2+4,11=3+8,应该知道是什么了吧;
MarginL,MarginR,MarginV:字幕距左、右以及垂直方向的距离,(会影响字幕的垂直方向的坐标和一排能显示的字幕个数,超出则会自动换行)推荐值:10,10,12底端,顶端不好定,只有编出来后再来调整;
AlphaLevel: 字幕的Alpha值,简单的说就是字幕的透明度,取值范围0-255;
Encoding:字幕的编码方式,没什么多说的:具体代码: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;(红字部分为常用的)

注意:
字幕风格可以设置多种,只要名字不同就可以在同一时间执行不同风格的字幕事件,

Dialogue: Marked=0,0:00:00.20,0:00:03.30,New Style,NTP,0000,0000,0000,,UC0079年12月24日

红字部分就是你所用的某种风格的字幕的名称。


[Events]就不用说了,就是正式的字幕,动态效果就在这里进行设置。先用为快

我给出几个范例(用上面的字幕进行修改):

滚动字幕:
Dialogue: Marked=0,0:00:00.20,0:00:03.30,New Style,NTP,0000,0000,0000,Banner;30;0;50,UC0079年12月24日
Dialogue: Marked=0,0:00:05.30,0:00:08.30,New Style,NTP,0000,0000,0000,Scroll up;0;240;30;20,我们要跟这艘战舰共存亡
第一个是横向滚动,30是速度、0代表左->右(改成1就是右->左)、50代表在屏幕边缘的透明度,值越大,字幕就…(不好形容自己试试就知道了,这个参数可以缺省设置)
第二个是纵向滚动,0和240代表Y轴坐标(可缺省)、30是速度、20是透明度(同上),另外,把UP改为DOWN就是上->下滚动

旋转字幕:
Dialogue: Marked=0,0:00:09.30,0:00:12.30,New Style,NTP,0000,0000,0000,,{\t(\fry720)}但我们不可让你们白死
其中,“y”代表沿y轴转,“x”“z”均可、720代表的是度数,旋转快慢由你所定义的动作时间而定(时间长,旋转慢;反之则快。)。要想饶XYZ三轴转就分别添加{\t(\frx__)}{\t(\frz__)}(__填上你想要的速度)

任意坐标移动
Dialogue: Marked=0,0:00:13.30,0:00:17.30,New Style,NTP,0000,0000,0000,,{\t(\move(32, 48, 200, 320))}直至完成任务为止
32,48代表起始位置坐标200,320表示终止位置坐标。

卡拉OK效果
Dialogue: Marked=0,0:00:18丨.40,0:00:20.40,New Style,NTP,0000,0000,0000,,{\k94}差{\K48}不{\ko80}多{\k150}了
大写的K=从左至右填充色彩(SecondaryColour为底色;PrimaryColour为填充色); ko=outline高亮显示(不推荐) ;

淡入淡出效果
Dialogue: Marked=0,0:00:20.40,0:00:22.40,New Style,NTP,0000,0000,0000,,{\fad(300,550)}别慢吞吞
300-淡入时间,550-淡出时间 ,单位:毫秒(ms)。

强制字体效果
Dialogue: Marked=0,0:00:20.40,0:00:22.40,New Style,NTP,0000,0000,0000,,{\fn宋体)}别慢吞吞
无特别提示。

强制颜色效果
Dialogue: Marked=0,0:00:20.40,0:00:22.40,New Style,NTP,0000,0000,0000,,{\c&H00ffff&}别慢吞吞

强制透明度效果
Dialogue: Marked=0,0:00:20.40,0:00:22.40,New Style,NTP,0000,0000,0000,,{1\a&H50&}别慢吞吞
1是代表第一颜色的透明度,2、3、4以此类推,透明度取值:00~FF。


说说字幕的颜色。
小学时就学

过RGB三原色,其他颜色也就是这三种原色搭配而产生的,在WINDOWS里,三原色也有相应的 值以16进制编译,三种色都定义了256种色彩深度也就是0-FF,任何颜色按RGB表示出来假如说 是56丨F49E,在SSA中就要以BGR形式表示出来,即:9EF456。色彩代码要注意的就只有这一点。

关于色彩的代码获得可以在WINDOWS的绘图工具中找自定义颜色,然后把三原色的10进制数值转换成16进制,按BGR顺序排列就可得到。


格式修改:

[在字幕中插入,例如: 今天的天气\n好晴朗啊]

\n……………………回车换行(好像是当字幕在一行显示不完时才换行,我不是很清楚)
\N……………………强制换行
\h……………………强制空格

在{…}之间加入的特效码: <>内表示可选的参数,在具体使用时不用加<>

\b<0/1/weight>……………………………………字体加粗
\i<0/1>………………………………………….斜体字
\u<0/1>………………………………………….下划线
\s<0/1>………………………………………….strikeout
\bord……………………………………..字体加宽
\shad……………………………………..阴影深度
\be<0/1>…………………………………………边角模糊?
\fn………………………………………..强制字体类型
\fs………………………………………..强制字幕大小 例如:\fs34
\fsc<百分比>………………………………….字体比例[fscx代表横向比例fscy代表纵向,单位:百分比]
\fsp
……………………………………..字间距
\fr[]<角度数>……………………………….旋转[x,y,z轴三个方向]
\fe……………………………………..character set?
\c&H&…………………………………….强制主字幕色
\<1/2/3/4>c&H&…………………………….主/次/外框/阴影 字幕色设定
\alpha&H&…………………………………….主色透明度
\<1/2/3/4>a&H&………………………………..主/次/外框/阴影 透明度
\k[]……………………………….卡拉OK效果 (f-从左至右添充[未填充时显示次要色,填充后显示主色], o-将字幕外框高亮显示?)
\K………………………………………………跟 \kf 同样效果(填充效果)
\r[]……………………………………….强制加载名为“name”的预设风格 ["[v4 Styles]“定义的]
\t([,,][<加速度>,]<特效码> )……………….动态显示, 加速度: 0~1减速, 大于1加速(方括号内的可以却省设置)
\move(,,,[,,])………移动(方括号内的可以却省设置)
\pos(, )…………………………………….强制定位
\fad(, )…………………………………..淡入淡出[t1-开始时间,t2-结束时间]
\be<0/1> 柔化 0关闭 1开启
\org, 热点对齐 一般用于旋转的坐标轴


绘图命令:
m 移动到x,y并开始绘制
绘图开始时必须使用一次
n 移动到x,y并开始绘制,但不关闭上一个绘图
l 画直线到x,y
可以用l … 的方式画连续直线
b 画曲线
s … 画封闭曲线
p 延伸封闭曲线
c 关闭封闭曲线

\p<0/1/2…> 绘图,参数1/2…表示绘图比例,0表示绘图结束
\p<1/2…><绘图命令>\p0 绘制图形,绘制出的图形作为一个字符来处理,可以进行旋转,缩放等

\clip(,,,):
(x1, y1) —————- (x2, y1)
   |                                                 |
   |                                                 |
   |                                                 |
   |                                                 |
(x1, y2) —————- (x2, y2)

一般是在clip代码指定的区域内显示字幕 ,然后用在颜色切片上……就是一个字颜色渐变

\p<0/1/2…> 绘图,参数1/2…表示绘图比例,0表示绘图结束
\p<1/2…><绘图命令>\p0 绘制图形,绘制出的图形作为一个字符来处理,可以近行旋转,缩放等

绘图命令:
m 移动到x,y并开始绘制
绘图开始时必须使用一次
n 移动到x,y并开始绘制,但不关闭上一个绘图
l 画直线到x,y
可以用l … 的方式画连续直线
b 画曲线
s … 画封闭曲线
p 延伸封闭曲线
c 关闭封闭曲线
绘制的图形是实心的,在前面添加\1a&Hff&可以得到空心的图形

Things you should know:

Commands must appear after {\p1+} and before {\p0}. (except for \clip(..))

Drawings must always start with a move to command.

Drawings must form a closed shape.

All unclosed shape will be closed with a straight line automatically.

Overlapping shapes in the Dialogue line will be XOR-ed with each-other.

If the same command follows another, it isn’t needed to write its identifier letter again, only the coordinates.

The coordinates are relative to the current cursor position (baseline) and the alignment mode.

Commands p and c should only follow other b-spline commands.

Examples:

Square: m 0 0 l 100 0 100 100 0 100

Rounded square: m 0 0 s 100 0 100 100 0 100 c (c equals to “p 0 0 100 0 100 100” in this case)

Circle (almost): m 50 0 b 100 0 100 100 50 100 b 0 100 0 0 50 0 (note that the 2nd ‘b’ is optional here)

椭圆曲线是椭圆的一部分,也称为弧。A (或 a)命令通过指定起点、终点、x 和 y 轴半径、旋度和方向来创建它们,如下所示。
三次贝塞尔曲线由一个起点、一个终点和两个将曲线“拖”向自己的控制点定义。C (或 c)命令(指定起点和终点)和 S (或 s)命令(假设这条曲线从最近的命令终止的地方继续)创建这些曲线。
二次贝塞尔曲线与其三次贝塞尔曲线类似,不过仅包含一个控制点。Q(或 q)和 T(或 t)命令可以创建这些曲线。



13,662 次阅读 | 发表评论 | Trackback
2011年1月22日 | 归档于 软件
标签:
本文目前尚无任何评论.

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">
:lol: :( 8-O :oops: 8) :?: :!: :evil: more »