Advanced SubStation Alpha
名前付きスタイル、任意のフォント、色、縁取り、影、そして行の配置・移動・アニメーションを指定するコードを備えた、ほぼ何でもできる字幕形式です。ファンサブの制作者は、四半世紀にわたってこの形式でタイプセットを行ってきました。その前身のSubStation Alpha(.ssa)も、同じ仕組みで読み取れます。
概要
| 拡張子 | .ass |
|---|---|
| メディアタイプ | 登録なし。慣習としてtext/x-ssa |
| 仕様 | 非公式。SubStation Alphaのスクリプトの注釈と、VSFilterやlibassが描画する内容によって定まります。 |
| 時間の精度 | 100分の1秒 |
| 文字エンコーディング | 宣言されません。現在はUTF-8が一般的です。古いファイルは当時のエンコーディングで書かれており、Subtitldが自動判別します。 |
| 装飾 | 名前付きスタイルと、テキスト内のオーバーライドコード(フォント、色、縁取り、影、回転、アニメーション) |
| 表示位置 | 自由に指定可能: スタイルの配置と余白、{\an8}、{\pos}、{\move} |
| 話者 | 各行のアクター(Name)。画面には表示されません。 |
| コンテナ内 | MatroskaではS_TEXT/ASSまたはS_TEXT/SSAとして、添付フォントとともに格納されます。MP4では変換のみで、装飾は失われます。 |
ファイルの構造
ファイルは3つのセクションで構成されます。各セクションは角かっこで囲まれた見出しで始まり、その下にキー: 値の行が続きます。
[Script Info] PlayResY: 800 [V4+ Styles] Style: Default,Arial,44,… [Events] Dialogue: 0,0:00:30.80,…,Celia,…
- 1 · スクリプト情報
キャンバスの情報です。位置を計算する基準となるサイズ(
PlayResX、PlayResY)、行の折り返し方法(WrapStyle)、タイトルなどを指定します。 - 2 · スタイル
名前付きの見た目です。フォント、サイズ、色、縁取り、影、配置、余白を定義します。SSAではこのセクションを
[V4 Styles]と呼びます。 - 3 · イベント
字幕1つにつき1行です。
Dialogueは表示される字幕、Commentは表示されない行です。
Dialogue行
Dialogue: 0,0:00:30.80,0:00:34.00,Default,Celia,0,0,0,,{\an8}Why don't you…は、カンマ区切りで次の項目を持ちます。
| 項目 | 内容 |
|---|---|
| Layer | 数字が大きいレイヤーほど上に描画されます。SSAではMarked=0がここに入ります。 |
| Start、End | 開始時刻と終了時刻(100分の1秒単位) |
| Style | 名前付きスタイルの1つ |
| Name | アクター。誰が話しているかを示します。画面には表示されません。 |
| MarginL、MarginR、MarginV | この行に対するスタイルの余白。0の場合はスタイルの値を使います |
| Effect | 古いスクロール効果。ほとんどは空です。 |
| Text | 行の残りの部分。カンマを含み、オーバーライドコードも含みます。 |
タイムコード
ミリ秒ではなく100分の1秒です。 時間は1桁、その後は小数点以下2桁です。ミリ秒単位で指定された字幕は、ASSとして保存するときに100分の1秒へ丸められます。
オーバーライドコード
波かっこで囲んだコードは、その位置以降の行を変更します。以下は一般的なコードと、Subtitldでの扱いです。
| コード | 効果 | Subtitldでの扱い |
|---|---|---|
{\i1}…{\i0} |
斜体 | 保持 |
{\b1}、{\b700} |
太字、または太さの指定 | 保持 |
{\u1}、{\s1} |
下線、取り消し線 | 保持 |
{\c&H00D7FF&} |
文字色 | 保持 |
{\r}、{\rSign} |
行のスタイル、または別のスタイルの見た目に戻す | 従う |
{\an8} |
行の配置。テンキーに対応する9つの位置 | 保持 |
\N、\n、\h |
改行。WrapStyle: 2の場合のみ改行、改行されないスペース |
行とスペースとして保持 |
{\pos(960,100)}、{\move(…)} |
正確な位置、または移動の経路 | 保持されない |
{\fad(200,200)}、{\t(…)} |
フェードとアニメーション | 保持されない |
{\k20} |
カラオケのタイミング | 保持されない。テキストは残る |
{\fnArial\fs48} |
フォントとサイズ | 保持されない |
{\p1}…{\p0} |
ベクターの図形 | 字幕ではない |
色の並びは逆になっています。 &H00D7FF&は金色です。並びは青、緑、赤の順です。スタイルの色の前には透明度(アルファ)が付き、00が不透明、FFが透明です。
SSAかASSか
| SubStation Alpha .ssa | Advanced SubStation Alpha .ass | |
|---|---|---|
| バージョン | v4.00 | v4.00+ |
| スタイルのセクション | [V4 Styles] |
[V4+ Styles] |
| 配置 | 独自の番号: 下部は1、2、3、上部は5、6、7、中央は9、10、11 | テンキーに対応する1から9 |
| 下線、取り消し線 | — | スタイルとコードで指定可能 |
| レイヤー | — | 行ごとに1つ |
| 主な利用先 | 古いツール | Aegisub、再生ソフト、ファンサブ |
ASSとSubtitld
- 各字幕のテキストと改行
- 斜体、太字、下線、取り消し線、色(スタイルとコードから)
- 画面上の表示位置
- 話者(アクターとして)
- 開始時刻と終了時刻(100分の1秒単位、順序どおり)
- 正確な位置、フェード、アニメーション、カラオケ
- 行ごとのフォント、サイズ、縁取り。レイヤー
- 図形とコメント
- 原文の横に並ぶ翻訳、吹き替え、話者の顔
Subtitld独自の内容を残すには.usfxプロジェクトとして保存してください。
ASSまたはSSAファイルを開く
Subtitldは両方のバージョンを読み取り、次のように処理します。
- 各行に、そのスタイルの見た目(斜体、太字、下線、取り消し線、白以外の色)と位置を与え、その後でテキスト内のコードに従います。
- アクターを行の話者として扱い、吹き替え用に準備します。
Comment行と図形は読み飛ばします。図形の後に続くテキストは残します。\nは、ファイルのWrapStyleの指定に従って処理します。スタイル2では改行、それ以外ではスペースになります。- 任意のエンコーディングを読み取り、字幕を順序どおりに並べます。
正確な位置、フェード、カラオケ、フォントなど、Subtitldが扱えない内容は省かれます。テキストそのものは残ります。
ASSの書き出し
エクスポート、次に字幕、そしてASSを選ぶと、次のオプションが表示されます。
- テキスト原文、翻訳、または両方(翻訳は原文の下に配置)。
- 話者名テキストから省くか、テキストの前に付けます(Thom: …)。どちらの場合も、アクターとして書き出されます。
- 書式残すか、取り除きます。
- 時間をずらすすべての字幕を、同じ量だけ早めたり遅らせたりします。
- 見た目白の文字に黒い縁取り、またはSubtitldのプレビューどおり(そのフォント、色、影、半透明の背景ボックス)。
スクリプトは動画に合わせたサイズになります。PlayResXとPlayResYは動画の幅と高さで、唯一のスタイルであるDefaultは、その高さに合わせて拡大縮小されます。1080の高さでは60ピクセルです。拡張子を.ssaにすると、SubStation Alpha v4として、SSAの番号で位置が書き出されます。
豆知識
SubStation Alphaは、Kotusが作った字幕エディタでした。そのスクリプト形式は、プログラムの名前を受け継ぎ、プログラム自体より長く使われています。
Advanced SubStation Alphaは、元のバージョン番号とプラス記号で自らを示します。セクションは同じで、コードが増えています。
色は青、緑、赤の順で書かれ、アルファ値は下がっていきます。00が不透明、FFが透明です。
関連する形式
Subtitld で動画と一緒に開き、波形上でタイミングを調整しましょう。