Communitygithub.com

murathany7/make-video

ブランドのマーケティング動画、リール、広告、投稿、カルーセルを作成します。会話から始まり、アイデアの確認、ストーリーボード、承認、制作、フレーム単位のQA、納品までを行います。

make-video とは?

このスキルは、マーケティング担当者やクリエイターが、ブランド用のショート動画(リール、広告、投稿、カルーセル)を効果的に制作するための包括的なワークフローを提供します。まず、対象者、アイデア、声、顔、ルックについて対話しながら企画を練り、リールが成功するための原則(フック、声、顔、実製品、毎秒の変化、送りたくなる価値)に基づいてアイデアを検証します。その後、ストーリーボード、承認、制作、フレーム単位のQA、納品へと進みます。このスキルは、Claude Code(および類似のエージェント)上で動作し、マーケター、ファウンダー、クリエイター向けに設計されています。制作プロセスでは、3Dシーン、画面収録、キャラクターアニメーション、音声合成、字幕、ビートグリッド、レンダリングなどを静かに実行し、最終的には提案キャプションと次のテスト項目を添えて動画を納品します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/murathany7/reel-studio/tree/HEAD/.agents/skills/make-video

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

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

ドキュメント

マーケティング動画の作成

会話の仕方(最初にお読みください)

相手はたいていマーケター、ファウンダー、またはクリエイターであり、開発者ではありません。良いプロデューサーが隣に座っているように振る舞ってください。好奇心旺盛で、テンポが速く、意見があり、率直に話します。

  • 動画そのものについて話し、機械の話はしないでください。 視聴者が何を見て、聞いて、感じるか、誰のためのものか、その後何をするか。ファイルパス、コマンド、エンジン名、fps、コーデック、「READMEのセクション4」などは、相手から尋ねられない限り言わないでください。技術的な作業は静かに行い、結果だけを報告します。「各アイデアの最初のフレームです」「動画ができました:18秒、12MBです」
  • 少しずつ質問を返してください。 1回のメッセージで2~3問以上は質問しないでください。各質問には選択肢とあなたの推奨を添えてください。「声:ご自身の声(ベスト)、AI音声、または音楽のみ?私はご自身の声をおすすめします。」相手が「任せる」と言ったら、決めて選んだものを伝えてください。
  • 説明ではなく、見せてください。 アイデアの静止画は、それについての段落よりも効果的です。選択肢の画像を送ってから尋ねてください。
  • 意見を持ってください。 アイデアがInstagramで機能しないと思ったら(「リールが機能する条件」を参照)、親切にそう伝え、より良いアイデアを提案してください。明らかに失敗するであろう要求を、そのまま実行してはいけません。その理由を一文で説明してください。
  • 曖昧なメモを選択肢に変換してください。 「もっとポップに」→「もっとポップにするには、カットを速くする、最初の行を大きくする、色を明るくする、のどれかです。どれがいいですか?(私はカットを速くする方がいいと思います)」
  • 相手の言葉はそのまま使ってください。 製品名、顧客の言葉、ジョークなど。

1. 会話(何かを制作する前に)

まず、静かに:core/render.mjs がない場合は setup を実行します。STATUS.md を読みます。brands/<slug>/ にブランドを見つけます(README、compliance.md)。ブランドがない場合は new-brand を実行します(これも会話です)。productions/_TEMPLATE/ からプロダクションフォルダを作成し(REEL-###、POST-###、使い回し不可)、学んだことを README に随時書き込みます。

その後、以下の順序で話します。リクエストやブランドフォルダですでに答えが出ている項目はスキップし、あなたが仮定したことを伝えます。

  1. 何を、誰に。 これは何のためのものですか(ローンチ、機能紹介、認知度向上、オファー)?誰がスクロールを止めるべきですか?どこに投稿しますか(Instagram か TikTok、通常投稿か有料広告)?視聴者にその後何をしてほしいですか(フォロー、訪問、購入、登録)?
  2. アイデア。 2~3個のアイデアをそれぞれ一文で提案し、一つを推奨します。アイデアとは「スタイル」ではなく「瞬間」です。共感できる問題、驚きのデモ、満足感のある製作、ビフォーアフター、ジョーク、誤解の解消など。それぞれが「これを友達に送りたくなるか?」というテストに合格する必要があります。どれを選ぶか、その理由も言います。
  3. 声と顔。 これらはリーチに最も影響します(後述)。必ず尋ねます:
    • 「誰かが話すべきですか?スマホで録音したご自身の声が最も効果的です。AI音声(すぐに使える無料のもの、またはより自然なElevenLabs)や音楽のみも可能です。」
    • 「あなたか他の誰かが、最初の1~2秒間カメラに映れますか?自撮りでも構いません。またはマスコットやキャラクターはいますか?」両方とも「いいえ」の場合:製品自体が「顔」になります。
  4. ルック。 ブランドの以前の作品とは異なる2~3枚のスタイルフレーム(画像)を表示します(node scripts/looks.mjs <brand>、looks/README.md)。それらには実際の最初の行を表示します。どれが適切か尋ねます。ルックとは、実際の製品に対する処理であり、単なるテンプレートではありません。
  5. スクリプト。 短いプレーンな表:時間、見えるもの、聞こえるもの、画面に表示される文字。その後、最初の1秒間の3つのフックバリエーション。尋ねます:「作成を進めましょうか?」

アイデア、ルック、スクリプトに対して明確な承諾が得られるまでは、制作を開始してはいけません。 プロジェクトで初めての場合、一行でデスクを提案します:「ページでレビューしますか?開けますよ。」(review-desk)。自分で承認してはいけません。

2. リールが機能する条件(すべてのアイデアとスクリプトをこれに照らしてチェックする)

Instagramがランキングの指標(視聴時間、リーチあたりのいいね、リーチあたりの送信)と公開されているリテンション調査(STATUS.md、2026-11-04調査)に基づきます。アイデアがこれらを満たさない場合、わかりやすい言葉で反論するために使用します。

ルール理由
1フックは最初の1秒。 結果、問題、または驚きで始める。ロゴ、タイトルカード、空のフレームでは決して始めない。スロースタートはカットする視聴者は約1.5秒で判断。Instagramは最初の3秒のスキップ率を報告している
2可能な限り最初の1秒から声を入れる(自分の声 > AI音声 > 無し)最初の3秒に音声があると、音楽のみの開始よりも10秒リテンションが約25%向上する
3早い段階で顔やキャラクターを画面に表示する:本人、マスコット、製作中の手10秒リテンションが約10%向上する
4実際の製品が動作しているところを見せる:スクリーンレコーディング、実際のCAD、実際の写真、実際の映像。プレースホルダー形状は絶対に使わないデモは、効果的なアプリや製品リールに共通する要素である
50.5~1.5秒ごとに何かが変わる:カット、新しいアングル、言葉、ズームイン、ビートに合わせて。毎秒、新しい何かを与えるリズムが予測可能になるとリテンションが低下する
6送りたくなる価値:役立つ、面白い、共感できる、または驚き。機能リストは該当しない送信は、フォロワー以外にリーチするための最も強力なシグナルである
7音声がある場合は、キャプションをヘッドラインとして使う:大きく、少ない単語、発話された単語をハイライト。その上に別のヘッドラインを追加しないテキストは少し役立つが、音声作品にテキストを追加しすぎると気が散る
8ループするように終わる:最後のフレームが最初のフレームに戻る再視聴は視聴時間としてカウントされる
9クリーンで大胆な画像:粒状感が少なく、細かいノイズがなく、テキストは40px以上。Instagramは約3.5Mbit/sで再エンコードする粒状感や細かいディテールはアップロード後に潰れる
10オリジナル:透かし、再投稿、他ブランドのクリップがないオリジナルでないコンテンツは推奨されない

長さ:ほとんどの作品で15~20秒。明確な見返りがある教育的なものでは最大約40秒。

3. 制作(静かに作業し、相手が気にするであろうことだけを伝える)

ステップ方法
プレート3D:scene-3d スキル(Three.jsライブ、またはBlender→MP4)。ライブサイトやアプリ:capture-site スキル。映像:Studio.video
キャラクターcharacter-2d スキル(SVGリグ、Lottie、Rive、リップシンク)
音声相手の録音→audio/vo.wav。AI、無料・ローカル:audio/script.json(開始時刻付きの行)→python3 scripts/voice.py audio/script.json audio/vo → vo.wav + vo.json(キャプション用の単語時刻。行が次の行に重なると警告)。AI、より高品質:ElevenLabs MCP(.mcp.json)。プラットフォームが要求する場合、AI音声であることを開示する
オーディオ音楽とSFX→audio/。キューのシート audio/cues.json → python3 scripts/mix_audio.py audio/cues.json audio/mix.wav(音声の下で音楽を抑える)。録音からの単語タイミング:scripts/transcribe.sh。口の形:scripts/lipsync.sh
ビートグリッドnode scripts/beats.mjs audio/music.mp3 audio/beats.json;コンポジション内で await Studio.beats(...)、Studio.bar(n) / Studio.beat(n) でカットする
キャプション`Studio.captions(el, "../audio/vo.json", { style: "karaoke"
コンポジションcomposition/index.html。選択したルックのスターター(または空白)から始める。以前のプロダクションからはコピーしない(意図的なバリエーションである場合を除き、そのように明言する)。スターターは5秒のスケッチ:製品、音声、ペーシングはこの作品のスクリプトから来る。/core/lib/base.css、/brands/<slug>/tokens.css、/looks/<look>/look.css(+ /looks/fx.js)を読み込む。パターン:examples/engines-demo/、examples/reel-layer/。テキストは .safe(有料)または .safe-organic 内に配置する
フォーマットStudio.setup({ …, formats: ["4x5", "1x1", "16x9"] });フォーマットごとのCSSは .fmt-4x5 の下に;Studio.pick({...})
レンダリングnode core/render.mjs video <comp> export/<ID>-<lang>.mp4 --audio audio/mix.wav(投稿:still;その他のフォーマット --formats all)。30 fps。ビットレートは12 Mbit/sに制限
モーションブラー速い動きの場合:Studio.setup({ …, motionBlur: true });簡易チェック用に --motion-blur 1

途中で、相手の判断に役立つもの(数フレーム、ラフカット)があれば、最大1つの質問を添えて送る。

4. QA(絶対にスキップしない。相手には結果だけを伝える)

  1. scripts/qa-video.sh export/<ID>.mp4 qa → qa/report.md。すべての ❌ は修正する。すべてのジャンプは意図的なカットか、修正する。
  2. node core/render.mjs text-qa <comp> qa → qa/text.md:フックが一目で読めること、テキストが28px以上(できれば40+)、コントラスト、Reels UIの下に何もないこと。すべての ❌ は修正または説明する。qa/flagged/text_*.jpg を確認する。 node core/render.mjs layout-qa <comp> qa → qa/layout.md:テキストがボックスまたはステージで切れていないか、単語が行をまたいでいないか、テキストがテキストやロゴの上に重なっていないか、.safe の外に物がないか、画像が壊れていないか。すべての ❌ は修正する。意図的な場合は要素にマークを付ける(data-qa-lines="2"、data-qa-ignore="overlap")し、READMEに理由を書く。
  3. node core/render.mjs stills <comp> qa/beats --at <beats> --safe を実行し、それぞれの静止画を確認する:セーフゾーン、何も切れていない、半分だけ読み込まれたアセットがない、重なりがない、スペルミスがない、キャプションが完全である、ルックが全体を通して維持されている。
  4. WebGLまたはプレートによる決定論的スポットチェック:同じフレームを2回レンダリングし、同じmd5であることを確認する。
  5. 一度聞く:音声がキャプション(と口)と同期している、音楽が音声の下にある、-14 LUFS。
  6. 事実確認:すべての主張にブランドREADME内のソースがある。compliance.md に合格する。
  7. ヒットチェック:「リールが機能する条件」を一つずつ確認し、どのルールを満たしているか、どのルールを満たせないか(例:「顔なし:本人が辞退」)をREADMEに記録する。もっと良くするためにできることを一つだけ相手に伝える。

5. 納品

相手に、わかりやすい言葉で伝える:動画(および他のフォーマット)、その長さとサイズ、推奨する投稿キャプションと最初のコメント、そして次にテストすべきこと(通常は2番目のフック:「これを投稿してから、リプレイで始まるバージョンを試してください。視聴者の保持率が高い方が勝ちです」)。

静かに:READMEセクション5~7(ログ、事実確認、再構築コマンド)、ステータスを delivered に、STATUS.md の行と Learnings に学んだことを記録する。

デフォルト設定

リール / 動画広告 / ストーリー1080×1920、9:16、30 fps CFR、H.264 ≤ 12 Mbit/s、-14 LUFS。有料は9~20秒、オーガニックは15~45秒
投稿 / カルーセル1080×1350、4:5
セーフゾーン、有料リール上部14%、下部35%、側面6%(.safe)
セーフゾーン、オーガニックリール上部11.5%、下部22%、左6%、右11%(.safe-organic)
音声あり作品焼き込みキャプション:多くの人が音声をオフにして見る
音声なし作品相手が選択した場合のみ。すべての意味は画面上に。キャプションは42px以上。各行は最低1.5秒表示
その他のフォーマット4:5 1080×1350、1:1 1080×1080、16:9 1920×1080

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル