layer-localization について
layer-localizationは、動画や画像の多言語版を制作するチーム向けのLayerスキルです。吹き替え、字幕の焼き込み、画像内テキストの置き換えを扱い、各言語版は承認済みのマスターから作成します。
主な機能
- 01動画の吹き替えと音声合成
- 02動画への字幕焼き込み
- 03画像内テキストの置き換え
- 04文字のない画像への言語別文字組み
- 05言語と素材の出力マトリクス作成
活用シーン
- 01予告動画の多言語吹き替え
- 02言語別動画への字幕焼き込み
- 03ポスターやエンドカードの文字のローカライズ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-localizationインストール後、Claude Code で/layer-localizationを入力して読み込まれたか確認します。
詳細
Layer のローカライズ
概要
ローカライズでは、1つのマスターから言語のリストに基づいて各言語版を作成します。各言語版は、承認済みのマスターを基に作成し、別の言語版を基にしてはいけません。フランス語版から作成したドイツ語版には、フランス語版の不備が引き継がれてしまいます。
Layer は、アセットの3つのレイヤーに対応します。
- 音声:既存の動画に吹き替えを追加するか、翻訳済みのスクリプトを音声合成で読み上げます。
- 字幕:字幕を動画に焼き込みます。
- 画像内のテキスト:アート内の単語を置き換えるか、言語ごとにクリーンプレートに文字を配置します。
生成の仕組み、見積もりの承認ゲート、ポーリングについては、layer スキルを参照してください。文字組みを正確に指定する場合は layer-typography、完成した動画のカット編集には layer-video-timeline を使用します。
ここで名前が挙がっている兄弟スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください(npx skills add layerai/skills --skill <name>)。ユーザーの応答を待たずに進める場合は、ツールのスキーマに基づいて作業し、利用できないスキルがあることを明記してください。
クイックリファレンス
| ジョブ | ルート |
|---|---|
| 音声付き動画を吹き替える | use_case: "dub_video"、target_language はモデルの dub_languages から選択 |
| 翻訳済みの文章から新しいナレーションを作成する | use_case: "text_to_speech"、speech_language は speech_languages から選択 |
| 字幕を焼き込む | use_case: "video_subtitle"、subtitle_preset は subtitle_presets から選択 |
| 画像に埋め込まれた単語を変更する | use_case: "edit_text" |
| クリーンなアートに言語ごとの正確なテキストを配置する | render_text、続いて compose_image(layer-typography) |
最後のルートを除き、各ルートは list_base_models のフィルターです。最後のルートでは、Creative Units を消費しない決定的なツールを2つ使用します。最初に実行する前に、選択したモデルで get_base_model を実行してください。言語リスト、プリセット、以下で説明する動作は、モデルの機能に記載されています。
最初にマトリクスを作成する
実行前に、アセットと言語を整理して書き出してください。各マスターの file_id、各言語のコード、各出力の file_id を記入する空欄を含めます。言語コードは ISO 639-1 コード(de、ja、pt)で、表すのは言語であり市場ではありません。ユーザーが欧州ポルトガル語ではなくブラジルポルトガル語を必要としている場合は、コードだけでは区別できない可能性があることを伝え、モデルのリストを確認してください。
ユーザーまたはローカライズベンダーから承認済みの翻訳を入手してください。ご自身でコピーを翻訳する場合は、レビュー用の草案であることを明記してください。ストアのコピー、法的文言、キャラクター名はユーザーが決定する事項です。
最初の実行前にマトリクス全体の料金を見積もり、合計に対して 20 CU の承認ゲートを適用してください。料金の算出ではファイルを読み込むため、見積もりには各ソースを渡してください。音声合成は文字数単位で料金が発生するため、各言語のスクリプトを個別に見積もります。2つの言語で料金が分かれるか判断できない場合は、言語ごとに1回ずつ見積もりを実行してください。
音声
吹き替えでは元の演技を維持し、言語を変更します。吹き替えモデルでは target_language が必須で、dub_languages にあるコードを指定する必要があります。吹き替えモデルは、音声品質より重要な違いが1つあります。
- 映像と長さをまったく変えないモデルもあります。既存の編集、タイムライン、または長さが固定された広告枠に吹き替えを重ねる場合は、こちらを選んでください。
- それ以外のモデルでは、リップシンクをやり直すため、新しい言語の話すペースに合わせてクリップが長くなったり短くなったりする場合があります。画面に映るプレゼンターにはこちらを選び、長さを維持しなければならないクリップには使用しないでください。
ツールのスキーマでは、前者の動作に ElevenLabs Dubbing、後者に HeyGen モデルが現在割り当てられています。カタログは変更されるため、get_base_model で確認してください。
テキスト読み上げは、翻訳済みの台本から新たにナレーションを作る場合に適しています。speech_language を未設定にすると、モデルがテキストから言語を推測します。文が短い場合や、名前や外来語が多い場合は指定してください。これらは、モデルが誤った言語で読み上げやすいものです。text_normalization は数字や日付の読み方を制御しますが、その読み方は言語によって異なります。キャンペーンの途中でキャラクターの声が変わらないよう、各言語のセリフ全体で同じ音声の選択肢を使ってください。
翻訳後の音声は長くなります。ドイツ語やフランス語のセリフは英語より長くなることが多く、15秒の枠を延長することはできません。話す速度ではなく、セリフを短くしてください。速度を少し上げるのは問題ありませんが、詰め込んだ読み上げは避けてください。
字幕
use_case: "video_subtitle" で絞り込んでください。subtitle_preset には、モデルの subtitle_presets にある名前を正確に指定してください。それ以外の名前はデフォルトのスタイルで見積もられ、起動時に拒否されます。subtitle_dynamic_presets に記載されたプリセットは単語ごとにアニメーションし、料金も高くなるため、見積もりにも同じプリセットを指定してください。subtitle_alignment、subtitle_color、subtitle_secondary_color が適用されるのは、モデルの機能情報に記載されている場合のみです。スキーマには字幕テキストを指定する欄がないため、マスターではなく各言語の吹き替えに字幕を付けてください。また、get_base_model で、そのモデルが該当言語の字幕に対応していることを確認してください。吹き替えや字幕の処理では、モデルの get_base_model が示すガイダンス欄にソース動画を添付してください。指定欄を決めつけないでください。
字幕を焼き込む場合、言語ごとにファイルが1つ作られるため、マスターには字幕を付けずに残してください。画面下部にCTA、ゲームのUI、またはローワーサードのタイトルがある場合は、字幕を画面上部に移動してください。
画像内のテキスト
最も低コストでローカライズする方法は、文字を入れずにアートを作ることです。文字のないマスターを生成し、render_text と compose_image で各言語の文字を配置してください。
エンドカードなど、動画のフレームに焼き込まれた文字は画像ツールでは対応できません。まず文字のないエンドカードを依頼してください。それができない場合は、render_video_timeline の編集(layer-video-timeline)でエンドカードの区間を覆います。古い文字の上に画像または単色のアイテムを重ね、font_file_id を指定して、その言語のフォントでテキストアイテムを配置してください。
- 文字体系への対応。 ラテン文字のブランドフォントは、通常、CJK、キリル文字、タイ文字、アラビア文字のグリフに対応していません。対応するグリフがない場合、空の四角として表示されます。その文字体系に対応するフォントファミリーを選び(
font_familyでは Google Fonts のフォントファミリー名を使用できます)、すべてのレンダリング結果を確認してください。 - 文字方向と字形処理。 右から左に書く文字体系や、文字がつながる文字体系では、文字が正しくつながり、正しい方向に並んでいることを目視で確認してください。正しく表示されない場合は、そのまま納品せず報告してください。
- 文字数の増加。 最も長い言語に合わせてテキストボックスのサイズを決め、すべての言語を同じボックスにレンダリングしてください。
render_textが必要なサイズを理由にテキストを拒否する場合は、テキストを短くするか、セット全体でfont_sizeを一貫して小さくしてください。特定の市場向けのタイトルだけが明らかに小さくならないようにします。
文字がすでに焼き込まれている場合は、置き換える文字列を正確に引用して、マスターに edit_text モデルを実行してください。一文字ずつ確認してください。失敗した場合は、まず erase_object または inpainting モデルで文字を一度消してクリーンプレートを作り、そのプレートに各言語の文字を配置してください。
作業例
「15秒の9:16トレーラーとエンドカードを、ドイツ語、日本語、ポルトガル語にローカライズしてください。」
- マトリクスを作成します。
de、ja、ptごとに、トレーラーとエンドカードのマスターを用意します。ポルトガル語がブラジル向けかどうかを確認し、エンドカードの2行について承認済みの翻訳を依頼します。 use_case: "dub_video"を指定してlist_base_modelsを実行し、候補に対してget_base_modelを実行します。トレーラーは15秒のままにする必要があるため、映像と長さを維持できるものを選び、3つすべてのコードがそのdub_languagesに含まれていることを確認します。- トレーラーを添付して、3つすべての吹き替えを見積もります。エンドカードの見積もりは不要です。内容が確定しているためです。合計を提示し、20 CUsを超える場合は、明示的な承認を待ちます。
- 各言語について
target_languageを指定してexecute_forgeを実行し、poll_interval_secondsの間隔でget_forge_runを使ってそれぞれの実行状況を確認します。各吹き替えを映像に合わせて確認します。 - エンドカード:マスターにはテキストがないため、各言語のテキストを共通のボックスに
render_textで配置します。日本語には、かなと漢字をカバーするフォントファミリーを使い、その後、マスターにcompose_imageで合成します。 - マトリクスにすべての出力
file_idを記入して、引き渡します。
よくある間違い
- マスターではなく、別の言語版を元にローカライズする。
- リップシンク対応の吹き替えを尺が固定された編集に入れた結果、長くなったり短くなったりする。
- 1つの言語だけ見積もり、残りも同じ費用だと思い込む。
- 対応する文字体系がないブランドフォントを使い、空白の四角形が表示されたまま納品する。
- 各言語のテキストが収まるまで、それぞれ独自にフォントサイズを小さくする。
- ストア向けまたは法務向けのコピーを翻訳し、最終版として提示する。
- マスターの唯一のコピーに字幕を焼き込む。