2013-01-22

ASS 字幕格式

ASS 是 Advanced SubStation Alpha 的簡稱
ASS 是由 SSA (SubStation Alpha) V4+ 的更新版本,可以讓字幕更多變化

ASS 的格式是一種 INI 設定檔格式
方括弧為標題開首、分號右方為註解、冒號左方為變數名,冒號右方變數值
ASS 主要分 Script Info, V4+ Styles, Events 就可以製作 ASS 字幕檔
[Script Info]
;影片的描述,若不設定,預設為 <untitled>
Title:Video Description
;作者名,若不設定,預設為 <unknown>
Original Script:Author
;翻譯者訊息,選擇性項目
Original Translation:Translator Message
;翻譯編輯器名稱,選擇性項目
Original Editing:vim
;翻譯的定時,選擇性項目
Original Timing:
;影片與字幕的同步位置,為 0 即一開始同步
Synch Point:0
;字幕的更新
Script Updated By:A
;更新狀況
Update Details:nothing
;字幕的版本,ASS 為 V4.00+
Script Type:V4.00+
;字幕顯示時間重疊時的對應狀態
;Normal 為當字幕顯示時間重疊時,後一句字幕會在前一句字幕上方
;Reverse 為當字幕顯示時間重疊時,前一句字幕會讓出行距,讓後一句字幕會在前一句字幕下方
Collisions:Normal
;影片水平像素,可讓字幕總長度超過像素時會自動換行
PlayResX:640
;影片垂直像素,可讓字幕總長度超過像素時會自動換行
PlayResY:480
;影片顏色深度,以 bit 計算
;0 為不限
;1 為黑白
;8 為 256 色
;24 為 RGB 全色
PlayDepth:0
;字幕播放速度,100.0000 為 100% 即正常速度
Timer:100.0000
;字幕自動換行風格
;0-自動換行,不能強制換行
;1-自動換行,能以 \N 強制換行
;2-手動換行,必須以 \n 或 \N 換行
;3-自動換行,但縮減行距
WrapStyle:1
一般而言,只需要使用以下基本設定便可以
[Script Info]
Title:Video Description
Original Script:Author
Synch Point:0
Script Type:V4.00+
Collisions:Normal
PlayResX:640
PlayResY:480
Timer:100.0000
V4+ Styles 可以使用以下
[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
Format 為宣告 V4.00+ 的風格需要動用往後的設定,操作上可以不使用所有設定
Name 為風格名稱,名稱為區分大小寫,不能使用逗號

Fontname 為字體名稱,如新細明體,預設為 Arial
見下文
使用 Times New Roman 字體
見下文
使用 Arial 字體

Fontsize 為字體大小
見下文
使用 72 字體大小

PrimaryColour 為字幕的主要顏色,字幕顯示時的當前顏色
SecondaryColour 為字幕的次要顏色,會像歌曲字幕般在 PrimaryColour 覆蓋顏色
OutlineColour 為字幕的輪廓顏色,但 BorderStyle 必須設定為 1 才能使用
BackColour 為字幕的陰影顏色
以上四種顏色都以 AABBGGRR 所控制
AA 為透明度,設定範圍為十六進制的 00 ~ FF,00 為不透明,FF 為全透明
BB 為藍色,設定範圍為十六進制的 00 ~ FF,00 為沒有藍色
GG 為綠色,設定範圍為十六進制的 00 ~ FF,00 為沒有綠色
RR 為紅色,設定範圍為十六進制的 00 ~ FF,00 為沒有紅色
例如: &H00FF0000 以 &H 為開首定義顏色以十六進制計算
見下文
PrimaryColour 為 &H0000FF00
見下文
OutlineColour 為 &H00FF0000
見下文
Bold 粗體設定,以 1 為使用,0 為不使用
見下文
Italic 斜體設定,以 1 為使用,0 為不使用
見下文
Underline 底線設定,以 1 為使用,0 為不使用
見下文
StrikeOut 中線設定,以 1 為使用,0 為不使用
見下文
ScaleX 修改字幕的闊度,數值會以百分數定義
見下文
ScaleY 修改字幕的高度,數值會以百分數定義
見下文
Spacing 修改字幕的字符的空間,以像素定義

BorderStyle 字幕附加的邊框風格
1 為邊框加上陰影
3 為純色背景
Outline 當 BorderStyle 為 1 時啟用,設定輪廓闊度,以像素定義
Shadow 當 BorderStyle 為 1 時啟用,設定陰影偏移量,以像素定義
見下文

Alignment 字幕顯示於畫面的位置
位置相對於 Numpad 的 1~9 位置
見下文
7 為左上方
見下文
8 為中上方
見下文
9 為右上方
見下文
4 為左中方
見下文
5 為正中方
見下文
6 為右中方
見下文
1 為左下方
見下文
2 為中下方
見下文
3 為右下方
見下文
MarginL 字幕左方邊緣的距離,以像素定義
MarginR 字幕右方邊緣的距離,以像素定義
見下文
MarginV 字幕垂直距離,以像素定義
對於下方字幕為底部的距離
對於上方字幕為頂部的距離
對於置中字幕,此項目則無效

Encoding 編碼制式
0 為英文 (ANSI)
若果字幕檔為不包含 Byte Order Mark 的 Unicode 編碼,只需要使用 0 便可以或不使用 Encoding 亦可以

調用 V4+ Styles 只需要在對應該位置填上資料
[V4+ Styles]
Format:Name,Fontname,Fontsize,PrimaryColour,OutlineColour,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV
Style:Default,Arial,36,&H00FF00FF,&H00000000,1,1,0,2,20,20,10
Style:Description,Arial,24,&H0000FFFF,&H00000000,1,1,0,7,5,5,5
可以定義多種字幕款式,以便在影片合適的位置顯示
見下文

定義了 V4+ Styles 還需要定義字幕於影片播放時段顯示
[V4+ Styles]
Format:Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text
Format 為宣告 V4.00+ 的字幕需要動用往後的設定,操作上可以不使用所有設定
Layer 為字幕分層,以整數區分,當相同分層的字幕發生時間重疊,字幕會以 Collisions 的方式應對
數值較大的分層,會以 Collisions 的方式編排次序
Start 為字幕開始時間,以 H:MM:SS.ss 方式定義
End 為字幕結束時間,以 H:MM:SS.ss 方式定義
H 為小時,只有 1 個位值,不足 1 小時間需要填 0
MM 為分鐘,2 個位置,不足 10 分鐘需要補 0
SS 為秒,2 個位置,不足 10 秒需要補 0
ss 為百分秒,2 個位置,不足 10 百分秒需要補 0
例如 1:02:03.04
Style 為 V4+ Styles 中所定義的風格名稱,區分大小寫
若果選用的風格沒有在 V4+ Styles 中定義,會使用 Default 格式
但 V4+ Styles 中並沒有定義 Default 格式,會使用 ASS 預設的風格
Name 為加插字幕的編輯者,對於字幕沒有影響
MarginL 操作與 V4+ Styles 相同,4 個位置,0000 為使用 V4+ Styles 的 MarginL
MarginR 操作與 V4+ Styles 相同,4 個位置,0000 為使用 V4+ Styles 的 MarginR
MarginV 操作與 V4+ Styles 相同,4 個位置,0000 為使用 V4+ Styles 的 MarginV
Effect 字幕效果
Text 為字幕文字,必須位置宣告列的最尾位置,唯一可以使用半形逗號的爛位

另外 Text 還可以直接套用風格及效果
利用 {\function_name} 語法,使其右方的文字套用,製作具風格及效果的字幕,直至下一個語法或 Dialogue 才結束
{\n}換行,當自動換行未啟動時使用
{\N}強制換行,當自動換行啟動時使用
{\b?}即 Bold,? 是 0 或 1
0 為將往後的文字強制不使用粗體
1 為將往後的文字強制使用粗體
{\i?}即 Italic,? 是 0 或 1
0 為將往後的文字強制不使用斜體
1 為將往後的文字強制使用斜體
{\u?}即 Underline,? 是 0 或 1
0 為將往後的文字強制不使用底線
1 為將往後的文字強制使用底線
{\s?}即 StrikeOut,? 是 0 或 1
0 為將往後的文字強制不使用中線
1 為將往後的文字強制使用中線
{\bord?}即 Border,? 是整數
邊框闊度,以像素定義,例如 {\bord1}
{\shad?}即 Shadow,? 是整數
陰影闊度,以像素定義,例如 {\shad1}
{\fn?}即 Fontname,? 是字體名稱,例如 {\fnTimes New Roman}
{\fs?}即 Fontsize,? 是字體大小,例如 {\fs72}
{\fsc?%}即 Scale,? 是 x 或 y,% 是整數
例如 {\fscx200} 及 {\fscy300}
{\fsp?}即 Spacing,? 是整數
例如 {\fsp20}
{\an?}即 Alignment,? 是 1~9
1 為左下方
2 為中下方
3 為右下方
4 為左中方
5 為正中方
6 為右中方
7 為左上方
8 為中上方
9 為右上方
例如 {\an2}
{\k?}配合 PrimaryColour 與 SecondaryColour 使用,? 為整數,以百分秒計算
讓字段開始時以 PrimaryColur 顏色顯示,當經過 百分之?秒 後,該字段會以 SecondaryColour 顯示
例如 {\k100}{\k100}hello {\k100}world
見下文
{\k100}
讓 <空文字> 維持 1 秒
見下文
{\k100}hello
讓 hello 維持 1 秒
見下文
{\k100}world
讓 world 維持 1 秒
\blur?將 SecondaryColor 模糊化,? 為整數
見下文
{\blur3}

沒有留言 :

張貼留言