字幕の表示位置を変更
字幕テキストを貼り付けることもできます
オプション
9つの既定位置と、位置指定の削除です。書き込むのは数値キーパッド順の {\anN} で、7/8/9 が上段、4/5/6 が中段、1/2/3 が下段です。各字幕ブロックの1行目の前に置きます。ASS と SSA は実際の配置コードとして読み戻し、SRT では libass、VLC、mpv が解釈し、単純なプレーヤーはそのまま文字として表示します。既存の \pos 座標には触れません。最後の選択肢を選ぶと、位置指定を追加せずに削除します。
このページは、字幕ファイルのすべての字幕を画面上の 9 つの位置のどれかへ移すか、すでに位置指定のあるファイルから位置マーカーを外します。各字幕の最初の行の先頭に `{\anN}` という配置コードを書き、N はテンキーと同じようにマス目を数えます。上段が左から `7` `8` `9`、中段が `4` `5` `6`、下段が `1` `2` `3` です。この並びは読み順ではなく、このページの例が 1 つずつあるのは、左上を選んだつもりで左下になる事故を起こせなくするためです。
このマーカーは 3 つの形式が一致して認める唯一の配置です。ASS と SSA では正規の上書きコードで、字幕の独自フィールドとして読み戻され、`\pos` の後ろに定められた順序で書き出されます。ASS の外に出ないファイルは往復で正確に保たれます。SRT には配置の構文がまったくないため、マーカーは行の先頭にリテラルのテキストとして書かれます。VLC や mpv のような libass 系のプレーヤーはこれを尊重し、知らないプレーヤーは 4 文字を画面に表示します。このページは保証できない配置を約束せず、そのことを率直に書きます。
位置は字幕全体の性質として扱うので、字幕が 2 行でも 3 行でも、マーカーは最初の行の前だけに入ります。既存の `\pos(x,y)` はそのままにします。ピクセル座標は字幕を 1 つの画面サイズに固定し、ほかのすべてで崩れますが、配置コードならプレーヤーが自分で位置を計算できます。手で位置を決めた字幕を動かすのは、このページに頼まれたことではありません。
位置の一覧で「削除」を選ぶのは 10 番目の位置ではなく、実際の指示です。すべての字幕から先頭のマーカーと保存された配置を外します。SRT を素のマーカーなしの形に戻す唯一の方法です。行の途中に書かれたマーカーはそのまま残します。それは配置ではなくセリフだからです。どこにもアップロードされず、タイムコードには触れません。
例
2 つの素の SRT 字幕を上中央へ
入力
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
出力
1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.
2
00:00:03,000 --> 00:00:04,000
{\an8}Second line.
`\an8` は上中央のマスで、テンキーの上段の真ん中のキーです。マーカーは独立した行ではなくテキストの先頭に入り、タイムコード、字幕番号、空行はそのままなので、字幕ごとに 4 文字が増えただけの有効な SRT です。
同じファイルを左上と左下へ
入力
1
00:00:01,000 --> 00:00:02,000
Hello there.
出力
1
00:00:01,000 --> 00:00:02,000
{\an7}Hello there.
左上は `7`、左下は `1` で、6 つ離れています。番号が読み順ではなくテンキーに従うからです。手作業で最も間違えやすい対応で、このページの 9 つのプリセットすべてに例があるのはそのためです。数字が 1 つ入れ替わっても、誰かが映像を見るまで見えないからです。
すでに左上にある ASS 字幕を移す
入力
[Script Info]
ScriptType: v4.00+
[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
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an7\i1}Hello there{\i0}
出力
[Script Info]
ScriptType: v4.00+
[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
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an2}{\i1}Hello there{\i0}
古い `\an7` が消されてから `\an2` が書かれるので、字幕が持つ配置は 1 つだけです。重複するとプレーヤーは後から来たほうを採り、それはこの実行の誰も選んでいない値になります。斜体の対は元の位置に残ります。ASS ではマーカーは本物の上書きコードなので、画面上にテキストとして現れるものはありません。
2 種類のマーカーを持つファイルから外す
入力
1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.
2
00:00:03,000 --> 00:00:04,000
{\an2}Second line.
出力
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
「削除」は選んだプリセットだけでなく、そこにあったものをすべて外し、何も書き戻しません。この実行から出たファイルはプレーヤー自身の既定の位置で再生され、それが要点です。位置はマーカーの不在としてしか表現されないため、マーカーから素のテキストへ戻る唯一の方法です。
よくある質問
`{\an1}` は画面のどの位置で、なぜ左上から始まらないのですか?
`1` は左下です。9 つの値はテンキーに従います。`7` `8` `9` が上段、`4` `5` `6` が中段、`1` `2` `3` が下段です。左上が `7`、中央が `5`、右下が `3` になります。このページの位置一覧は読み順で書かれ、これらの番号に翻訳されるので、マーカーを手で編集する代わりに使うべき主な理由がそこにあります。
WebVTT、SAMI、TTML のファイルでも機能しますか?
機能しません。受け付ける形式が SRT、ASS、SSA だけなのは意図的です。WebVTT と TTML には独自の配置構文(`line:` や `align:` のようなキューの設定、`tts:` 属性)があり、このページはそれを書きません。受け付けると、ファイルは変わらないのに位置の変更を報告する実行になってしまいます。JSON も同じ理由で除外します。位置のフィールドが 9 つのマスではなく 5 つの水平値だからです。
SRT ファイルでマーカーはテキストとして見えますか?
プレーヤー次第で、このページには変えられません。SRT には配置の構文がないため、`{\an8}` は行の先頭の普通の文字として保存されます。libass 系のプレーヤー(VLC や mpv など)は配置の指示として読み、字幕をその位置に置きます。単純なプレーヤーはテキストとして扱い、4 文字を画面に表示します。どの機器でも配置を保証する必要があるなら、字幕を映像に焼き込む必要があり、それは字幕ファイルのできることの外です。
既存の `\pos(x,y)` は新しい位置で上書きされますか?
上書きされません。`\pos` はそのまま残します。ピクセル座標と配置コードは別の指示です。`\an` はプレーヤーにその画面に合わせて位置を計算させるもので、`\pos` は字幕を 1 つの解像度の 1 点に固定します。手で置いた `\pos` を外すのは意図した作業を打ち消すことになるので、このページは配置だけを書き、消すのは以前の配置だけで、座標には触れません。
字幕が 2 行のとき、各行にマーカーが付きますか?
付くのは最初の行だけです。位置は行ではなく字幕に属するからです。すべての行にマーカーを付けるのはせいぜい冗長で、ASS では最初と同じことをする 2 つ目の上書きブロックになります。マーカーを外すときも同じ規則が逆向きに働きます。最初の行の先頭にあるマーカーだけが外され、文の途中に書かれたものはセリフの一部として扱われます。
同じ位置を 2 回適用するとどうなりますか?
何も起きません。2 回目の実行はバイト単位で同じファイルを作り、変更された字幕がないことを報告します。このページは新しいマーカーを書く前に既存のマーカーを消すので、すでに持っているプリセットを再適用すると同じ 4 文字を外して付け直すだけです。レビューのループを回るファイルで重要です。位置が適用されたことを確かめるためにもう一度実行しても何もずれず、ダウンロードは静かに何かが違うコピーではなく同じファイルです。