アニメ K-04AI制作での運用
字幕ファイル(WebVTT)の作り方
別名: WebVTT、.vtt、字幕トラック
W3C の WebVTT 形式で、字幕の時刻・位置・話者を書いたテキストファイルを作り、Web の動画に重ねて表示する。
どういう技法か
WebVTT は、Web の動画に字幕などを付けるための W3C の形式である。ファイルは UTF-8 のテキストで、先頭に WEBVTT と書き、字幕ごとに「開始時刻 --> 終了時刻」と本文を並べる。時刻の後に line・position・align・size などの設定を書くと表示位置を変えられ、本文に <v 話者名> のタグを付けると話者を示せる。NOTE で始まる行は表示されないコメントになる。HTML の <track kind="subtitles" srclang="ja"> で動画に読み込む。
なぜ効くのか
字幕を映像に焼き込まず別ファイルにすると、閲覧者が表示・非表示を選べ、文字の大きさも端末の設定で変えられるため、アクセシビリティが高まる。文字を後から直すときも映像を作り直す必要がない。話者タグや位置の設定を使うと、誰の台詞かが分かりやすくなり、顔や重要な絵を字幕で隠すことも避けられる。字幕を他の言語に差し替えることも容易になる。
やり方
- ファイルを UTF-8 で作り、1行目に WEBVTT と書く
- 字幕ごとに空行で区切り、「00:00:01.000 --> 00:00:03.500」の形で時刻を書く
- 本文は1行13字前後、2行以内に収めて読みやすくする
- 話者は <v 名前> で示し、必要なら CSS の ::cue で色を変える
- 顔が下にあるカットでは line の設定で字幕を上に移す
- <track> で読み込み、実際のブラウザで表示を確認する
使いどころ
Web で公開する動画すべて。多言語の字幕を用意する場合も、言語ごとにファイルを分けて使える。字幕を映像に焼き込まないことで、後からの誤字修正や表現の見直しにも素早く対応できる。
やりすぎ・失敗
時刻の書式を間違える(ミリ秒の区切りにカンマを使うなど)と表示されない。字幕同士の時刻が重なると、二つ同時に出て読みにくい。空行を二つ続けると区切りが崩れる。UTF-8以外の文字コードで保存すると文字化けする。
AIアニメでの使い方
fantasist.org では、build_motion_comic.py が台本の時刻から WebVTT を書き出す。読み上げ台本(narration.ja.json)と字幕の時刻を同じ元データから作ると、ずれが生じない。語りと台詞は <v 語り> などの話者タグで分け、ページの CSS で語りだけ色や斜体を変える。完成後は、字幕だけを見て物語が分かるかを確認する。
この技法を使ったAIアニメ
- 境界の従者 第1話「守られすぎた当主」字幕(全16件)
使った理由: 映像が無音なので、台詞と語りを字幕ファイルにして、プレイヤーの字幕として出すため。
- 辺境の鑑定士 第1話「錆びた剣の値打ち」字幕(全16件)
使った理由: 映像が無音なので、台詞と語りを字幕ファイルにして、プレイヤーの字幕として出すため。
出典
- WebVTT: The Web Video Text Tracks Format
WEBVTTヘッダ、時刻の書式、line/position/align、<v>話者タグ
- Web Video Text Tracks Format (WebVTT)
UTF-8、NOTEコメント、キュー設定、改行の扱いの実例
- WebVTT API
<track kind="subtitles" srclang> と ::cue による装飾