Legenda Impacto は何をしますか?
Reels/Shorts/TikTok向けの高インパクト字幕テンプレート。ユーザーがこのテンプレートを使用して動画に字幕を付けるよう依頼した場合は、以下に従ってパラメータを再度尋ねずに適用してください。
前提条件
- Premiere Pro(2027/27.0でテスト済み、ExtendScriptを使用)およびPython 3.9+(
pip install -r requirements.txtでPillowをインストール済みであること)。 - Premiere内でExtendScriptを実行する方法:Premiere用のMCP(
execute_extendscript)または CEPファイルブリッジ — 詳細はリポジトリルートのdocs/PREMIERE-BRIDGE.mdを参照。 - フォント:Impact(Windows/macOSに付属)、オプションでAnton。フォントが見つからない場合は
CAPTION_FONT_DIRを設定。 - 単語ごとの
.mogrtパッケージ(*_WbW.mogrt)がassets/にあること — リポジトリには含まれていません(assets/LEIA-ME.md参照)。これらは「Anim Speed」/「Out Animation」コントロールとテキストフィールドを持つEssential Graphicsテンプレートです。
パラメータ(信頼できる情報源:style.json と scripts/plan_blocks.py)
- フォーマット 9:16(1080x1920)。テキストは大文字、中央揃え、
y_center0.54(中央よりやや下)。 - フォント Impact。小行 56px(白)、大行 140px、直線 76px;収まるように縮小(最小 60%)。
- ブロックは1~6単語、句読点、0.45秒以上のポーズ、または3.3秒以上の長さで区切る;単独の機能語(o, de, que...)で終わらないこと。
- ブロックタイプ:
big_below(上に小行+下に大行、デフォルト)、big_above(上に強調単語を大行)、single_big、single_small、および直線(1行、または長い場合は2行、標準サイズ、白色)。各ブロックは40%の確率で直線になり、同一タイプが最大2回連続。 - 大行に数字/金額/強調単語(
strongリスト)がある場合は赤色#F2381C、赤色は最大2回連続、4ブロック経過したら強制的に1回赤色にする。 - アニメーション:単語ごとの
.mogrt、ブロックごとにassets/内の既存ファイルからランダム選択、前回と同じものは使用しない;同じブロックの2行は同じテンプレートを使用。出力はカット(Out Animationオフ)。Anim Speed 150(ブロックが1秒未満の場合は200)。 - セーフマージン(固定ルール):テキストはPremiereのタイトルセーフ外に出ない(80%×80%=各辺10%マージン)。
make_graphics_script.py(layout_text+clamp_y;safe_margin_x/yとsafe_toleranceはstyle.json)で実装:有効幅 = 1 - 2*0.10 - 0.02 = 幅の78%(1080で842px)。収まらない行は:1)min_scale(60%)まで縮小;2) それでも収まらない場合は均等に2行(最大3行)に分割し、必要な分だけ縮小;サイズは切り捨てられるため、最も長い行でもマージンを超えない。ブロック全体も高さ10%~90%の範囲に収まる。 - 納品:ユーザーが指定したシーケンスに直接編集(コピーは作成しない)、ただしユーザーがコピーを要求した場合は除く。
手順
- プロジェクトの確認:ユーザーにどのプロジェクト/シーケンスが開いているか確認し、ターゲットシーケンスをアクティブにしておく(ExtendScriptはアクティブなシーケンスに対して動作)。
- 文字起こし:ユーザーがPremiereからJSONをエクスポート(テキスト > 文字起こし > メニュー... > エクスポート;ドキュメントフォルダに「<シーケンス名>.json」として保存)。
- 計画:
PYTHONIOENCODING=utf-8 python -I <skill>/scripts/plan_blocks.py <transcricao.json> <pasta>/blocks.json。サマリーと[確認]の単語(信頼度 < 0.75)を表示。blocks.jsonのエラー(small/bigフィールド)を修正。 - トラック:ビデオトラックを一覧表示。V1 = 動画。小行にはV2(インデックス1)、大行/直線にはV3(インデックス2)、赤色用にはすべての上に新しいトラック(現在のトラック数がインデックス)を使用。フレームを覆う古い字幕/タイトルクリップがあればオフにする。
- バッチ生成:
python -I <skill>/scripts/make_graphics_script.py blocks.json <pasta>/lote.js --tracks 1,2,<indiceVermelha> [--seed N]→lote_01.js...(各8クリップ)およびlote_clips.json。 - 実行前にマージンを確認:
python -I <skill>/scripts/check_margins.py <pasta>/lote_clips.json—fora da margem: 0(最大幅 <= 78%)である必要がある。 - 各バッチをPremiereで実行(ExtendScript、
scriptフィールド、return付きIIFE、JSON.parse/stringifyのみ)、1つずつ実行し、ok=8/8を待つ。ブリッジが不安定な場合は、各バッチの前に接続を確認。複数のバッチを同時に送らないこと(数十クリップを一度に送るとPremiereがフリーズする)。 - 赤色:赤色トラックのクリップを一覧表示し、エフェクト「RGBカラーバランス」(英語では「RGB Color Balance」)を適用(赤:242、緑:56、青:28)。各クリップに1回のみ — 再適用するとエフェクトが重複し赤色が暗くなる(再実行する場合は、赤色トラックのクリップを削除して再作成)。
- 確認:クリップのテキスト/フォント/サイズ/位置を読み戻し、
check_margins.pyを再実行;フレームエクスポートが機能する場合は3~4フレーム(赤色1つ、直線1つ、2行1つ)をエクスポート、機能しない場合はユーザーにマージンガイドを表示して確認してもらう。プロジェクトを保存。 - 納品:実行内容、疑わしい単語、および動きを確認していないことを伝える。
クイック調整
| 変更内容 | 編集箇所 |
|---|---|
| サイズ/フォント/位置 | style.json(mogrt_size_small/big/plain、mogrt_font、y_center、gap) |
| マージン | safe_margin_x/y、safe_tolerance(style.json) |
| 直線字幕の増減 | --plain-prob(デフォルト 0.4) |
| ランダム性の変更 | --seed |
| 赤色の増減、ブロックサイズ | plan_blocks.py の RULES または --config regras.json |
| テキスト修正 | blocks.json を編集しバッチを再生成 |
代替方法:透明ビデオ(Premiereが.mogrtを受け付けない場合のみ)
render_captions.py blocks.json out.mov --duration <s> --fps 30 でProRes 4444(アルファ付き、5フレームのポップイン、ネイティブの赤色、編集不可)を生成。タイムラインにインポートメディアとして配置。45秒のレンダリングに約5分かかる。
既知の制限
- アニメーションはテンプレートのタイミングに従い、各単語の発話タイミングには一致しない。
- 禁止用語("P*RRA"など)の自動検閲はなし(
blocks.jsonで編集)。 - フレーズの分割が不自然になる場合あり;実行前にブロックリストを確認すること。
.mogrtの色はスクリプトで変更不可(そのため赤色クリップにカラーエフェクトを適用)。