[ Content Generation ]

ブランド設定駆動の動画量産 — チャンネルごとのトーンを config で表現する

ブランドの人格を JSON 設定ファイルに集約することで、複数チャンネルの動画パイプラインで一貫したトーンを実現できる。

Author: 森本拓見 Updated: May 11, 2026
#claude-code #ai-driven-dev #video-generation #brand-design

課題: ブランド情報の散在が修正コストと一貫性をむしばむ

複数チャンネルを同じパイプラインで運用する場合、ブランドの人格を一度定義しても、その後の管理で課題が生じやすい。

台本生成・映像編集・サムネイル設計の各エージェントへ指示を出すたびに、ブランドのトーン・色彩・声質といった情報を毎回プロンプトに書き込む形になる。記述が分散すると、トーンを調整したい場合に修正漏れが発生する。3チャンネルなら見落としは稀だが、10チャンネルになると「このガイドラインはチャンネルA にだけ反映されたが B・C は未適用」という事態が常態化する。また新しいチャンネルを追加するたびに既存コードを複数箇所書き換える必要があり、スケーラビリティに欠ける。

根本原因は「ブランドの定義がコード・プロンプト・ドキュメントに散在」していることだ。修正時の一貫性を保証する仕組みがない。


パターン: ブランド設定駆動(Brand Config-Driven Design)

一行定義: ブランドの人格をすべて単一の JSON 設定ファイルに集約し、パイプラインの全エージェントがそこから読み込むことで、トーン・表現・ビジュアル指針を一貫して保つ設計パターン。


設計の核: 二層構造で「なぜ」と「どう作るか」を分離する

ブランド設定ファイルは単なる値の集合ではなく、上位層(人格定義) と 下位層(実装指示) の二層で構成する。この分離があれば、後からブランド方針を変更した際に各エージェントの実装がズレる危険性を減らせる。

層1: Purpose — ブランドの存在理由と価値観

{
 "channelId": "market-news-jp",
 "purpose": {
 "mission": "金融市場のニュースを、テレビ経済番組のような信頼感と速報性で届ける",
 "audience": "株式投資初級者〜中級者、朝のニュースチェック習慣者",
 "differentiation": "報道スピードと正確性の両立。複雑なデータを迷いなく説明する",
 "constraints": [
 "1分以内に起承転結を完結させる",
 "ナレーション速度 1.25 倍速でも聞き取りやすい話速"
 ]
 }
}

purpose セクションはエージェント向けプロンプトに直接渡される。Scriptwriter は「テレビ経済番組のような信頼感」を見て「『今日は日経平均が…』で始まり、個人投資家への着地まで5文で繋ぐ」という意思決定ができる。

層2: 実装指示 — 各エージェントが読む具体的ガイドライン

{
 "scriptwriter": {
 "narrator": "professional_female_jp",
 "tone": {
 "adjectives": ["報道的", "冷静分析", "親切丁寧"],
 "examples": {
 "good": [
 "今日の日経平均は2.3%上げ。背景にはテック買いが。",
 "重要なのはここ — PBR 1 倍割れ企業が18社から12社に減った"
 ],
 "bad": [
 "すごかったんだけど聞いて?",
 "完全自動化で投資は終わり"
 ]
 }
 },
 "scriptLength": "300-400 words / 2.5-3 minutes",
 "pacing": {
 "sentencesPerTopic": "3-4",
 "talkingSpeed": "words_per_minute: 300"
 }
 },
 "composer": {
 "colorPalette": "corporate-blue-gold",
 "chartPreference": ["line_chart", "bar_chart"],
 "backgroundMusic": "jazz_calm_id: BG_JAZZ_003",
 "onScreenTextStyle": "sans-serif_bold_lowercase",
 "transitionPace": "medium"
 },
 "thumbnail": {
 "colorTheme": "dark_blue_accent_gold",
 "fontWeight": "bold",
 "emojiUsage": "minimal",
 "numberHighlight": true
 },
 "design": {
 "theme": "src/themes/market-news-jp.ts",
 "contrastRatio": 4.5,
 "logoPosition": "top-left"
 }
}

各エージェントは「自分の担当セクションだけ」を読む。Scriptwriter は scriptwriterpurpose を見、Composer は composer を見る。セクションが分かれていることで、「どのエージェント向けの指示か」が自動で明確になり、読み違える危険が減る。

ファイル配置:

  • config/brands/{channelId}.json — ブランド定義(SSOT)
  • src/themes/{channelId}.ts — 色・フォント・アニメーション値(TypeScript 定数)

config は「方針の言語化」にとどめ、数値ベースの値はテーマファイルに分離する。そうすることで「ブランド方針の変更」と「数値調整」を見分けやすくなり、レビューが効率化する。


トレードオフ分析: なぜ設定駆動か

同じ目的を達成する三つの手段が考えられる。

手段メリットデメリット適用場面
設定駆動(config JSON)修正が一箇所。スケール時にコード変更なし。ブランド方針と実装が構造上分離。定義の漏れが可視化される。config ファイルと実装プロンプトのズレが生まれやすい。構造化の初期コストが高い。エージェントが config を「本当に読んでいるか」の検証が必要。3チャンネル以上。定期的なトーン調整がある。複数人による管理が必要。
コード埋め込みシンプル。実装とブランド定義が同じ場所にある。変更時の一貫性が(同じファイルなら)高い。チャンネルが増えるたびにコード分岐が増える。AI エージェント間でブランド記述が重複。修正時に全箇所を漏れなく書き換える職人技が必要。1〜2チャンネルのみ。ブランド定義が固定。
動的マッピング(ルックアップテーブル)チャンネルごとの個別プロンプトを実行時に生成。理論的には最も柔軟。実行時の複雑性が増す。AI エージェント側でどの値を引いたかが追跡困難。バグが深くなりやすい。テスト負担が高い。極めて動的なブランド管理が必要な場合(実務ではほぼない)。

八雲が config 駆動を選んだ理由: Montage はチャンネル数が多く、各チャンネルのトーンを頻繁に調整する。コード埋め込みでは修正漏れの頻度が許容不可になる。また複数のアナリスト・ライターが同じパイプラインを使うため「ブランド定義の一貫性」が組織運営上の要求になる。config に集約することで「ガイドラインは config に書き換えてから AI に投げる」という一本化ができた。


非自明な洞察: 形容詞3個ルール と toneExamples

トーンを定義する際、形容詞の数を 3個までに絞る ことが重要だ。

"adjectives": ["報道的", "冷静分析", "親切丁寧"]

なぜか。AI エージェントは複数の指示を同時に最適化するとき、指示が増えるほど「平均値」へ収束する傾向がある。5個以上の形容詞を渡すと、AI はそれぞれをバランス取ろうとして、結果として「どれにも当てはまらない無色な出力」になりやすい。3個が、AI の判断容量と人間の意図伝達の限界の交点だ。

形容詞の例(チャンネル別):

  • 市場ニュース: 報道的・冷静分析・親切丁寧
  • ロボティクス製品レビュー: エキサイティング・分かりやすい・独立系
  • 決算分析: 詳細志向・業界通・判断寄り

しかし形容詞だけでは不十分だ。「報道的」という一言では AI エージェントの解釈にブレが生まれる。そこで 具体的なセリフの良い例・悪い例 を toneExamples に入れる。

"toneExamples": {
 "good": [
 "日経平均はテック買いで2.3%上げ。背景は…",
 "重要なのはここ — 利益率が前年比12%改善"
 ],
 "bad": [
 "すごかったんだけど聞いて?",
 "完全自動化で投資は終わり",
 "本日はトヨタ自動車の決算について分析いたします"
 ]
}

「悪い例」を含めることで、エージェントは「こういう話し方は避ける」という負の学習ができる。形容詞3個 + 具体的なセリフ例で、言語化できないブランドの特性が伝わりやすくなる。


トーン調整のケーススタディ

ブランド設定駆動の効果を示す実例。

シナリオ: 市場ニュースチャンネルで、「個人投資家向けから機関投資家向けへシフト」という方針転換が生じた。

修正前の config(個人投資家向け):

"tone": {
 "adjectives": ["分かりやすい", "親切丁寧", "鼓舞的"],
 "examples": {
 "good": ["今日の値動きで初心者が押さえるべき点は…"],
 "bad": ["高周波取引ファンドの売却圧"]
 }
}

修正後の config(機関投資家向け):

"tone": {
 "adjectives": ["技術分析", "根拠重視", "冷徹"],
 "examples": {
 "good": [
 "テクニカルブレイク:200日線を上抜けした、機関買い圧を示唆",
 "バリュエーション:PER 17.2 倍、セクタ中央値を下回る"
 ],
 "bad": [
 "初心者向けに砕いた説明",
 "感情的な励まし"
 ]
 }
}

変更の影響範囲:

  • 修正個所: config/brands/market-news-jp.json 1ファイルのみ
  • Scriptwriter プロンプト: コード変更なし(config を読むだけ)
  • Composer プロンプト: コード変更なし

config を更新した翌日のジョブから自動的に新しいトーンが全チャンネル出力に反映される。既存コードには手を加えていないため、別のチャンネルへの副作用もない。


運用上の落とし穴と検証の必要性

落とし穴1: Config と実装の乖離

config にトーン定義があっても、それを読むエージェントのプロンプトが「定義を無視する」場合がある。例えば toneExamples に「機関投資家向けのセリフ」を入れたのに、Scriptwriter のシステムプロンプトが「初心者にも分かるように」と明示されていると、エージェントは config より明示的な指示を優先する。

検証方法: 新しい config を反映した後、実際に出力を数件サンプリングして「tone adjectives に合致しているか」を定性レビューする。レビューエージェントを組み込むのが効果的だ。

落とし穴2: 言語化できない部分を数値で補える限界

ブランドの「雰囲気」「間のとり方」「隠喩の選び方」など、形容詞 3 個では伝わらない部分がある。こうした部分は toneExamples に「実際のセリフ」を具体的に入れることと、人間によるレビューループで補うしかない。AI だけで完全に自動化するには、ブランド定義の精度が限界に達する。

補償戦略: 毎週 1 本のサンプル出力をレビューエージェント(あるいは人間)が確認し、「ブランド外れ」を見つけたら「どの config 項目が不足しているか」を言語化し config に追記する。この反復で定義は自然と充実する。


まとめ

複数チャンネルを同じパイプラインで運用する際、AI エージェント間のブランド一貫性を保つ最良の手段は「ブランドの人格を JSON config に一元化し、すべてのエージェントがそこから読み込む」ことだ。

設計の鍵:

  1. 二層構造(Purpose + 実装指示セクション)で「なぜ」と「どう作るか」を分離する
  2. トーン定義は形容詞 3 個 + 具体的なセリフ例に絞る
  3. 色・フォント・数値はテーマファイルに分離し config は方針言語化にとどめる
  4. 新しいチャンネルは config ファイル追加のみで既存コードに影響しない
  5. 修正後は実装との乖離チェック。言語化できない部分は toneExamples で補い、レビューループで繰り返す

ブランドの一貫性は「毎回同じ指示を渡す」ことではなく「同じ定義ファイルをすべてが参照する」構造から生まれる。シンプルで破りにくい仕組みが、AI との協働には何より効く。

ShareShare on X