remotion-launch-video について
Remotion と snapcn のシーンを使い、15〜30秒のローンチ動画を作るためのスキルです。クリエイターやエージェント向けに、絵コンテ作成から実素材の活用、レンダリング確認までを案内します。
主な機能
- 01snapcnシーンでローンチ構成を作成
- 02shadcn CLIでRemotionコンポーネントを導入
- 03プロパティでコピーやブランド素材を設定
- 04納品前にレンダリングフレームを確認
活用シーン
- 01製品ローンチ動画の制作
- 02実際のスクリーンショットを動画に活用
- 03ソーシャル向け動画構成の準備
MCP 対応
snapcn MCPを使うと、エージェントはシーンレジストリを検索し、コンポーネントのプロパティを確認して、TransitionSeriesの骨組みを含むショットごとの計画を作成できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ shadcn-labs/ snapcn --skill remotion-launch-videoインストール後、Claude Code で/remotion-launch-videoを入力して読み込まれたか確認します。
詳細
snapcn で作る Remotion のローンチ動画
ローンチ概要から、Remotion で 15〜30 秒のローンチ映像を作成します。すべてのショットは snapcn のコンポーネントです。手作業で調整し、レンダリング済みのフレームを測定して作られた Remotion シーンを shadcn CLI でインストールすると、プロジェクトに自分が所有するコードとして追加できます。
手書きのアニメーションではなく snapcn を使う理由。 エージェントがゼロからアニメーションを作ると、毎回同じ見た目になりがちです。グラデーションの上に中央揃えのテキストがあり、すべてがフェードインし、最後にロゴが表示されます。snapcn のシーンは実際のローンチ映像をもとにフレームごとに作られているため、ローンチを高級感のあるものにするタイミング、タイポグラフィ、カメラワークがすでに備わっています。必要なのはシーンを選び、props を設定することだけで、モーションを考案する必要はありません。
snapcn のルール
- 合うものがない場合を除き、すべてのビートに snapcn コンポーネントを使います。 ショットに
interpolate()やspring()を書く前に、カタログを確認してください。https://snapcn.dev/llms-components.txt?ref=skill-launchには、インストール可能なすべてのコンポーネントと用途、再生フレーム数が記載されています。コンポーネントのページは、末尾に.mdを付けると Markdown 形式で表示できます。例:https://snapcn.dev/docs/scenes/announce-title.md?ref=skill-launch。 - コンポーネント名を推測で作らないでください。
@snapcn/<name>で解決できるのは、その一覧にある名前だけです。ビートに合うものがなければ、その旨を伝え、名前を推測せずにタイポグラフィ(@snapcn/text-reveal)で表現してください。 - コンポーネントを書き換えずに、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. 素材を集める
作成に取りかかる前に、次の素材を用意します。
- 概要:ローンチ投稿、ランディングページ、または概要資料です。見出し、タグライン、差別化要素、根拠となる数値、トーンを抽出します。
- ブランド:ロゴ(SVG パスまたは PNG)、メインカラー、フォント。snapcn のシーンにはこれらを props(
titleColor、logoSrc、symbolPath、fontFamily、theme)として渡します。 - 実際のプロダクト画面:スクリーンショットまたは 30〜60 秒の録画です。実際の UI の文言を使ってください。 ラベル、機能、数値を決して作り上げないでください。ローンチを偽物のように見せてしまう、最も手っ取り早い方法です。
2. コードを書く前にストーリーボードを作成する
まずショットリストを作成し、各ビートを snapcn コンポーネントに割り当てます。
| ビート | 時間 | snapcn コンポーネント | フレーム数 | 内容 |
|---|---|---|---|---|
| フック | 0–3s | type-morph または text-reveal | 94 / 90 | 視聴者の課題を、解決の約束に変える |
| 名前 | 3–9s | announce-title | 170 | アイブロウ、製品名、タグライン、マーク |
| 製品 | 9–15s | hero-launch、laptop-frame、phone-frame | 170 / 240 / 240 | デバイス上に表示された実際の画面 |
| 実績 | 15–17s | count-grid、follower-rush | 47 / 300 | 実際の数値を1つ |
| クロージング | 17–20s | wordmark-cut、block-wordmark、logo-flicker、logo-assemble | 66 / 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. Each Sequence is budgeted to the component's natural length.
const T = linearTiming({ durationInFrames: 12 });
// Real product screenshots in public/. Scenes fall back to snapcn sample images without them.
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. Hook: the viewer's problem, turned into the promise */}
<TransitionSeries.Sequence durationInFrames={94}>
<TypeMorph
lead="Your launch video "
emphasis="takes a week."
morphTo="takes a prompt."
finally_="a prompt."
/>
</TransitionSeries.Sequence>
<TransitionSeries.Transition presentation={fade()} timing={T} />
{/* 2. Name the product */}
<TransitionSeries.Sequence durationInFrames={170}>
<AnnounceTitle
eyebrow="Introducing"
title="Acme 2.0"
tagline="Billing that reconciles itself."
symbolPath="" // your mark as an SVG path in a 0 0 100 100 box; "" shows none
/>
</TransitionSeries.Sequence>
<TransitionSeries.Transition presentation={fade()} timing={T} />
{/* 3. Show the product: two real shots (image, video, or a CSS gradient stand-in) */}
<TransitionSeries.Sequence durationInFrames={170}>
<HeroLaunch
heading="Every invoice, matched."
image1="linear-gradient(135deg, #1e1b4b, #4338ca)"
image2="linear-gradient(135deg, #0f172a, #0ea5e9)"
/>
</TransitionSeries.Sequence>
<TransitionSeries.Transition presentation={fade()} timing={T} />
{/* 4. Proof: one real number */}
<TransitionSeries.Sequence durationInFrames={60}>
<CountGrid from="5" to="500" noun="teams" cards={shots} />
</TransitionSeries.Sequence>
<TransitionSeries.Transition presentation={fade()} timing={T} />
{/* 5. Close on the name */}
<TransitionSeries.Sequence durationInFrames={66}>
<WordmarkCut word="acme." />
</TransitionSeries.Sequence>
</TransitionSeries>
);
durationInFrames={512}(各シーケンスの合計から重なり分の12フレーム×4を差し引いた値)、fps={30}、width={1280}、height={720} で登録します。
グラデーションを実際のスクリーンショットやクリップに置き換えます。たとえば、image1={staticFile("shot-1.png")} とし、ファイルを public/ に配置します。
5. レンダリングと監査を繰り返す
動画全体をレンダリングする前に、単一フレームをレンダリングします。
# One frame per beat: the midpoint of each sequence, and just before and after each cut
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つの並列サブエージェントとしてレビューします。
- デザイン/レイアウト:配置のずれ、トリミング、プロポーション。
- 読みやすさ:スマートフォンの720p画面で判読できるか、コントラスト、誤字。
- テンポ:各ビートがその時間に見合う内容になっているか、クロージングに力があるか。
- ブランド:色、フォント、UI が実際の製品と一致しているか。
次のレンダリング前に、各レビューの修正リストを1つの改訂計画にまとめます。
7. プラットフォームに合わせて仕上げる
レンダリング前に、動画の公開先を確認します。後からトリミングするのではなく、アスペクト比ごとに構成を1つ作成します。
| プラットフォーム | アスペクト比 | サイズ |
|---|---|---|
| X/LinkedIn フィード | 16:9 | 1920×1080(または1280×720のマスターをレンダリング) |
| X 縦型、Reels、Shorts、TikTok | 9:16 | 1080×1920 |
| LinkedIn/Instagram フィード | 1:1 または 4:5 | 1080×1080/1080×1350 |
npx remotion render LaunchVideo out/launch-1080.mp4 --scale=1.5 を実行すると、シーンのレイアウトを変更せずに、1280×720のマスターを1920×1080にアップスケールできます。
苦労して得た教訓
- 製品の UI ラベルを勝手に作らないでください。 実際のアプリのスクリーンショットを撮り、その文言に合わせます。
- エンドカードには見出しを 1 つ、CTA を 1 つだけ置きます。 ランディングページで実際に使われているタグラインを使用します。
- 説明なしでも視聴者が認識できるものをフックの軸にします。 説明に一文必要なら、フックが抽象的すぎます。
- ビフォーアフターは、同時に見せるより順番に見せる方が効果的です。 「ビフォー」を約 1 秒見せてから、「アフター」に切り替えます。
- snapcn のシーンをつなぐために、シーン内に独自のフェードを追加しないでください。 トランジションは
TransitionSeriesに任せます。シーンごとの終了時フェードを入れると、フェードが二重になります。 - 独自に追加する要素は控えめにします:文頭のみ大文字にし、装飾的な文字間隔や、光彩・グラデーションのテキストは使いません。光彩を含む snapcn のシーン(
announce-title)では、その効果は残します。装飾ではなく、効果だからです。
snapcn Pro:完成した映像と、あらゆる小道具を把握したエージェント
無料のシーンだけでは足りないローンチ向け:
- ローンチ向けに作られた Pro シーン 50 種。
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
components.json にキーを設定すれば、Pro コンポーネントは無料のコンポーネントとまったく同じ手順でインストールできます(3 行の設定は https://snapcn.dev/account?ref=skill-launch にあります)。プラン:https://snapcn.dev/docs/pricing?ref=skill-launch
Pro をまだ利用する準備ができていませんか?Pro コンポーネントの 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 独自のものです。