Communitygithub.com

renoise-ai/renoise-skills

製品、ブランド、サービスのプロモーションビデオ制作:素材分析、業界とオーディエンスの判断、スタイルと尺の提案、ストーリーボードの作成、ユーザー確認後のRemotionによるMP4レンダリング、そして自動BGM選択を行います。

renoise-skills とは?

このスキルは、製品、ブランド、またはサービスのプロモーションビデオを一貫したワークフローで制作するためのものです。ユーザーから提供された素材(テキスト、PDF、URL、スクリーンショット、ロゴなど)を分析し、業界とターゲットオーディエンスを判断した上で、最適なスタイル、尺、BGMを提案します。提案内容はユーザーの確認を経て、Remotionを使用してMP4ファイルとしてレンダリングされます。テンプレートベースの動画(ストーリーボード駆動のダイナミックタイポグラフィ、SVG、画像)から、映画的なショートフィルム(3Dメタルロゴ、実際のプロダクトUIを再現するタイピング&クリックデモ、3Dギャラリー、被写界深度、モーションブラー、リアルなキーボードサウンド)まで、多様なスタイルに対応します。各動画には自動的にモーションエフェクト(マッチカット、ダイナミックテキスト、シェイプモーフィング、マスクトランジション、パーティクルクライマックス)が適用され、内蔵のオープンソース音楽ライブラリから自動選曲・拍合わせが行われます。また、作品集、モーショングラフィックスショーリール、シェイプ一つでUIのモーフィングアニメーションをループさせる動画なども制作可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/renoise-ai/renoise-skills/tree/HEAD/skills/promo-video

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

プロモーションビデオ

パス規定:<skill> はこのSKILL.mdが配置されているディレクトリを示します。scripts/、references/、assets/、templates/ はすべてこの配下にあります。コマンド内の <skill>/scripts/… は、このディレクトリの絶対パスに置き換えて実行してください。

デフォルト値

  • アスペクト比は16:9(1920×1080、30 fps)。ユーザーが指定した場合はそのサイズに従います。16:9、9:16、1:1、4:5 をサポート。ユーザーが抖音、小紅書、WeChatビデオアカウント、Reelsなどの縦型プラットフォームを指定した場合は 9:16 を使用します。
  • 言語はユーザー素材に従います。第1フェーズではナレーションは使用しません。画面上のテキストで情報が伝わる場合、字幕はデフォルトでオフにします。
  • フォントはデフォルトでDM Sans / SF Pro / ヒラギノ角ゴに設定しません。references/typography.md に従い「フォント提案」を作成します。公式サイトやブランドマニュアルのフォント + トーンに合わせた3組のペアリングを提案し、fonts.py specimen を使用して実際の動画のテキストで画像を生成してユーザーに選択してもらい、選択後は選定カードの5行目に書き込みます。
  • カットはハードカットにせず、オーディオはデジタルサイレンスにせず、テキストは詳細チェックリストを通過させること:納品前に references/detail-pass.md に従ってチェック(カットポイントリスト → rn sheet --around → rn qa / rn cuts → typo_lint.py / font_check.py)を実施します。ユーザーから「唐突」「音声に問題がある」「洗練されていない」と指摘される問題のほとんどはここで発生します。
  • ロゴはユーザーから提供されます。ロゴがない場合はブランド名のテキストロゴを使用し、brand.disclaimer に「サンプルブランドです。デモンストレーション用です。」などの声明を記載します。ユーザーが明示的に提供していない統計データはすべてサンプルと見なし、声明に記載し、実際のデータとして偽装してはなりません。
  • BGMの優先順位:ユーザー提供 > 内蔵ライブラリからの pick_music.py(デフォルト。最近使用した曲を自動的に避ける) > オンラインオープンソースライブラリからの補填 > synth_bgm.py による合成での最終手段。

依存関係:rn(renoise-kit)

映像とミキシングはRemotionでレンダリングします。すべての機械的でエラーが発生しやすい作業は rn に任せます:フレーム精度でのフレーム取得とコンタクトシート、音楽の読み取り(ラウドネス / ビートポイント / BPM)、書き出しとマスタリング、納品チェック、ハードカット / 無音 / クリッピングの監査。render.py は既に統合されています。手動で使用する場合は rn <command> --help でパラメータを確認してください。

brew install ffmpeg-full && export PATH="$(brew --prefix ffmpeg-full)/bin:$PATH"   # macOS:rnはシステムffmpegを呼び出します
apt install ffmpeg                                                                 # Debian / Ubuntu
winget install Gyan.FFmpeg                                                         # Windows(インストール後、新しいターミナルを開く)
uv tool install "renoise-kit[all]"                                                 # rn コマンドを提供

macOS、Linux、Windows共通:このスキルのスクリプトはすべてPythonで、bashに依存しません。以下の python3 はWindowsでは python(または py -3)に置き換えてください。パスは / または \ のどちらでも構いません。

やりたいことコマンド
素材/プレビュー/静止画フォルダを見るrn sheet <動画またはフォルダ> [--fps 4 | --around フレーム時間,.. --span 4 --diff]
BGMを読む:ラウドネス、ビートポイント、BPM(半/倍速候補を含む)rn listen bgm.wav --json out/music.json
フレームごとの輝度/モーション/周波数帯域/ドラム/クリッピングrn signal <ファイル> -o out/signal.png --json out/signal.json
書き出し、マスタリング、音声差し替え、1080p出力rn finish raw.mp4 -o out.mp4 [--audio mix.wav] [--height 1080]
納品チェック(フォーマット、ラウドネス、true peak、無音、レベル変動、クリッピング、黒フレーム、フリーズフレーム、固定フレームレート)rn qa out.mp4 [--accept CHECK@秒]
ハードカットリスト+各カット前後のフレームrn cuts out.mp4 --sheet out/audit/cuts.jpg
前バージョン/リファレンス動画との比較rn compare 新.mp4 旧.mp4 --cuts
画面テキスト(文字チェック、リファレンス動画の字幕読み取り)rn text out.mp4

モード選択とスタイルルーティング

各動画はまず references/style-router.md に従って4層の選定を行います:① モード ② ビジュアルトーン ③ ナラティブフレームワーク ④ エンハンスメントレイヤー(最大2つ)。さらに ⑤ フォント(typography.md)を加え、5行の「選定カード」を作成し、ストーリーボードテーブルの上に配置してユーザーの確認を得ます。選択されたドキュメントのみを読み込んでください。競合が発生した場合:ユーザーの明示的な指示 > ルーターテーブル内の口碑レコード > 業界デフォルト。以下の表は①モードと各拡張パッケージのエントリポイントを示します:

ユーザーの要望モード最初に読むもの例
製品/サービスプロモーション、発表シネマティックプロモーション(デフォルト)cinematic.md → motion-craft.mdexamples/youware/、examples/renoise/
クイック解説、ソーシャルメディア一括テンプレート動画storyboard.md、styles.mdstoryboard.json
個人紹介、アカウント宣伝個人ブランド動画cinematic.md「個人ブランドとピクセルアバター」—
スマートフォン、デバイスなどのハードウェアコンセプトハードウェアコンセプト動画cinematic.md「実体ハードウェア製品」—
複数の完成動画をまとめてコレクションに作品集recap.md—
モーションクラフトの腕前披露、イントロ、チャンネルIDモーショングラフィックスショーリールmotion-craft.mdexamples/motion-reel/
音楽ドリブン、リキッドフュージョン、データチャート、無限トラバーサル、透視図リビールスタイル拡張パック01(シネマティックプロモーションに重ねる)style-pack-01.md(音楽ドリブンの場合は先に audio_features.py を実行)—
ワンカット、ハードカットなし、リファレンス動画のような連続性を学ぶ;製品に「入力→出力→連続動作」の流れがあるスタイル拡張パック02:ワンカットリレー(ナラティブフレームワーク、ナレーション付き)style-pack-02.md(ナレーションの場合は先に narrate_mimo.py を実行。クライアント本人の声をクローン可能)src/cinematic/relay/ コンポーネント
アイコンが動く、アニメーション絵文字、フローノードが順に光るアニメーションアイコン(任意のモードに重ねる)animated-icons.md(絵文字の場合は先に fetch_noto_emoji.py を実行)examples/animated-icons/
ブランドトーンムービー、ブランドリニューアル、「Claudeのような」公式の質感、Appleのような人間味、具体的な機能をデモしないスタイル拡張パック03:コンセプトラダー・標本帳(点→線→面→立体→場、各章にバリューセンテンス、最後にロゴを配置;60秒、ピアノ)style-pack-03.md(字形標本の場合は先に glyph_outline.py を実行)examples/youware-ladder/
モデル/製品発表動画、「質感がありながら実力を証明する」必要がある;名前で言葉遊びができる;公式の桁数レベルの事実(数えられる驚異)があるスタイル拡張パック04:ソネット・3D被写界深度(脚本は詩そのもの、1行1セクション;スペックシートHUDは公式の原文のみを引用;68万画をブランドの星型に揃える)style-pack-04.md—
「Nスタイル」コレクション、一つの製品を複数の画風で表現、クライアントにスタイルを選んでもらう;バラエティ番組テロップ/ステッカー風解説/アイソメトリック2.5Dミニチュアシティスタイル拡張パック05:商用スタイルライブラリ(スタイルカタログ動画テンプレート + テロップ + ステッカー + アイソメトリック;任意のモードに個別に重ねることも可能)style-pack-05.md(Three.jsサンプルは事前に動画にプリレンダリングしてからカタログ動画に含める)examples/style-catalog/
フレームバイフレーム手描き/一筆書きライン/コラージュ/フラットイラスト/バウハウスポスター/リキッド/ディフュージョングラス/3Dフォントニードルアレイ/サイバーHUD/ピクセル/シンセウェーブ、または完全な15スタイルコレクションスタイル拡張パック06:商用スタイルライブラリ第2弾(11の画風コンポーネント + 15グリッドカタログ動画 + 小節ごとにBGM延長/レトロシンセBGM)style-pack-06.md(フィルター領域とthree境界ボックスの2つの落とし穴を必ず参照)examples/style-catalog/(Reel15.tsx)
新モデル発表当日の「同条件比較」動画:2つのモデルのアニメーションSVG/小さな作品をそのまま並べて表示 + YouWare入力ボックスとモデルメニュー + 最後にフックモデル出力比較動画(フレーム確定のSVGプレイヤー、名前空間の分離、同一倍率での拡大、小節ごとにBGM接続)svg-compare.md(最初にモデル公式名、推論強度、プロンプト原文と生成ソースを確認)examples/svg-compare/
DribbbleレベルのUIモーション、一つのシェイプが連続的に変形して製品フローを説明単一シェイププロモーション動画(デフォルトは16:9プロモーション版;純粋な1:1ループ版も選択可)one-shape.md(最初にステートリスト、配色、曲を決め、ビートグリッドを整えてからコードを書く)examples/morph-promo/、examples/morph-loop/

すべてのモードで同じデザイン原則、モーションレイヤー、音楽ライブラリ、効果音ライブラリを共有します。

デザイン原則(デフォルトで実行)

すべての動画は references/design-principles.md に従って制作します:Apple式の「1画面1アイデア」、大きな文字と余白、抑制された色使いと信頼できるマテリアル;統一された lucide-react アイコン(1.75線幅、機能ノードには IconTile を使用;アニメーションが必要な場合は lucide-animated を使用し、コンタクトフレームで一度だけ再生)、絵文字はデフォルトでは使用せず、使用する場合もNotoアニメーション版のみ(プレースホルダー図形は使用しない);すべてのフレームで最初にフォーカスと感情を決定し、カメラワークには動機がある(ドリーイン、フォーカス移動、穿越、ウィップパン、クイックズームイン);サウンドはアクションのコンタクトフレームに合わせます。納品前には「マスターレビュー」チェックリストを項目ごとに確認します。

コンテンツレイヤーを構築した後、さらに「モーションレイヤー」(references/motion-craft.md)を追加します:まず公式サイトの素材を使用し、その上にパーティクル、モーフィング、マスクを重ねます(例:製品スクリーンショット上でパーティクルがスローガンに集まる)。製品とは無関係な黒背景のショーや切り離されたセクションは避けてください。セクション間のトランジションは明確に記述し(マッチカットを優先)、オープニングのオブジェクトはエンディングで再登場させることを推奨します。

ワークフロー

このリストをコピーして進捗を追跡してください:

- [ ] 1. 素材分析:製品、業界、オーディエンス、売りポイント
- [ ] 2. 一回限りの確認:目的、スタイル、尺、アスペクト比、言語、BGM
- [ ] 2b. フォント提案:トーンに合わせた3組のペアリング + ブランド現用フォントの提案図(fonts.py specimen)→ ユーザーが選択
- [ ] 3. スクリプトとストーリーボード(各セグメントの主要テクニックとトランジションの列を含む)→ ユーザーの確認を待つ
- [ ] 4. プロジェクト構築 → サンプルフレーム → ユーザーの画角確認を待つ
- [ ] 5. BGM:pick_music.py で選曲・拍合わせ、タイムラインを曲のBPMに合わせて再配置
- [ ] 6. 低解像度プレビュー → 修正
- [ ] 6b. 詳細レビュー:カットポイントリスト + 前後4フレーム(rn sheet --around)+ rn qa / rn cuts + typo_lint.py(ユーザーにプレビューを見せる前に自分で実施)
- [ ] 7. 完成動画の納品と検証

1. 素材分析

ユーザーから提供されたすべての情報(テキスト、PDF、URL、スクリーンショット、ロゴ)を読み込みます。ユーザーがURLのみを提供した場合は、references/brand-from-website.md に従って公式サイトからロゴ、フォント、カラー、高解像度製品画像を抽出します。以下の情報を抽出します:

  • 製品は何か、一言バリュープロポジション(20文字以内)
  • 3~4個の売りポイント、それぞれにアイコンのイメージを関連付ける
  • ユーザーが明確に提供したデータ(これらのみを使用)
  • 既存のビジュアルアセット:スクリーンショット、ロゴ、ブランドカラー、フォント
  • 業界分類とオーディエンス:references/industries.md に従って判断し、推奨スタイル、カメラワーク、BGMのムードを得る

2. 一回限りの確認

一度にすべて質問し、推測できない項目のみを質問します。各項目は推奨オプションを最初に配置し、「(推奨)」とマークします。ホストが選択式の質問ツールを持っている場合はそれを使用し(この種のツールは一度に質問できる数に制限があるため、質問が多い場合は重要度順に2ラウンドに分けます)、そうでない場合は1つのメッセージ内に番号付きオプションとしてリストします:

  • 動画の目的:製品発表、機能デモ、ブランドイメージ、資金調達ピッチ、ソーシャルメディア広告
  • 制作モード:シネマティック(実際のUIデモ + 3D + 効果音、製品発表/ブランド動画に推奨)またはテンプレート動画(制作速度が速く、解説やソーシャルメディア一括配信に適する)
  • シネマティックスタイル:ダークテクノロジー / 切り絵 / ライトエディトリアル、業界に基づいて推奨(cinematic.md「スタイル」を参照)
  • スタイル:業界表に基づいて3つのプリセットを提供し、それぞれに画面の説明を付ける(プリセットは references/styles.md を参照)
  • 尺:目的に応じたレンジを提供(references/storyboard.md を参照)、「尺が短いほど、1画面あたりのテキストが少なくなります」とヒントを出す
  • アスペクト比:素材が縦型またはマルチプラットフォーム展開を示唆する場合のみ質問し、それ以外は16:9を使用
  • 言語
  • BGMソース:内蔵ライブラリ(推奨、2~3曲の候補のスタイル説明を提供)/ 自身で提供 / 合成

ユーザーが既に明確に述べている項目は質問しません。

2b. フォント提案

references/typography.md §1に従う:トーンを決定 → fonts.py pairs --tone <トーン>(公式サイトが商用フォントの場合は先に fonts.py similar "<フォント名>" を実行)→ 実際の動画のタイトル、サブタイトル、ボディテキスト、中国語/日本語を使用して提案図を生成、3組のペアリング + 1組のブランド現用フォント:

python3 <skill>/scripts/fonts.py specimen --pair warm-soft --pair editorial-italic --pair bold-youth --combo <ブランドタイトルフォント>+<ブランドボディフォント> \
  --title "..." --sub "..." --body "..." [--zh "..."] [--ja "..."] --out <プロジェクトディレクトリ>/out/type-proposal.png

画像をユーザーに送り選択してもらいます。選択後、fonts.py fetch <ids> --to <プロジェクトディレクトリ> を実行し、コピーライティングが完了したら fonts.py subset <プロジェクトディレクトリ> --text-file copy.txt(中日文)を実行します。ライセンスは typography.md §8に従います:Fontshareフォントはサブセット化せず、プロジェクトと共に第三者に提供してはいけません。

3. スクリプトとストーリーボード

ユーザーがスクリプトを提供した場合は、それに従ってシーンに分割します。そうでない場合は references/storyboard.md の構造に従って記述します。テーブルの上にはまず選定カード(style-router.md)を配置し、その後テーブル形式でユーザーの確認を得ます:

#尺シーンタイプ画面画面テキストカメラワーク主要テクニック/トランジション

ユーザーの確認なしにレンダリングに進んではいけません。 ユーザーが修正した場合はテーブルを更新し、再度確認を得ます。

4. プロジェクト構築とサンプルフレーム

python3 <skill>/scripts/setup_project.py <プロジェクトディレクトリ>

シネマティックモード:storyboard.json はブランド情報のみを提供し、画面は src/Film.tsx で references/cinematic.md に従って記述します(templates/remotion/examples/youware/ を参照)。サンプルフレームは render.py <プロジェクトディレクトリ> film-stills <フレーム番号...> でセグメントごとにスポットチェックし、プレビューは film-preview、本番は film(出力は out/film.mp4、ラウドネスチェックを実施)。以下のストーリーボード検証と render.py はテンプレート動画を対象としています。

  • 確認済みのストーリーボードを <プロジェクトディレクトリ>/storyboard.json に書き込みます(フィールドは storyboard.md を参照)。
  • 素材を public/ に配置します:brand/(ロゴ)、fonts/(fonts.py fetch でダウンロード、fonts.json と LICENSES.md を含む)、images/(スクリーンショット)、music/。storyboard.json 内のパスは public/ からの相対パスにします。
  • ストーリーボードを検証し、サンプルフレーム(各シーンの中間フレーム)をレンダリングします:
python3 <skill>/scripts/check_storyboard.py <プロジェクトディレクトリ>/storyboard.json
python3 <skill>/scripts/render.py <プロジェクトディレクトリ> stills
  • ERROR は修正必須です。WARN 読み取り時間 はテキストが読み終わらないことを示します:テキストを短くするか、シーンを延長します。
  • 各画像 out/stills/scene-N.png を確認します(out/stills-sheet.jpg は1ページの概要です)。design-principles.mdの「マスターレビュー」チェックリスト(フォーカス、余白、はみ出し、アイコン、コントラスト)に従ってチェックし、修正が完了したらサンプルフレームをユーザーに見せます(ホストがファイルを送信できる場合は直接画像を送り、できない場合はファイルパスを提供します)。
  • ユーザーがスタイルを比較したい場合は、style を変更して再度サンプルフレームを出力し、古いサンプルフレームは out/stills-<スタイル>/ として保存し、並べて比較できるようにします。

5. BGM

references/music.md に従って処理します。どのソースであっても music.bpm を設定する必要があります(rn listen で読み取ります)。タイムラインはすべてのカットポイントをビートに合わせます。

ナレーションが必要な場合は、cinematic.mdの「ナレーションと吹き替え」に従い voiceover.py で生成し(Xiaomi MiMo TTS またはローカルの say コマンド)、タイムラインは吹き替えの尺で駆動されるように変更します。完成動画のラウドネスを変更する必要がある場合は、映像を再レンダリングせずにオーディオトラックのみをやり直します:rn finish out/film.mp4 -o out/film-loud.mp4 --copy-video --lufs -12。

6. プレビュー

python3 <skill>/scripts/render.py <プロジェクトディレクトリ> preview

半解像度でクイック出力。out/preview.mp4 のパスをユーザーに提供し、フィードバックに基づいて storyboard.json を修正した後、再レンダリングします。

6b. 詳細レビュー

ユーザーにプレビューを見せる前に、references/detail-pass.md に従って自分でチェックします:

rn sheet out/film-preview.mp4 --around <カットポイント秒数,...> --span 4 -o out/seam.jpg                       # 各マウント/アンマウント/パラメータ切り替えポイントの前後4フレーム(秒数 = フレーム番号 / 30)
rn qa out/film-preview.mp4                                                                             # 黒フレーム、フリーズフレーム、デジタルサイレンス、レベル変動、クリッピング(render.py は自動実行)
rn cuts out/film-preview.mp4 --sheet out/audit/cuts.jpg                                                # ハードカットリスト、各カットの前後1フレームずつ
python3 <skill>/scripts/typo_lint.py storyboard.json                             # または --ts src/film/*.ts*;--fix でJSONを自動修正
python3 <skill>/scripts/font_check.py public/fonts                               # 光学的な字幅軸、真の句読点グリフ

各項目は修正するか、プロジェクトのルートディレクトリにある qa-accept.txt に書き込みます(1行に1つの チェック項目 または チェック項目@秒、# の後に理由を記述)。納品時の説明に「意図的」であることを明記し、以降の監査で再度報告されないようにします。

7. 完成動画

python3 <skill>/scripts/render.py <プロジェクトディレクトリ> final

out/final.mp4、out/cover.png が生成され、caption がある場合は out/captions.srt も生成されます。ユーザーに渡すファイルはすべて rn finish の出力です(render.py の film / final は自動的に処理します:映像を個別にレンダリング、ミックス音声をWAVで別途レンダリングし、その後 rn finish --audio で合成)。Remotionが直接出力するMP4は、一部のプレイヤーやアップロードプラットフォームで半分の尺しか表示されないことがあります(ユーザーフィードバック:「38秒で送信したが、開くと19秒しかない」)。根本原因は references/detail-pass.md「納品エンコーディング」を参照してください。自分で手動で4Kをレンダリングする場合:

npx remotion render src/index.ts Film out/film-raw-4k.mp4 --muted                # 構図は3840×2160;1080p構図の場合は --scale=2 を追加
npx remotion render src/index.ts Film out/mix.wav --codec=wav --config=remotion.audio.config.ts
rn finish out/film-raw-4k.mp4 -o out/<名前>.mp4 --audio out/mix.wav
rn finish out/<名前>.mp4 -o out/<名前>-1080p.mp4 --height 1080 --lufs keep                          # WeChat / ソーシャルメディア向け
rn qa out/<名前>.mp4                                                                               # 配布するファイルはすべてこの手順を通過させること

rn qa の結果(FAILは0である必要があります。WARNは修正するか qa-accept.txt に書き込みます)と out/audit/cuts.jpg のハードカットを確認し、カバーフレームを確認した後、ファイルパスと簡単な説明(スタイル、尺、BGMソースとライセンス、声明内容、意図的に残したWARN)を提供します。ユーザーが評価(良い / 以前より良くない / 作り直し)をした後、「組み合わせ → 動画 → 反応」を style-router.md の口碑記録に記録します。

レンダリング制約

  • すべてのアニメーションは useCurrentFrame() から導出する必要があります。CSS transition/animation、Framer Motionの自動再生、setTimeout、シードなしの Math.random() は禁止です。これらを使用するとフレーム単位のレンダリングでちらつきや位置ずれが発生します。GSAPはフレーム単位でのseek使用のみ許可されます。
  • render.py はコマンドサンドボックスの外部で実行する必要があります(ヘッドレスChromeがCPUコア数とGPUを読み取るため)。ホストがシェルコマンドにサンドボックスを追加している場合は、ホストの方法に従ってこのコマンドの制限を緩和してください。
  • 動画全体のレンダリング(preview、final、film-preview、film)と最初の setup_project.py(npm install)は数分かかるため、ほとんどのホストの単一コマンドタイムアウトを超えます。これらのレンダリングはバックグラウンドで実行してください(ホストにバックグラウンド実行機能がある場合はそれを使用し、ない場合はシステムのバックグラウンド機能を使用して出力を out/render.log に書き込みます:macOS / Linux は nohup … > out/render.log 2>&1 &、Windows PowerShell は Start-Process python -ArgumentList '…' -RedirectStandardOutput out/render.log -NoNewWindow、その後ログを確認します)。高頻度のポーリングは避けてください。stills、film-stills の数フレーム抽出はフォアグラウンドで実行可能で、タイムアウトは10分に緩和します。
  • グローバルなNodeは不要です:setup_project.py は既存のNodeを探し、見つからない場合はポータブル版を ~/.cache/promo-video/node にダウンロードします。ffmpeg と rn はシステムにインストールされている必要があります(「依存関係」を参照)。setup_project.py で不足している場合は通知されます。
  • hero3d のレンダリングは最も遅いため、1本の動画で1~2個に抑えてください。
  • よく使うツール:rn finish(納品エンコーディング:fixed_frame_rate_flag=1、BT.709 TVレンジ、moov前置、−14 LUFSとエンコード後のtrue peak ≤ −1 dBTP、--audio はWAVミックスに置き換え、--height 1080 で小バージョン出力);rn qa(納品チェック + 黒フレーム/フリーズフレーム/デジタルサイレンス/レベル変動/クリッピング、render.py は自動実行);rn cuts --sheet(ハードカットリスト);rn sheet(正確なフレーム取得とモンタージュ、動画または静止画フォルダ、ショット選択とレビューの両方に使用、ffmpeg -r 1 は使用しない);rn listen(BPM、ビートポイント、ラウドネス);typo_lint.py(画面テキストのストレートクォーテーション、三点リーダー、--、全角区切り文字、ぶら下がり分離符、孤字);font_check.py(フォントファイルの軸、特性、真の句読点グリフ、opszがない場合は警告);fonts.py(フォントカタログ/ペアリング/提案図/ダウンロード/サブセット化/商用フォント代替、typography.md参照);audio_features.py(BGMのフレームごとの特徴、AudioReactive.tsx がその形式を読み取る);pick_music.py(選曲と拍合わせ);narrate_mimo.py(ナレーション:MiMoのプリセット音色またはクライアント本人の数秒の録音をクローン、単語ごとのタイミング timings.json を出力して画面を駆動、--qa で読み取り検証)。
  • シェルはzsh:for t in $LIST はスペースで分割しないため、リストは直接 for t in 1 2 3 のように記述します。ヒアドキュメント内にバッククォートや ${} がある場合は <<'EOF' を使用します。そうしないとシェルによって展開されます。

拡張

  • 新しいシーンタイプの追加:src/scenes/ にコンポーネントを作成し、src/types.ts の Scene ユニオンタイプと src/Promo.tsx の SceneBody に追加し、check_storyboard.py の SCENE_TYPES と scene_text も同期します。
  • 画像は <Img> を使用;GIFは @remotion/gif をインストール;Lottieは @remotion/lottie をインストール。@remotion/* パッケージのバージョンは remotion と完全に一致している必要があります。
  • AI素材の補完:クライアントが撮影できない人物やシーンには、Renoise を使用してキーフレームと画像から動画を生成します(Renoiseプラグインのインストールとログインが必要)。画風はクライアント自身のデザイン仕様から取得します。モデルはRenoiseのmodel-routingスキルに従って選択します。各バッチは最初に estimate_cost で数量と見積もりを報告し、ユーザーが同意した後に提出します。フロー、プロンプトルール、ガイドラインは references/ai-footage.md を参照してください。

参考資料

  • references/brand-from-website.md:公式サイトからコピー、カラー、フォント、ロゴ、製品画像を抽出
  • references/design-principles.md:デザイン原則、アイコン仕様、ディレクターズカメラワーク、サウンドとマスターレビューチェックリスト(デフォルトで実行)
  • references/detail-pass.md:詳細レビュー:連続/非空/精巧の3原則、カットポイントリストフロー、明→暗のトランジションの画面とサウンドレシピ、rn qa の判定しきい値と免除、納品エンコーディング、これまでに踏んだ落とし穴(納品前に必ず実施)
  • references/typography.md:フォントシステム:フォント提案ワークフロー、11のトーン → 推奨フォント、17組のペアリング(中国語/日本語対応)、トップ広告で使用されるフォント(検証済み)とオープンソース代替の実測、フォントファイルはopsz軸を持つ必要がある、ビデオ組版ルールとDisplayパラメータ、ライセンス(OFL / ITF FFL / ベンダー契約)、モーションテキストコンポーネント(src/cinematic/type/:VarType、OutlineFill、HandReveal、TrackIn、Decode)、詳細とレビューチェックリスト
  • assets/fonts/catalog.json:99の厳選フォント(Google Fonts / Fontshare / GitHubリリース、ラテン + 中国語 + 日本語)、17組のペアリング、商用フォント代替テーブル、手動ダウンロードが必要なベンダーフォントのリスト;scripts/fonts.py が読み取り
  • references/cinematic.md:シネマティックFilmモード:スタイル、シーンコンポーネント、製品UIとレポートの再現、3D、モーションと効果音デザイン
  • assets/sfx/README.md:無料で商用利用可能な効果音ライブラリのディレクトリ(タイピング、マウス、UI、トランジション、ペーパー、ページめくり)、preview.wav で試聴可能
  • assets/music/catalog.json:音楽ライブラリのカタログ(ムード、BPM、エネルギー到達点、ライセンス、ダウンロードURLとsha256);楽曲はリポジトリに含まれず、pick_music.py が初回使用時にMixkit公式URLから ~/.cache/promo-video/music/ にダウンロードし、検証
  • references/industries.md:業界分類 → 推奨スタイル、カメラワーク、BGM、コンプライアンスヒント
  • references/styles.md:4つのスタイルプリセットとブランドカラー上書きルール
  • references/camera.md:カメラワーク用語、クラシックなテクニックマッピングとリズムルール
  • references/storyboard.md:storyboard.json のフィールド、尺のレンジ、ナラティブ構造、コピーライティングルール
  • references/music.md:内蔵音楽ライブラリと pick_music.py、拡張オープンソース音楽ライブラリ、BPMビート合わせ、合成での最終手段、ラウドネスとライセンス
  • references/motion-craft.md:モーションレイヤー:抑制/表現の2段階、テクニックマップ、トランジションデザイン、モーショングラフィックスショーリール
  • references/recap.md:複数の完成動画をまとめてコレクションに(Apple式カルーセルレビュー)
  • references/animated-icons.md:アニメーションアイコン(lucide-animated 467個、フレーム単位の代替は検証済み)とNotoアニメーション絵文字(fetch_noto_emoji.py)、リズムルールとライセンス
  • references/style-router.md:モード選択とスタイルルーティングテーブル(4層選定 + フォント = 5行選定カード)、口碑記録ルール、拡張パッケージ管理
  • references/ai-footage.md:AI素材補完:Renoiseキーフレーム生成と画像から動画へ、コスト見積もり、プロンプトルールと拒否ライン
  • scripts/:fonts.py(フォント管理)、setup_project.py(プロジェクト構築)、check_storyboard.py(ストーリーボード検証)、render.py(レンダリングラッパー)、pick_music.py(選曲)、synth_bgm.py(合成BGM)、narrate_mimo.py(ナレーション生成)、audio_features.py(オーディオ特徴分析)、fetch_noto_emoji.py(絵文字ダウンロード)、glyph_outline.py(グリフアウトライン)、typo_lint.py(テキストlint)、font_check.py(フォントチェック)
  • templates/remotion/:Remotionプロジェクトテンプレート、examples/ サブディレクトリには複数の参考実装あり

関連スキル