ASS/SSA字幕ファイルの翻訳方法
スタイルとフォーマットを失わずに
ASS(Advanced SubStation Alpha)字幕を扱ったことがある方なら、それが単なるタイムスタンプ付きプレーンテキストではないことをご存知でしょう。ASSファイルにはフォント、色、位置指定、カラオケエフェクト、モーションアニメーション、多層タイプセッティングなど、アニメのファンサブ、ミュージックビデオ、プロのローカライズを美しく仕上げるリッチなスタイリングが含まれています。
根本的な問題
ASSファイルを翻訳すると、ほぼ必ずそのスタイリングが壊れます。内容をGoogle翻訳やChatGPTに貼り付けると、タグが壊れ、タイムコードがずれ、フォーマットがめちゃくちゃになって返ってきます。先にSRTに変換すれば、タイプセッターが何時間もかけて作ったすべての視覚効果が失われます。
このガイドでは、ASS翻訳がなぜ特に難しいのか、間違ったツールを使うと何が壊れるのか、そしてすべてのスタイル、タグ、カラオケマーカーを保持したまま.assまたは.ssaファイルを翻訳する方法を解説します。実例として、Blender Foundationのクリエイティブ・コモンズ・アニメーション映画Sintelの字幕を英語から日本語に翻訳してデモンストレーションします。
ASS/SSAとSRTの違い
SRTファイルはプレーンテキストで、連番、タイムスタンプ、セリフで構成されています。一方、ASSファイルは3つの独立したセクションを持つ完全なスクリプト形式です。
[Script Info]
キャンバス解像度(PlayResX、PlayResY)、スクリプトタイプのバージョン、折り返しスタイルを定義します。これらの値は、すべてのテキスト行のレンダリングに影響します。
[V4+ Styles]
ビジュアルデザインが定義される場所です。各名前付きスタイルは、フォント、サイズ、プライマリ/セカンダリ/アウトライン/シャドウの色(&HAABBGGRR 16進数形式)、太字/斜体フラグ、拡大縮小、文字間隔、回転角度、ボーダー幅、影の深さ、配置、マージンを指定します。1つのASSファイルで数十のスタイルを定義することもあります:通常のセリフ用、看板用、歌詞用、ナレーション用などです。
[Events]
実際のセリフ行が含まれ、各行は名前でスタイルを参照します。セリフテキスト内では、{} で囲まれたオーバーライドタグを使って、任意のスタイルプロパティをその場で変更できます。
| タグ | 機能 |
|---|---|
| \pos(x,y) | 精密な位置指定 |
| \move(x1,y1,x2,y2) | 位置アニメーション |
| \c&H0000FF& | 行の途中でテキスト色を変更 |
| \fad(500,500) | フェードイン/フェードアウト効果 |
| \k45 | カラオケの音節タイミング |
| \clip() | マスク領域 |
| \t() | アニメーション付きスタイル遷移 |
| \p1 | ベクター描画モード |
| \an8 | 配置のオーバーライド |
| \frz30 | テキストの回転 |
| \b1, \i1 | 太字と斜体の切り替え |
翻訳者がセリフテキストを置き換える際、これらのタグはすべてそのまま残さなければなりません。\kタグが1文字分でもずれると、カラオケのタイミングが壊れます。\posタグが削除されると、看板の翻訳が画面の別の場所に浮いてしまいます。中括弧が崩れると、行全体がレンダリングされなくなる可能性があります。核心的な課題は、人間が読めるテキストだけを抽出し、翻訳し、まったく同じタグ構造に再挿入すること——他には一切触れないことです。
一般的な翻訳方法でASSファイルが壊れる理由
Google翻訳やChatGPTにコピーする
最も一般的なアプローチであり、最も頻繁に失敗するものです。生のASSセリフを汎用翻訳ツールに貼り付けると、いくつかの問題が発生します。
- オーバーライドタグが翻訳されてしまう。\fnArial(フォントをArialに設定)のようなタグが、エンジンがテキストとして扱うため、意味不明な文字列に「翻訳」される場合があります。
- 中括弧が削除されたり重複したりする。多くの翻訳ツールは特殊文字を除去したり再フォーマットします。
- 改行が変わる。ASSはハード改行に\Nを、ソフト折り返しに\nを使用します。翻訳ツールはこれらを実際の改行に変換してしまうことが多く、意図したレイアウトが壊れます。
- 行数が変わる。翻訳ツールが行を結合したり分割したりすると、元のセリフと翻訳セリフの1対1の対応が失われ、タイムスタンプが合わなくなります。
- 文字エンコーディングが壊れる。ASSファイルはスタイルごとに特定のエンコーディングを使用します。異なるエンコーディングで出力する翻訳ツールを使うと、プレーヤーでファイルを読み込んだ際に文字化けが発生することがあります。
先にSRTに変換してから翻訳する
ASSをSRTに変換し、よりシンプルな形式で翻訳してから元に戻す方法もあります。こちらの方がきれいですが、ASSを使う意味のあるすべてが失われます。
- -すべてのスタイル定義が除去される
- -位置指定とモーションエフェクトが消える
- -カラオケタイミングが破棄される
- -レイヤー順序(重なるテキスト用)がフラット化される
- -ベクター描画が完全に削除される
ASSファイルが特殊効果のないプレーンなセリフだけであれば、これでも許容できるかもしれません。しかし、誰かがタイプセッティングに時間をかけている場合——通常はそうですが——その作業をすべて捨てることになります。
Subtitle EditやAegisubを手動で使う
AegisubはASSファイル編集のゴールドスタンダードです。Aegisubで1行ずつ翻訳すれば、すべてのフォーマットを確実に保持できます。欠点は明らかで、手作業になることです。24話のアニメシリーズで1話あたり300行以上ある場合、何日もの退屈なコピー・ペースト・翻訳の繰り返しが必要です。さらに、ターゲット言語に堪能でなければ、結局機械翻訳エンジンが必要になり——タグ保持の問題に戻ってしまいます。
実例デモ:Sintelを英語から日本語に翻訳
適切なASS翻訳が実際にどのようなものかを示すために、Sintel(Blender Foundationによるクリエイティブ・コモンズ映画)の字幕をDoc2Langを使って英語から日本語に翻訳しました。このASSファイルには8種類のスタイル、カラオケ歌詞、位置指定された看板、多層エフェクト、インラインカラー変更などが含まれています。翻訳前後の結果をご覧ください。
タイトルカード — 多層グローエフェクト

オープニングタイトルは2つのレイヤーを使用しています。Layer 0の\blur6がテキストの背後に暗いグローを作り、Layer 1がシャープなタイトルを上に描画します。翻訳後、「SINTEL」は「シンテル」に、「A Blender Foundation Open Movie」は「Blender Foundation制作のオープンムービー」になります。両方のレイヤー、ブラーエフェクト、フェードアニメーション(\fad)、中央配置(\an5\pos(960,460))はすべてそのまま保持されています。
シーン1 — 位置指定された看板、シーンラベル、色付きセリフ

これが最も要求の厳しいテストです。3つの異なるASS機能が同時に表示されています。
- TopNote(左上): 「Scene 1 — The Shaman's Hut」→「シーン1 — シャーマンの小屋」— 不透明な背景ボックス用にBorderStyle=3を使用し、\an7\pos(60,35)に配置
- Sign(右側): 「⚔ The Gatekeepers' Land ⚔」→「× 門番たちの土地 ×」— \pos(1560,180)で配置し、\frz-8で回転
- セリフ(下部): 「This blade has a dark past.」→「この刃には暗い過去がある。」— イタリックセリフ体のShamanスタイルを使用し、「dark」が\c&H4466FF&\b1で異なる色にハイライトされている
3つの要素すべてが、翻訳後も正確な画面位置、回転角度、色、フォーマットを維持しています。
カラオケ — 音節ごとのタイミング

エンドクレジットの曲はカラオケの音節タイミングに\kタグを使用しています。「I wandered through the frozen lands alone」は「凍てつく地をひとりさまよい」になります。各音節を通過するオレンジ色のハイライトは\kの持続時間値(例:\k58、\k42、\k38)で駆動されており、これらのタイミング値は完全にそのまま保持され、間のテキストだけが変わります。
エンドタイトル — フェード、ブラー、スクロールクレジット

クロージングシーケンスは複数のエフェクトを組み合わせています。多層グローのタイトル(「SINTEL」→「シンテル」)、フェードアウトするサブタイトル(「The End」→「おしまい」)、そして画面下部をスライドする\move(1920,980,0,980)を使ったスクロールクレジット行です。スクロールテキストは、まったく同じモーションパスを維持したまま英語から日本語に翻訳されました。
ステップバイステップ:Doc2Langでの翻訳方法
SintelのASSファイルを翻訳した方法を、ステップごとに正確に説明します。
.assファイルをアップロード
doc2lang.com(または直接 doc2lang.com/ass-translate)にアクセスしてください。ページ中央にアップロードエリアが表示されます。.assファイルをドラッグ&ドロップするか、「ファイルをアップロード」をクリックして選択してください。Doc2LangはPDF、Excel、Wordなどのファイルタイプとともに字幕も処理します。複数ファイルの同時アップロードや、シーズン全体を含むZIPアーカイブのアップロードも可能です。

言語を選択して設定を構成
アップロード後、設定ダイアログが表示されます。100以上のオプションからソース言語(英語)とターゲット言語(日本語)を選択します。次に翻訳スタイルを選びます。Sintelの映画セリフには「カジュアル — 自然で会話的なトーン」を選択しました。これはエンターテインメントコンテンツに最も自然な結果を生み出します。用語集を追加してキャラクター名の一貫性を保つこともできます(例:「Scales」→「スケールズ」を追加し、AIがドラゴンの名前を毎回異なる訳にするのを防ぐ)。すべて設定したら、「アップロード」をクリックして翻訳を開始します。

翻訳を無料でプレビュー
Doc2Langは支払い前に無料プレビューを生成します。翻訳プレビューページには、ファイル名、検出された言語ペア、ドキュメントタイプが表示されます。

「コンテンツプレビュー」をクリックして翻訳テーブルを展開します。左側に原文、右側に翻訳文が並んで表示されます。ここで翻訳品質が期待に沿うかを確認します。セリフテキストのみが表示され、すべてのASSフォーマットタグ(\pos、\k、\fadなど)は実際のファイルでは保持されていますが、読みやすさのためこのプレビューでは非表示になっています。

翻訳品質に満足できない場合は、「設定を調整」をクリックして翻訳スタイルや言語を変更し、無料でやり直すことができます。「サンプルファイルをダウンロード」をクリックして、部分的な翻訳を無料の.assファイルとして取得し、購入前にビデオプレーヤーでテストすることもできます。
支払いと完全なファイルのダウンロード
プレビューに満足したら、「ファイル全体を翻訳」をクリックします。購入ダイアログが表示され、ファイルのクレジットコストが示されます。支払い方法は2つあります。事前購入済みクレジットを使用する「クレジットで支払い」か、この特定のファイルに直接支払う「直接支払い」です。サブスクリプションは不要で、完全な従量課金制です。

支払い後、完全に翻訳された.assファイルがダウンロード可能になります。VLCで動画と一緒に開き(字幕→字幕ファイルの追加から)、位置指定、色、カラオケタイミング、レイヤーエフェクトがすべて翻訳後も維持されていることを確認してください。
保持されるもの
- すべての[V4+ Styles]定義(フォント、色、ボーダー、影、配置、マージン)
- オーバーライドタグ:\pos、\move、\fad、\clip、\iclip、\t、\c、\an、\frz、\b、\i、\fn、\fs、\bord、\shad、\be、\blur
- カラオケタグ:\k、\K、\kf、\ko(元のタイミング値を保持)
- レイヤー順序(Layer 0〜9)
- 改行(\N、\n、\h)
- 描画モード(\p1 ... \p0)— ベクターパスはそのまま通過
- ルビ/ふりがな注釈 — 親子レイヤーが維持される
- コメント行 — デフォルトでは翻訳されず、含めるオプションあり
インテリジェントに調整されるもの
- フォントサイズ(\fs)と垂直拡大率(\fscy)は、翻訳されたテキストがソースより大幅に長くなったり短くなったりした場合に調整されることがあります
- バックスラッシュのエスケープ処理はASSタグとの競合を防ぐために自動的に処理されます
- フォント名はスタイルシートテンプレートを使って一括置換が可能です
翻訳前のベストプラクティス
適切なツールを使用しても、以下の準備手順に従うことで、よりクリーンな結果が得られます。
重複したスタイル名を整理する
ASSファイルに「Default」という同名のスタイルが2つある場合(異なるソースからファイルを結合した際に発生しうる)、翻訳行が間違ったスタイルを参照する可能性があります。アップロード前にAegisubでファイルを開き、重複を名前変更してください。
1行を1文にとどめる
ASSには1行あたりのハード文字数制限はありませんが、非常に長い行は翻訳後にレイアウトが崩れることがあります。特にターゲット言語がソースよりも大幅に長くなる場合に顕著です。翻訳前に\N改行を挿入して長いセリフを分割してください。
Unicode対応フォントを使用する
スタイルで指定されたフォントがターゲット言語を実際にサポートしているか確認してください。英語から日本語に翻訳する場合、「Times New Roman」のようなフォントでは日本語グリフが不足している場合があります。ラテン文字とCJK文字の両方をカバーする「Noto Sans」のようなユニバーサルなフォントを使用するか、アップロード時に自動フォント置換を有効にしてください。
ダウンロード後に実際のプレーヤーでプレビューする
クリーンな翻訳が完了しても、必ずVLCやPotPlayerでファイルを再生して、カラオケの同期が正しいか、位置指定されたテキストが画面外にずれていないか、重なるレイヤーが正しい順序で描画されているかを確認してください。Aegisubのプレビューも個別行の微調整に便利です。
一般的なユースケース
アニメファンサブのローカライズ
最も一般的なユースケースです。アニメのファンサブはASSフォーマットに大きく依存しています。カラオケOP/ED、スタイル付き看板翻訳、タイプセットされたエピソードタイトル、多層エフェクトなどです。ファンサブを英語からポルトガル語、スペイン語、インドネシア語に翻訳する際、すべてのタイプセッティング作業を保持すれば、シーズンあたり数百時間のファンサバーの作業を節約できます。
ミュージックビデオの歌詞翻訳
歌詞ビデオやカラオケトラックは、音節ごとのハイライトに\kタグを使用します。カラオケのバウンスタイミングを保持したまま歌詞を翻訳するのは、手動ではほぼ不可能です。各\kの持続時間はテキストの長さではなく音声に紐付いています。フォーマット対応の翻訳ツールは各\kタグの後のテキストのみを置換します。
eスポーツとライブストリームオーバーレイ
プロのeスポーツ放送では、チャットオーバーレイ、チーム名プレート、特定の位置指定とブランドカラーを持つキャスターコメンタリーにASS字幕を使用しています。多言語ストリーム用にこれらを翻訳するには、正確な画面位置と配色を保持する必要があります。
企業映像のローカライズ
モーショングラフィック字幕を使った研修ビデオやプロモーションコンテンツは、動的テキストエフェクトにASSを使用することがよくあります。海外拠点向けの翻訳では、オリジナル制作の視覚的一貫性を保つ必要があります。
ASS翻訳FAQ
翻訳後にカラオケのタイミングはずれますか?
いいえ。\kタグの値(センチ秒単位の持続時間を表す)はそのまま保持されます。音節テキストのみが変わります。翻訳された音節が元より大幅に長くなったり短くなったりした場合は、翻訳後にAegisubで微調整することをお勧めします。
翻訳されたASSファイルをSRTに変換できますか?
はい、できますが、すべてのスタイリングが失われます。SRT出力が必要な場合は、翻訳後にAegisubまたはSubtitle Editを使ってエクスポートしてください。ターゲットプラットフォームがASSをサポートしていない場合にのみ、これを行ってください。
.ssa(旧SubStation Alpha)ファイルはどうですか?
SSAファイルは完全にサポートされています。ASSファイルと同じタグ保持で処理されますが、SSAは[V4+ Styles]ではなく旧式の[V4 Styles]セクションを使用します。
ファイルサイズや行数の制限はありますか?
Doc2Langは最大30MBまたは200,000行のファイルをサポートしています。より大きなバッチ(例:シリーズ全体)の場合は、個別のエピソードファイルに分割するか、ZIPアーカイブとしてアップロードしてください。
プライバシーについては?
ファイルはHSTSを使用したHTTPS経由で転送されます。ダウンロード後すぐにファイルを削除できます。または14日後に自動的に消去されます。字幕コンテンツはAI翻訳エンジンでリアルタイムに処理され、モデルのトレーニングには使用されません。
まとめ
ASS字幕ファイルは強力ですが繊細です。アニメ、ミュージックビデオ、プロのローカライズで選ばれるフォーマットたらしめるリッチなフォーマット——スタイル、オーバーライド、カラオケタグ、レイヤー、位置指定——は、まさに汎用ツールで翻訳しようとすると壊れるものです。
Sintelの例で示したように、適切なASS対応翻訳ツールなら、位置指定された看板、カラオケタイミング、多層グローエフェクト、インラインカラー変更、複数の字幕スタイル——すべて1つのファイル内で——どれも壊すことなく処理できます。翻訳された日本語ファイルは、すべてのエフェクトがそのままの状態でVLCにきれいに読み込まれました。
映像素材:Sintel © Blender Foundation | durian.blender.org — Creative Commons Attribution 3.0
ASS字幕を翻訳する準備はできましたか?
ファイルをアップロードし、結果を無料でプレビューして、完璧にフォーマットされた翻訳を数分でダウンロード