字幕は外国語のビデオに用いられるのはもちろん、 カラオケ、ろう者用のキャプション、語学教材(例)、国際交流(例)など、 趣味・実用・福祉・教育といった幅広い範囲で潜在的需要を持っています。
字幕作成には、 タイミング(字幕が何分何秒から何分何秒まで表示されるか決める)という時間的デザインと、 スタイリング(字幕の見栄え)という空間的デザインの2面があります。
この文書は、独学者のための「タイミング」の入門です。 古典的ツール Sub Station Alpha (「SSA」というファイル形式を生み出した大本のソフト)を使い、 普通のテキストで与えられた字幕原稿の各行に「字幕が出る時刻」「字幕が消える時刻」の2種類のタイムスタンプを打つ作業を、第一歩から説明します。説明するキーボードショートカットのほとんどは、 新しいタイミングツール Sabbu でもそのまま使えます。
スタイリングについては「SSA入門 スタイリング編」を、 より高度な内容については「字幕作成 SSA中級編」を見てください。
オリジナルの字幕作成は、それほど難しくはありません。 「字幕を作りたい」というモチベーションがあれば必ずできます。 が、モチベーションがなくても説明を斜め読みしただけで理解できるほど「超簡単」でもありません。
今回の入門は、字幕を自作したい意欲的なユーザのためのものです。 OGM動画やMKV動画は、べつに字幕がなくても成り立ちます。 また、既にタイミングがある既存の字幕データをそのまま使うのであれば、 「スタイリング編」だけで足ります。
このシリーズでは、表示が英語のソフトを使う場面が多いです。 創作字幕をやりたいというユーザは、外国語は嫌いではないはずだと思うのですが、 ともかく操作自体は難しくありませんので、英語だというだけで、おじけづかないでくださいね。
Sub Station Alpha は頭脳より体(運動神経)を使うので、 読んだだけでは分かりにくくても、やってみれば納得がいきますし、 逆に、実際にやってみなければ絶対に覚えられません。ちょっと最初は大変でしょうが、 最初だけですから、頑張ってチャレンジしてみてください。
カラオケ字幕を作って自分で(または友人・家族などで)カラオケを楽しんだり、 映画の音声部分を字幕化して友人・家族・仲間内で楽しむことは構わないでしょうが、 権利関係には十分ご注意ください。
素晴らしい内容の外国映画などを、吹き替えでなく原語の響きで味わう、味わおうと努力する、というのは立派なことです。 より深く味わうために自分でセリフのひとつひとつを吟味・翻訳してみる、さらには字幕を作ってみることも、 その作品に対する深い愛を基調とする高尚な趣味ですが、 あくまで個人的な趣味にとどめてください。 字幕版がまだない映画の字幕版を作って勝手に販売する、といった、関係者に迷惑が及ぶことは論外です。 映画の権利者が困るだけでなく、ひいては字幕を自作することそれ自体が悪いかのように言われ、 個人的な趣味で楽しんでいる人や、 耳の不自由な人のために個人的にやっているボランティアにまで迷惑が及ぶことになります。
字幕をタイムするとかタイミングというのは、字幕が何分何秒~何分何秒まで表示されるのか、 字幕出現のタイミングと、字幕消失のタイミングを決めることです。 映画は24fps、テレビやDVDは30fps(日米)ないし25fps(ヨーロッパ)ですから、 1フレームは約0.03~0.04秒です。 Sub Station Alpha は、0.01秒単位のタイミングを行います。 つまりSSAファイルは、必要とあらばフレーム単位の正確さで、 字幕をコントロールできます。
ハードサブとソフトサブ: 「ハードサブ」は画像の一部として焼き込まれている字幕、 「ソフトサブ」は再生のときに動的に合成される字幕で、 前者は絵の一部なので消せません。 後者はソフト的なデータなのでオンオフ・切り換えが可能であり、再生時に直接描画するため、 字幕テキストが鮮明です。しかし、再生時のCPU負荷が高いなどの問題もあって、 どちらも一長一短です。「サブ」(SUB)は「サブタイトル」(字幕)の略です。
SSAという略語は Sub Station Alpha というソフト、 または、そのソフトが作るファイル形式(.ssaファイル)の両方の意味で使うことがあります。 この文書内では「SSA」は常にファイル形式を意味し、Sub Station Alpha はフルネームで書きます。 SSA形式の字幕データは、Sub Station Alpha に限らず、現在では多くのソフトによっても使用されます。 VSFilter、TextSub、Subresynch、VisualSubSync、MaestroSBT、Sabbu、Medusa など。
Sub Station Alpha はデジタル字幕(デジサブ)よりもっと前のゲンロック時代のツールですが、 主にVobSub作者 Gabest によってデジサブ(デジタル字幕データ)対応されました。 デジサブ以前のVHSテープに字幕を入れていた時代と違って、 今では初心者でもほんの少しの練習で字幕を作成できる環境が整っています。
フィードバックは、掲示板にお願いします。
Sub Station Alpha でタイミング作業をするには、 タイミングの基準となる音声ファイルをWAV形式で用意する必要があります。 この項では、作業の準備として、 AC3、MPA、MP3などの他形式のフォーマットをWAV形式に変換する方法を説明します。
音声ファイルが既にWAV形式になっている場合、またはWAV形式に変換する方法を既に知っている場合は、 このセクションを飛ばして「Sub Station Alpha用WAVファイルの作成」に進んでください。
最初に変換元が AC3 の場合。AC3ファイルは、しばしば音ズレ(オフセット)の補正が必要になるので、 自信がなければ、AC3を手動で処理せず、最初からWAVファイルを使ったほうが無難。
AC3からの変換ツールとしては BeSweet が有名ですが、 ここでは foobar2000 を使います。 Special Installer でフルインストールするとAC3サポートが含まれます。 作者のページからダウンロードして、 フルインストールしてください。以下の説明は v0.8.3 ですが、バージョンアップ等で多少変わる場合があります。
インストールは簡単。インストーラを起動して「はいはい」という感じでどんどん次に進むだけ。 Next, I Agree, プルダウンリスト(デフォルトでは Normal)で Full を選ぶ, Next, Next, Install, 関連付けを選んで(All supported formats を推奨。 ほかのプレーヤーを愛用していて関連付けを壊されたくないときは自己判断で決めてください)OK, Finish, もし One-time configuration というダイアログが出たら New をクリック。
変換したいAC3ファイルを右クリック、 Enqueue in Foobar2000 でフーバーのプレイリストに加えます。 または foobar2000 を先に起動、メニューの Playlist - Add files から、目的のAC3ファイルを開きます。 プレイリストにファイルが追加されたら、そのファイルをクリックで選択後、 右クリックして Convert - Settings (デフォルトではメニューの中ほど)に進みます。 設定ダイアログが出るので、下図のように設定します。
画像の説明: Same as source file directory(変換元のファイルと同じフォルダに書き出す)にチェックを入れる。 Output presets (変換先)は WAV (PCM, fixed-point) 。 WAV の解像度は、とりあえず標準的な16ビット。 第4に「AC3が5.1チャンネルで、それをそのまま6チャンネルで動画に合体させたい場合」以外は、Use DSP にチェックを入れてください。 あとはデフォルトのままでOK。
(参考)WAVの解像度について。 各種WAVの違いについての知識は、ここでは必要ありませんが、16bitより24bitの方が高音質のデータです。 一般には、AC3からWAVに変換するときは、24bit(以上)で出力するのが理想的。 しかし16bitの方が互換性が高く、24bitよりずっと安全。 今回の作業は単に音のタイミングを参考にするだけなので、高音質にする必要ありません。 実際、すぐ後で8bitにまで落とすので、こんなところで24bitにしても無駄なだけです。 foobar2000 で変換するとき既に8ビットまで落ちしてもいいのですが、ここでも説明は「AC3を標準の16ビットWAVに変換する方法」を兼ねているので、 16にしてあります。
以上ができたら、[go to DSP settings] をクリックして、別の画面に行って次のように設定します。
画像の説明: 画面中央のActive DSPsがオンになっているフィルター、 右端のAvailable DSPsがオフになっているフィルターです。 矢印ボタンで左から右に入れればそのフィルターが使われ、 逆に左に移せばそのフィルターはオフになります。 初期状態では Volume Control だけが左の欄にありますから、 右の欄の Convert 5.1 to stereo を選択して、 <= をクリックして左の欄に追加してください。 Volome Control はオフでかまいません。
注意: 音声が5.1チャンネルでなく(実質は)ステレオの場合にも、 規格上5.1チャンネルのAC3では、Convert 5.1 to stereo が必要です。
[Close]でダイアログを閉じたら、変換したいファイルを選択して右クリック、 Convert - Run conversion で変換が始まります。プログレスバーが全部終わるまでちょっと待ちます。 これでAC3ファイルがステレオWAVになりました。
この項は、変換元がAC3でなく、Mpegである場合の説明です。
MPEG Audioレイヤー2の場合(DVD2AVIで分離された音声ファイルは拡張子.mpa)、拡張子を .mp2 に変えてから foobar2000 で開けば、上と同じように .wav や .ogg にできます。
もしくは、ぷっちでここという日本のソフトをおすすめします。 こちらは拡張子がMPAのままでWAVに変換できます。(Oggへは変換できません。)
MP3からの変換は、何も難しい点はありません。AC3とまったく同様に普通にfoobar2000 で開いて、 変換先フォーマットを選ぶだけです。
Sub Station Alpha では、 音を聞きながらキーボードとマウスを操作することで、 字幕の表示タイミングを決めます。 Sub Station Alpha には、そのためにWAVファイルを再生しながら波形を表示する機能がありますが、 このとき一般のWAVファイルは使えません。このソフトに適した特別なWAVファイルをまず作る必要があります。
もし、すでにオーディオエディタをお持ちで意味が分かるかたは、 「末尾に10分くらい無音を挿入して、8ビット・モノラルに変換」してください。 単にタイミングをとる作業用なので、変換は最低音質・最高速でかまいません。 意味が分からないかたは、以下の手順をお読みください。
ここでは、フリーのオーディオエディタAudacityを使います。 以下の説明は ver.1.2.2 の場合です。 バージョンが違うと多少変化するかもしれません。
Audacity を初回起動した場合は、 メニューの File - Preferences で設定ダイアログを出し、 Interface タブで Language を Nihongoにして OKをクリックします。 Audacity を一度終了させて、もう一度起動すると、メニューが日本語になります。
再びファイル - 設定で、次の2か所を設定します。
実は「8ビット、モノラル」に変換するだけなら foobar2000 で一気にできるのですが、 さらに「末尾無音挿入」というオーディオエディタ的操作が必要なので、 そのために Audacity を持ち出しているのです。
さきほど作った16ビットのWAVファイルを読み込み、 0秒の位置よりもっと左にある▼をクリックして、プルダウンメニューを出し、 「ステレオトラックを分離」します。
ステレオが2つのモノラルに割れるので、片方は要らないので×を押して消し、 残った一方でもう一度▼を押して「モノラル」を選びます。これでモノラルになります(ステレオの左側か右側かのどちらか一方だけを聞く状態)。
画面を横スクロールさせて、波形のいちばん右端(つまり音声の末尾)のさらに右をクリックし、 カーソル(縦棒)が後ろに出るようにします。
この状態でメニューの 制作 | 無音 を実行すると末尾に30秒無音が挿入されます(縦棒は移動しませんが、色が濃い部分が伸びる)。 10~20回くらいやって5~10分くらい末尾に無意味な無音をいっぱい入れてください。 Sub Station Alpha の波形表示にはWAVを最後までちゃんと読み込まないバグがあるので、 それを見越して最後が切れてもいいようにこうするわけです。アホなようですが、まあ、 たいした手間じゃありません。なお間違えて末尾以外の変なところに無音を挿入しないよう注意。 必ず縦棒が末尾より後にある状態でやります。
準備ができたら、メニューの「ファイル | 別名で書き出し WAV」を実行します(英語版では "Export As Wav")。 特殊作業用の低音質8ビットWAVなので、間違えて動画の音声に使ってしまわないように必ず Sub Station Alpha 用だと一目で区別がつくファイル名にしましょう。 適当なフォルダを選択したら、foo-ssa.wav のように、ファイル名を -ssa.wav で保存すれば良いでしょう。 Sub Station Alpha が選ぶのは「8ビット・モノラル」であって、サンプリングレートは48000だろうが16000だろうが、かまいません。サンプリングレートはいじる必要ありません。
foobar2000でこのWAVを再生し、プレイリストで右クリック、Show file info (下から2番目)でファイルの情報を確認。 「channels = 1」「bitspersample = 8」になっていれば正しいです。 Sub Station Alpha でWAVがちゃんと開けない二大原因のひとつはここなので、 きっちり確認しよう。正しくできていたら、Audacity はもう用済みなので閉じます。 プロジェクトを保存するか聞かれますが、要らないのでNoで終了。
いよいよ Sub Station Alpha です。/freeware/SSA から SubStationAlpha408-r4.zip をダウンロードしてください。このZIP書庫には、SSAとASSの仕様書のほか、VirtualDub / VirtualDubModで字幕を焼き込むためのTextSubプラグインが同梱されています(VobSub2.23)。Sub Station Alpha はSubForge.net にもあります。
インストール手順: 古いタイプのインストーラーなので、安全のため、一度PCを再起動して、余計なソフトが動いていない静かな状態でインストール開始。インストーラー(.exeファイル)をクリックして「はい」。 もし16ビットサブシステムについての警告が出ても「無視」して続行。 しばらく待たされてから、Welcome が出たら、あとはすべてデフォルトのまま Next, Yes, Next, Next, Next, のように進んで Finish 。スタート→プログラムに Sub Station Alpha v4.08 が追加されたことを確認してください。
このソフトはOSのロケール(地域の設定)が「日本」では正しく動作しないことがあります(起動はできるがWAVファイルを開けない)。 Windows のコントロールパネルで、 ロケールを「英語」などにしてください。 ロケール違いが、 Sub Station Alpha からWAVを開けない二大原因のもうひとつ。 しっかり頭にきざんでおこう。
コントロールパネルの「地域のオプション」の「全般」タブで、 ロケールを英語にする。 「システムの言語設定」は日本語のままで良い。
コントロールパネル(「日付、時刻、地域と言語のオプション」)の「地域と言語のオプション」の「地域オプション」タブで、 「標準と形式」および「場所」を英語にする。Windows XP では、ロケールが「日本」でも問題ないという報告もあります。
(手元に日本語版の Windows XP がないため XP の説明は実際と微妙に異なる可能性があります。)
OSのロケールを「英語」にすると、不特定多数のソフトで、一部表示が英語になる場合があります。 OSのロケールを読んで動作が変わるインストーラーもあります。 以前、OSが英語になっているままでCanopusの日本国内向けソフトをインストールしようとしたら、 正しくインストールできないことがありました。 Sub Station Alpha が日本語ロケールで正しく動作しないように、 まれですが、英語ロケールで正しく動作しない日本語ソフトもあります。
スタート→プログラム→ Sub Station Alpha v4.08 からソフトを起動。Options | Preferences で設定ダイアログを開きます。
フォントの名称が日本語(例「MSゴシック」)だとトラブルがあるので、 分からなければ常に MS UI Gothicにしてください。 日本語の字幕を作る場合、メニューの Styles | define | Edit でデフォルトスタイル(*Default)も MS UI Gothic/日本語などにしておくと良いです。 あとからスタイリングで変更して日本語のフォント名も通るので、ここのはとりあえずの仮設定。
File | Open でファイルの種類を Plain Text にして、一行ごとに改行してあるテキストを読み込みます。
次の例は、ウェブ上にあったテキストを、 単にそのままコピペで保存しただけです。 最も単純な例です。日本語の場合、とりあえずSJISで行ってください。 曲のほうもサンプルが新居昭乃さんのページにあります。 Real Audio ですが、Real Player がインストールされていれば、Media Player Classic (MPC) で大丈夫です。
人間の子供 作詞:新居昭乃 作曲:新居昭乃 編曲:菅野よう子 声をたてないでね あなたを助けに来たの 教室の誰にも 私が見えてないのよ 帰り道が怖いのね またぶたれるから 他の道を行きましょう 誰の都合でもない ...
Sub Station Alpha の使い方を覚えたいかたは、ご自分で短いサンプルを用意して、実際にやってみてください。 メモ帳などに一行ずつタイプしてtxtファイルとして名前を付けて保存、 それを Sub Station Alpha から開きます。 練習なので日本語の番組に日本語で字幕をつけるようなことでも、かまいません。 いっけん無意味なようですが、耳が不自由な人にはクローズドキャプションが役立ちます。 ――その場合、本当は、会話だけでなく、物音も「(電話が鳴る)」などと描写するのです。――
SSAで読み込むと空行は無視され、1行ごとに別のデータとして読み込まれます。表示上、 文字化け(末尾切れ)もありますが、あまり気にしないでください。
最初にやるべきことは、コメント行があればコメントアウトすることです。 この例では、最初の2行(「人間の子供」と「作詞:……」)は字幕データではないので、 コメントアウトします。 行をクリック選択したら、ソフト上部でDではなく#のボタンを押し下げ、フラグをコメント(#印)に変えます。 これをやらないとトラブルの原因になります。
次に覚えるべきことは、ちょっと何かしたらF2を押すということ。 最初にF2を押すと、Script credit というダイアログが出ますがぜんぶ空欄のままOKでかまいません。 そして名前を付けてSSA形式で保存します。2回め以降はF2を押すたびに上書き保存されます。 タイミングというのは場合によって手間がかかることです。 例えば、2時間映画をタイムして終わりかけたところでOSがフリーズしてデータが失われたりしたら、 しゃれにならないので、 10行くらいタイムするごとにF2を押してこまめに保存しよう。
メニューの Timing | Time from WAV file にチェックを入れ、 画面上部に現れる Open ボタンをクリックして、さきほど作った Sub Station Alpha 用WAVを読み込みます。 Preview/Grid sizeの▲▼ボタン、y-scale、zoomを適当に設定して波形がいちばん見やすい状態にします。 以下の操作を何度か試行錯誤するうちに、自分のやりやすいサイズが分かると思います。
右手はマウスを握り、左手はキーボードのホームポジション(人差し指がFのポッチの上)にします。 とりあえずPlayをクリックしたらWAVの再生が始まるので、マウスのホイールボタンかFキー(左手の人差し指)でいま再生している波形の部分を常に追いかけてください。再生中に左手薬指Sを押すと、再生が止まります。
いま3行めの「声をたてないでね」をタイムするとして、「声を」のコがどこで鳴るかよく波形を見ていて、 「声をたてないで……」と聞こえたらSを押して再生を止め、見ていたから分かるはずの出だしの波形の直前で左クリックします。「スタートライン」の黄色い線が出ます。
次にどこで「たてないでね」の「ね」が終わるか適当に見当をつけて、このへんだろうという波形の部分で右クリックして「エンドライン」の赤い線を出します。
S(左手の薬指)を押すといま選択した黄色~赤の範囲が再生されます。 D(左手の中指)を押すと選択部分の最後の0.5秒が聞こえます。 これらによって、もし勘が外れていたら左クリック、右クリックをしなおして、 タイミングを正しくします。
慣れるまでは、無理に速くやろうとせず、急がばまわれで、よく確認してください。 S(左手薬指)を押すと選択区間が再生されるので、何度か聞いて納得がいったら、左手の人差し指をずらしてGを押します。 これでタイミングが確定して次の行のタイムに進みます。Gは、押すとその行のタイミングが確定する重要なキーです。
間違えたタイミングのままGで確定させてしまったら、選択行はすでに次の行になっているので、 もとの間違えた行をクリックで再選択して[Play Row]してから、修正してください。
左手の人差し指と薬指をSとFに置いて、右手はマウスを握って、マウスの左右のボタンを使い、あまり考え込まずに、テンポ良くさらっとタイムしましょう。 左手のキーボード操作と同等のことを、マウスによるクリックでもできますが、それは動きに無駄があり、時間もかかるし目も手も疲れます。マウスカーソルは波形の黒いエリアから出さずに、横の動きでタイミングの目印だけに使い、タイム処理は左手からキーボードでやるのが「プロ」のやり方です。
Playで再生して……と説明しましたが、実際には、慣れると波形だけ見て出だしと終わりの見当がつくので、ぜんぶ再生する必要ありません。この曲は最初に10秒くらい前奏があるな、と分かっていれば、そこはホイールかFで飛ばしてしまい、 「このあたりだろう」という場所で試しに左クリック、右クリック、Sで聞いてみて、 それをもとに修正していけばうまくいきます。したがって2分の曲を2分より速くタイムできます。30分アニメを30分かけずにタイムできます。 ほかのカラオケツールであるような「曲を流しっぱなしにして、歌詞の行頭と行末でEnterを押す」といった行き当たりばったりのタイミング法ではタイミングがずれてもよく分かりませんが、 Sub Station Alpha ではSとDで納得いくまで確認できますし、声がない場所は飛ばせるので合理的かつ最速。 (各行のタイミングを確認したい場合も、いちばん上を選択してから [Play Next] で進めば、 声があるところだけを拾って再生するため、効率的に確認できます。)
やってみればそんなに難しくないので、何度かやってみてください。 慣れるまではSを使って着実に確認すると良いでしょう。 慣れたら、 「出だしが正しくタイムできたら、あとはSしなくてもDでエンドだけ決めればいい」という考えでやると良いです。
WAVを再生中にでも右クリック、左クリックで黄色線と赤線を動かせます。 再生しながら同時にタイミングを微調整できます。
左手人差し指をFでなくGの上に置きっぱなしにしてもかまいません。
現段階では、ここで説明しただけのことで間に合いますが、 中級編のセクション1「効率的なタイミングの手順」以下で、 速く的確なタイミングをするコツを説明します。
慣れてきたら、次のようなことも考えてみてください。(初めての場合は、あまり気にしすぎないでください。)
要するに、字幕が出るのは声より気持ち早め、字幕が消えるのは声が消えるのと同時くらい、ってことです。 この問題は意外と奥が深いです。現段階では、ここで説明したことだけで十分ですが、 中級編のセクション3「音声と字幕のタイミング」以下でさらに解説します。
このテストエンコードは、どうしても必要な作業ではありません。 本来なら、タイミングの後にはスタイリング作業に進みます。 しかし、ここではタイミングの確認のため、字幕を動画に焼き込み、 結果を今すぐ目に見えるようにします。
そのために必要な最低限度のSSA編集と、 プラグインの使い方を説明します。
ここで確認しようとしているのは、フォントカラーなどの字幕の表示スタイルではなく、 時間的な表示のタイミングです。
タイミングがひととおり終わったら、いま作ったSSAファイルをメモ帳などのエディタで開いてみましょう。 まずヘッダです。
[Script Info] ; This is a Sub Station Alpha v4 script. ; For Sub Station Alpha info and downloads, ; go to http://www.eswat.demon.co.uk/ ; or email kotus@eswat.demon.co.uk Title: <untitled> Original Script: <unknown> ScriptType: v4.00 Collisions: Normal PlayResY: 1024 PlayDepth: 0 Wav: 0, 3555,S:\test\001 10 人間の子供-ssa.wav LastWav: 1 Timer: 100.0000
このうち重要なのは、PlayResYの行です。 ここの数値を実際の動画の縦解像度に変えます。640x480の場合、PlayResY は480になります。 またPlayResXという行をその上に自分で追加して、 640なら640と明示しましょう。WavとLastWavの行はSub Station Alpha にとってのみ意味があり、 タイミング終了後には削除してもかまいません。SSAが正しく開けなくなったら、 ここに問題がある場合もありますから、削除してみてください。以下が修正例。
[Script Info] ; This is a Sub Station Alpha v4 script. ; For Sub Station Alpha info and downloads, ; go to http://www.eswat.demon.co.uk/ ; or email kotus@eswat.demon.co.uk Title: <untitled> Original Script: <unknown> ScriptType: v4.00 Collisions: Normal PlayResX: 640 PlayResY: 480 PlayDepth: 0 Timer: 100.0000
次に[V4 Styles]セクションを見てください。
Style: Default,MS UI Gothic,20,65535,65535,65535,-2147483640,-1,0,1,3,0,2,30,30,30,0,128
例えば、このようになっていると思います。 スタイリング編で詳しく説明しますが、 カンマ区切りの最初がスタイル名、2番めがフォント名、3番目がフォントサイズ、あと色とか。 末尾の128がコーディングで128はSJISです。プラグイン等で日本語が正しく表示されない場合、 末尾が間違えて0(西欧語)になってないか確認してください。
さらに [Events] セクションを見て、日本語の文字化けが起きていないか確認します。 日本語環境だけで作業するぶんにはあまり問題がないのですが、 字幕は言語圏をまたがる作業のため何かと文字化けしやすいので、 念のため……。 日本語が読めない人と共同作業するとき、その人は文字化けが起きていてもまったく区別が付かないので、 必ずあなたが責任持ってチェックするようにします。
[Events] Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Comment: Marked=0,0:00:00.00,0:00:00.00,*Default,,0000,0000,0000,,人間の子供 Comment: Marked=0,0:00:00.00,0:00:00.00,*Default,,0000,0000,0000,,作詞:新居昭乃 作曲:新居昭乃 編曲:菅野よう子 Dialogue: Marked=0,0:00:18.46,0:00:21.28,*Default,,0000,0000,0000,,声をたてないでね Dialogue: Marked=0,0:00:21.91,0:00:27.08,*Default,,0000,0000,0000,,あなたを助けに来たの Dialogue: Marked=0,0:00:27.52,0:00:30.32,*Default,,0000,0000,0000,,教室の誰にも Dialogue: Marked=0,0:00:30.83,0:00:35.55,*Default,,0000,0000,0000,,私が見えてないのよ
ごらんのように、Stylesヘッダで「Default」という名前で定義されるスタイルは、 Eventsセクションでは「*Default」として、*がついて参照されています。 他のスタイル名では、呼び出しに*は要りません(スタイル名が例えばSongならスタイルを呼び出すときもSong、 KaraokeならKaraokeで良い)。Defaultの場合だけ、本家SSAでは、呼び出し側で、*Defaultのように*がつきます。 デフォルトの場合だけが、かえって例外的になっています。 いくつかのSSAパーサは、この例外規定を守りません。 あとあと無用なトラブルを避けるため、Defaultというスタイル名は使わないほうがぶなんです。 エディタの一括置換などの機能で、*Defaultをすべてほかの名前に変えてください。 それに対応してスタイル定義も名前を変える必要があります(下にある字幕データの全行と、 上にあるヘッダのスタイル定義の両方を同じように変える)。
Style: Song,MS UI Gothic,20,65535,65535,65535,-2147483640,-1,0,1,3,0,2,30,30,30,0,128
Textsubプラグインには、この問題はないため、 ハードサブでは、*のついた「*Default」のままでもかまいません。
SSA字幕のデータを(スタイリングは暫定的なままで)とりあえず動画に焼き込んでみる作業です。
まだ TextSub がインストールされていないなら、 インストールする必要があります。 SubStation Alphaの書庫に同梱しておいた VobSub_2.23.exe をクリックして、 TextSub for VirtualDub... をインストールします。(VobSub_2.23.exe 単体)
VobSub 2.23 内の VobSub for DirectShow は現在の VSFilter の旧版にあたります。 VSFilter をインストール済みの場合、これを入れると古いバージョンで上書きする形になり、 MKV などの最新機能が利用できなくなるので注意。したがって、そのチェックは外します。 (間違ってインストールしても、新しい VSFilter を含むパックをインストールすれば、新しいバージョンで上書きされ、 元に戻ります。)
インストーラの「 Chose Install Location 」はデフォルトのままでかまいません。 TextSub プラグインを初導入するときは、前半のインストールが終わったあとで、 VirtualDub (または VirtualDubMod )の実行ファイルがあるフォルダを尋ねられますので、 そのとき、VirtualDub(Mod).exe のあるフォルダを指定してください。(VirtualDub(Mod).exe のあるフォルダに、 plugins というサブフォルダが存在する必要があります。通常はデフォルトで最初から存在します。)
指定したフォルダ内の plugins にインストールされます。 VD と VDM を両方使う場合(またはバージョン違いなどを複数使う場合)、どれかひとつにインストールしたら、 後は普通に plugins フォルダにコピーしまわすことで、使えます。
環境によってこのインストーラは完了しても閉じません。 インストール自体は正常に完了していますから、タスクマネージャから VobSub_2.23.exe を見つけて終了するか、 またはOSを再起動しておけば問題ありません。
VDMでビデオをオープンしてください。 もともと絵がない「曲」の場合、 音声とのタイミングだけチェックしたいなら、 映像は適当なAVIファイルでもかまいません。
ハードサブを入れるときは動画を再圧縮しないといけないので、Direct stream copy ではだめで、 Full procession mode です(ハードサブが画質が悪いことの一因)。
VideoメニューでFull procession modeが選択されているのを確認してから、Video | Filters メニューに進み、Add をクリックして、下から3番目くらいにあるはずの TextSub 2.23 の上でダブルクリック。TextSub settings というダイアログが出たら Open をクリックして、さきほど作ったSSAファイルを指定します。2回OKを押してダイアログを全部閉じます。
次に Options メニューの Swap input/output panes にチェックを入れ、処理後の絵が左に出るようにします。 この状態で右矢印で早送りすると、タイミング通りに字幕が出るはずです。
PlayResX, PlayResY の指定が間違っていると文字が異常に小さく見えるので注意。
音声は、タイミングに使ったWAVのおおもとのAC3か、またはそれをOgg Vorbisなどで再圧縮したものを、 Stream List に入れます。 Video | compression から XviD MPEG-4 Codec を選び、 [Configure] [Load Default] で 1-pass quality のデフォルト(85)にします。OK、OKで閉じて、 [F7] を押し、(音声がOgg Vorbisなら)OGMまたはMKVで書き出しましょう。
歌の歌詞につれて気持ちよく字幕が出ましたか。まだカラオケは指定していないので字幕の色は変わりませんが、 これでも初めてだとけっこう達成感があるのでは? 好きな曲や映画なんかで、やってみよう。
SSAファイルは、もともと Sub Station Alpha というプログラムが自分自身で使うためのアプリケーション・データでしたが、 今では他のいろいろなアプリケーションが、このSSA形式を独自に処理できます。 VirtualDubのプラグインで言えば、TextSub と Subtitler がSSAファイルを処理できますが、 それぞれSSA形式を独自に拡張しています。
TextSubを含むVobSub系(作者はハンガリーのGabest)は、 本家SSAの仕様を大幅に拡張・修正し、極めて強力な表現力を与えました。 その結果が、SSAをベースとする拡張フォーマット Advanced SSA (.ass)です。 ASSはSSAと異なるフォーマットですが、ASSで使える独自タグをそのままSSAに埋め込むことは可能です。 現在、一般にSSAファイルと言われているものは、実はこのような「ASSタグを含むことのできるSSA」です。 もしくはASSを含めて、広い意味でSSAと言うこともあります。 SSAファイルには、本家SSAのリファレンスには書いてないASSタグが含まれている可能性があるのです。
Matroska や OGM のソフトサブを処理する VSFilter は同じ Gabest が作ったものなので、 ASSタグを含むSSAや、ASSそのものを問題なく処理できます。 例えば、MKV動画では、SSAだけでなくASSをMUXすることも可能です。
初期設定でデフォルトのタイミングを全部0にしたので、タイミングを設定しないで放っておけば、 その行の表示は「0:00:00から0:00:00までの0秒間」という扱いになり、 TextSubプラグインでハードサブで焼くときは、その行は無視されます。
けれど「持続時間が0.000秒の字幕は非表示扱い」というのは、 TextSubプラグインという特定のプラグインに依存する動作であって、 パーサによっては、字幕データが1フレーム未満の場合、1フレームに切り上げる可能性があります。 「表示時間がゼロの字幕」というのは、どう取り扱ったらいいかハッキリしない、あいまいなデータなので、 安全のためにも避けるべき。
実際、例えば、mkvmerge の 0.9.5 くらいまでは、持続時間ゼロの字幕の扱いが不安定でした。 さらに、USF(つまりXML)に変換することを考えると「コメント」と「字幕」はやはり論理的に違うものなので、 区別したほうが無難。
以下2004年3月のメモですが、 2005年4月の Sabbu 0.2 リリースで状況が変わりました。 日本語のスクリプト表示に難があったり、全体に完成度は低いものの、 Sub Station Alpha の後継として最も有望なのは、Sabbu です(2005年6月現在)。
現時点では本家 Sub Station Alpha の左手三本指が最強だが、 このソフトはさすがに古い。WAVに関する制限やバグ回避も面倒だ。VSSを初めとする後継・新ソフトの開発状況は……
バージョンアップが終了したTextSubプラグインではなく、 その後継のVSFilterを直接使うことも可能です。 この方法なら、Fast Compressionでハードサブできるので、 エンコード速度の向上が期待できます。 その代わり、SSAの変更が即時には反映されず、 AVSを読み直さないと反映されません。したがって、細かいスタイリング作業には不向きです。 さらに、VSFilter 2.33現在、いろいろな不具合があることが分かっているため(例えばAvisynth Development > textsub: a bug?参照)、高品質の(またはある程度以上複雑な)字幕の作成には使わないでください。 AVSについて既に知っている読者のために、参考として、以下にスクリプト例を示します。
# VSFilter をロード LoadPlugin("C:\Program Files\LD-Anime\MKV\VSFilter.dll") # ソースをロード Avisource("R:\test\huffyuv.avi") # 字幕を足す TextSub("R:\test\subtitle.ssa")