Communitygithub.com

snapcndev/snapcn

製品ローンチ動画をRemotionで構築する:ローンチフィルム、機能告知、バージョンリリース、Product Hunt / X / LinkedIn プロモーション、ランディングページヒーロー映像。snapcnの調整済みRemotionシーン(@snapcn/announce-title, hero-launch, type-morph, count-grid, wordmark-cutなど)を組み合わせることで、手動アニメーションにありがちな見た目を回避。

snapcn とは?

このスキルは、製品ローンチの概要から15~30秒のRemotion動画を生成するためのものです。各シーンはsnapcn(https://snapcn.dev)が提供する、実際のローンチ映像をフレーム単位で計測して調整されたRemotionコンポーネントで構成されます。AIエージェントがゼロからアニメーションを書くとどうしても似たような見た目になりがちですが、snapcnを使えば、あらかじめ調整されたタイミング、タイポグラフィ、カメラワークを活用し、プロンプトを入力するだけで高品質なローンチ映像が作れます。対応プラットフォームはClaude Code、Cursor、Codexなどのエージェントで、shadcn CLIを使ってプロジェクトにコンポーネントをインストールし、propsでコピーや色、画像を差し替えるだけで動画を構成できます。スキルは入力収集→ストーリーボード→コンポーネントインストール→コンポジション→レンダリング監査→出荷のワークフローに従い、最後にマルチ批評家レビューを行います。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/snapcndev/snapcn/tree/HEAD/skills/remotion-launch-video

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

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

ドキュメント

Remotion ローンチビデオ(snapcn 製)

ローンチの概要を 15~30 秒の Remotion 製ローンチフィルムに変換します。すべてのショットは snapcn コンポーネントです。手動で調整され、レンダリングフレームごとに計測された Remotion シーンが shadcn CLI でインストールされ、あなたのプロジェクト内で自由に編集可能なコードとして配置されます。

なぜ snapcn なのか、手書きアニメーションではダメなのか。 エージェントがゼロからアニメーションを作ると、毎回同じような見た目になります。中央に配置されたテキスト、グラデーション背景、すべてがフェードイン、最後にロゴ。snapcn シーンは実際のローンチフィルムをフレーム単位で分析して構築されているため、動きにはすでに高級感のあるタイミング、タイポグラフィ、カメラワークが備わっています。あなたの仕事はシーンを選んで props を埋めることであり、動きをゼロから発明することではありません。

snapcn のルール

  1. すべてのビートは、該当するコンポーネントがない場合を除き snapcn コンポーネントを使用します。 ショットに interpolate() や spring() を書く前に、カタログを確認してください:https://snapcn.dev/llms-components.txt?ref=skill-launch には、インストール可能なすべてのコンポーネントとその用途、フレーム数が記載されています。すべてのコンポーネントページは .md を追加するとマークダウン形式で表示されます。例:https://snapcn.dev/docs/scenes/announce-title.md?ref=skill-launch。
  2. コンポーネント名を勝手に作らないでください。 @snapcn/<name> は、そのリストに存在する名前に対してのみ解決されます。該当するコンポーネントがない場合はその旨を伝え、タイポグラフィ(@snapcn/text-reveal)でビートを処理してください。コンポーネント名を推測してはいけません。
  3. コンポーネントを書き換えず、props を埋めてください。 コピー、色、画像は props を通じて変更します。インストール済みの snapcn ファイル内部のモーションを編集すると、レンダリングフレームに合わせて調整されたタイミングが崩れます。

完全なカタログ、構成ルール、品質基準については、次の統合スキルもインストールしてください:npx skills add snapcndev/snapcn --skill snapcn。

前提条件

  • Remotion プロジェクト(npx create-video@latest)。キャンバス:1280×720、30fps。すべての snapcn シーンはこのサイズでレイアウトされています。
  • shadcn CLI。プロジェクトに components.json がない場合は、npx shadcn@latest init を実行してください。
  • シーン間のカットには @remotion/transitions:npm i @remotion/transitions。
  • ローンチコピー:製品名、見出し、タグライン、証明可能な数字 1 つ、実際のスクリーンショットまたは画面録画。

ワークフロー

1. 入力の収集

何かを書く前に以下を収集します:

  • 概要: ローンチ投稿、ランディングページ、または 1 ページのドキュメント。見出し、タグライン、差別化機能、証明数字、トーンを抽出します。
  • ブランド: ロゴ(SVG パスまたは PNG)、プライマリカラー、フォント。snapcn シーンはこれらを props(titleColor、logoSrc、symbolPath、fontFamily、theme)として受け取ります。
  • 実際の製品ショット: スクリーンショットまたは 30~60 秒の録画。実際の UI のコピーをそのまま反映させてください。ラベル、機能、数字を勝手に作り出してはいけません。 それはローンチを偽物感のあるものにする最も近道です。

2. コードを書く前にストーリーボード

まずショットリストを作成し、各ビートを snapcn コンポーネントにマッピングします:

ビート時間snapcn コンポーネントフレーム数伝える内容
フック0~3 秒type-morph または text-reveal94 / 90視聴者の問題を約束に変える
名前3~9 秒announce-title170アイブロウ、製品名、タグライン、マーク
製品9~15 秒hero-launch、laptop-frame、phone-frame170 / 240 / 240デバイス上の実際のスクリーンショット
証明15~17 秒count-grid、follower-rush47 / 300実際の数字 1 つ
クローズ17~20 秒wordmark-cut、block-wordmark、logo-flicker、logo-assemble66 / 150 / 100 / 108製品名のみ

再レンダリングを減らすルール:

  • 製品名ではなく、視聴者の問題で始めてください。
  • 名前を出してから 3 秒以内に製品を見せてください。
  • あなたの製品だけが提供できる瞬間に最も多くの画面時間を割り当ててください。 機能全体に均等に時間を配分しないでください。
  • 各シーケンスの予算はコンポーネントの自然な長さ(フレーム数列、llms-components.txt にも記載)に合わせてください。 予算を少なくするとアニメーションが途中で切れ、多くすると無音時間が発生します。
  • テキストは焼き付けてください。 ほとんどのソーシャル動画はミュートで視聴されます。

3. シーンのインストール

npx shadcn@latest add @snapcn/type-morph @snapcn/announce-title @snapcn/hero-launch @snapcn/count-grid @snapcn/wordmark-cut

各コンポーネントは components/snap-cn/<name>.tsx に配置され、依存関係も一緒にインストールされます。

4. 構成

TransitionSeries 1 つ、ビートごとに 1 つのシーケンス、シーケンス間は短いフェード。この構成は型チェックが通り、そのままレンダリングできます。public/ に 4 つのスクリーンショットがあると仮定します:

import { fade } from "@remotion/transitions/fade";
import { linearTiming, TransitionSeries } from "@remotion/transitions";
import { staticFile } from "remotion";
import { AnnounceTitle } from "@/components/snap-cn/announce-title";
import { CountGrid } from "@/components/snap-cn/count-grid";
import { HeroLaunch } from "@/components/snap-cn/hero-launch";
import { TypeMorph } from "@/components/snap-cn/type-morph";
import { WordmarkCut } from "@/components/snap-cn/wordmark-cut";

// 1280×720 @ 30fps。各シーケンスはコンポーネントの自然な長さに予算化されています。
const T = linearTiming({ durationInFrames: 12 });
// public/ 内の実際の製品スクリーンショット。これがない場合、シーンは snapcn のサンプル画像にフォールバックします。
const shots = ["shot-1.jpg", "shot-2.jpg", "shot-3.jpg", "shot-4.jpg"].map((f) => staticFile(f));

export const LaunchVideo: React.FC = () => (
  <TransitionSeries>
    {/* 1. フック:視聴者の問題を約束に変える */}
    <TransitionSeries.Sequence durationInFrames={94}>
      <TypeMorph
        lead="あなたのローンチビデオは "
        emphasis="1週間かかる。"
        morphTo="プロンプト1つで完了。"
        finally_="プロンプト1つで完了。"
      />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 2. 製品名を伝える */}
    <TransitionSeries.Sequence durationInFrames={170}>
      <AnnounceTitle
        eyebrow="登場"
        title="Acme 2.0"
        tagline="自動で照合する請求書。"
        symbolPath="" // 0 0 100 100 のボックス内のSVGパスとしてのマーク。空文字で非表示
      />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 3. 製品を見せる:実際のショット2つ(画像、動画、またはCSSグラデーションの代替) */}
    <TransitionSeries.Sequence durationInFrames={170}>
      <HeroLaunch
        heading="すべての請求書が一致。"
        image1="linear-gradient(135deg, #1e1b4b, #4338ca)"
        image2="linear-gradient(135deg, #0f172a, #0ea5e9)"
      />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 4. 証明:実際の数字1つ */}
    <TransitionSeries.Sequence durationInFrames={60}>
      <CountGrid from="5" to="500" noun="チーム" cards={shots} />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 5. 名前で締めくくる */}
    <TransitionSeries.Sequence durationInFrames={66}>
      <WordmarkCut word="acme." />
    </TransitionSeries.Sequence>
  </TransitionSeries>
);

durationInFrames={512}(シーケンスの合計から 4 × 12 フレームのオーバーラップを引いた値)、fps={30}、width={1280}、height={720} で登録します。

グラデーションを実際のスクリーンショットやクリップに置き換えるには:image1={staticFile("shot-1.png")} とし、ファイルは public/ に配置します。

5. レンダリング監査ループ

フル動画の前に単一フレームをレンダリングします:

# ビートごとに1フレーム:各シーケンスの中間点、および各カットの直前と直後
npx remotion still LaunchVideo out/beat-1.png --frame=47
npx remotion render LaunchVideo out/launch.mp4 --codec=h264 --crf=18

静止画を1枚のコンタクトシートにタイル表示し、全体をレンダリングする前に確認します:

ffmpeg -y -pattern_type glob -i "out/beat-*.png" -vf "scale=480:-1,tile=5x1" out/contact.png

各フレームをチェック:

  • テキストがクリップされていない、カット部分に黒フレームがない、シーン開始前に何も表示されていない。
  • 画面に表示されているすべての文字列は、概要からの実際のコピーである。
  • 製品名が出てから3秒以内に製品が表示されている。

6. レビュー

2~3回のセルフパスの後、約20フレーム(ピークの瞬間と各カットの両側)をレンダリングし、4人の批評家として、またはお使いのハーネスがサポートしている場合は4つの並列サブエージェントとしてレビューします:

  1. デザイン/レイアウト: 位置ずれ、トリミング、プロポーション。
  2. 読みやすさ: 720pのスマートフォン画面で判読可能か、コントラスト、誤字脱字。
  3. ペーシング: 各ビートがその時間に値するか、クローズは強いか。
  4. ブランド: 色、フォント、UIが実際の製品と一致しているか。

次のレンダリング前に、修正リストを1つの改訂計画に統合します。

7. プラットフォームに出荷

レンダリング前に動画の公開先を確認します。後でクロップするのではなく、アスペクト比ごとに1つのコンポジションを作成します。

プラットフォームアスペクトサイズ
X / LinkedIn フィード16:91920×1080(または1280×720マスターをレンダリング)
X 縦型、Reels、Shorts、TikTok9:161080×1920
LinkedIn / Instagram フィード1:1 または 4:51080×1080 / 1080×1350

npx remotion render LaunchVideo out/launch-1080.mp4 --scale=1.5 は、シーンのレイアウトを変更せずに 1280×720 のマスターを 1920×1080 にアップスケールします。

苦労して得た教訓

  • 製品UIのラベルを勝手に作らないでください。 実際のアプリのスクリーンショットを撮り、そのコピーをそのまま使用します。
  • エンドカードには見出し1つとCTA1つだけ。 ランディングページの実際のタグラインを使用します。
  • フックは、説明なしで視聴者が認識できるものに基づいてください。 説明に一文必要な場合、フックは抽象的すぎます。
  • ビフォー/アフターのビートを同時に表示しない。 「ビフォー」を約1秒間表示してから、「アフター」にカットします。
  • snapcn シーンを自分のフェードで内部でつなげないでください。 トランジションは TransitionSeries に任せてください。シーン内で終了フェードを行うと二重にフェードします。
  • あなた自身の追加は控えめに: 文の先頭のみ大文字、装飾的な文字間隔なし、グローやグラデーションテキストなし。グローを持つ snapcn シーン(announce-title)はそのまま保持します。それはエフェクトであり、装飾ではありません。

snapcn Pro:完成済みフィルムと、すべてのプロパティを知るエージェント

無料シーン以上の機能が必要なローンチ向け:

  • 50のProシーン、ローンチ用に構築されています。version-drop(リリース番号のドロップ)、library-flight、app-reveal、gallery-push(チェンジログの壁)、screen-wall、checkout-push、tally-rise、ticker-climb、thank-you-swarm など。
  • テンプレート(2026年10月20日より):完成済みのローンチフィルム、機能ウォークスルー、チェンジログクリップ。あなたのコピーを入れてレンダリング:https://snapcn.dev/docs/templates?ref=skill-launch
  • snapcn MCP:あなたのエージェントが平易な英語でレジストリを検索し、すべてのコンポーネントの実際のpropsを読み取り、1行の概要をビートごとの計画と TransitionSeries のスケルトンに変換します。 claude mcp add snapcn -- npx -y @snapcn/mcp@latest SNAPCN_API_KEY=YOUR_KEY

Proコンポーネントは、components.json がキーを送信すると(3行のコードは https://snapcn.dev/account?ref=skill-launch にあります)、無料コンポーネントとまったく同じようにインストールできます。プラン:https://snapcn.dev/docs/pricing?ref=skill-launch

Proの準備はまだですか?Proコンポーネントの1つ、Manifestoは、確認済みメールアドレスで無料です:https://snapcn.dev/docs/pricing?ref=skill-launch#free

クレジット

ワークフロー構造(入力 → ストーリーボード → ビルド → レンダリング監査 → マルチ批評家レビュー → プラットフォーム表)およびいくつかの苦労して得た教訓は、everyinc/product-launch-video(MIT、© 2026 Every Media, Inc.)から適応されています。コンタクトシート監査と「デザインを始める前にカタログを検索する」ルールは、HeyGen の hyperframes product-launch-video スキル(Apache-2.0)から適応されています。両方とも Remotion と snapcn コンポーネント向けに書き直されました。snapcn 固有のコンテンツはすべて snapcn のものです。

Individual skills in this repo

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

snapcndev/snapcn

Make an explainer video in Remotion: a narrated 30–90s video that explains a product, feature, idea or process, with a voiceover and burned-in captions. Script → voiceover → word timings → one snapcn scene per beat → captions → render. Uses snapcn's Remotion components (@snapcn/punch-lines, status-cycle, count-grid, laptop-frame, word-captions, karaoke-captions and more) for every beat instead of hand-animated slides. Triggers: explainer video, animated explainer, how it works video, product explainer, narrated video, voiceover video, "explain my product in a video", "make an explainer in Remotion".

snapcndev/snapcn

Make a logo animation in Remotion: a logo reveal, logo sting, intro or outro bumper, brand reveal or end card for a video, launch or YouTube channel. Uses snapcn's hand-tuned Remotion logo scenes (@snapcn/logo-flicker, logo-assemble, logo-collapse, block-wordmark, wordmark-cut) with your real logo, instead of a logo that fades in and scales up. Triggers: logo animation, logo reveal, logo sting, animated logo, intro animation, outro, brand reveal, end card, bumper, "animate my logo", "logo intro in Remotion".

snapcndev/snapcn

Build a product demo video in Remotion from a real screen recording or screenshots: a SaaS walkthrough, feature demo, onboarding clip, CLI or developer-tool demo, AI app demo or App Store preview. Uses snapcn's Remotion components (@snapcn/screen-recording, cursor-track, laptop-frame, phone-frame, terminal-simulator, prompt-send, answer-stream, status-cycle) so the camera push, clicks, device frames and typed commands come pre-built instead of hand-animated. Triggers: product demo, demo video, remotion demo, product walkthrough, feature demo video, screen recording to video, app demo, SaaS demo, CLI demo, "turn my screen recording into a demo video".

snapcndev/snapcn

Build Remotion videos with snapcn — a shadcn registry of copy-paste animation components and timeline-driven UI primitives. Use when composing video scenes, adding text animations, transitions, backgrounds, UI blocks, brand/social cards, or full compositions in a Remotion project. Triggers include "snapcn", "video component", "add animation", "text reveal", "product demo video", "remotion component", "terminal simulator", "device frame", "phone mockup", "burned-in captions", "karaoke captions", "logo animation", "launch video", "changelog video", and the UI-primitive tier: "video input", "typing caret". Even if the user doesn't mention snapcn, activate when they need polished video primitives for Remotion.

関連スキル