← 一覧に戻る

リマイン電話くん プロモーション動画制作計画

2026年3月25日 08:35 更新
MD から自動変換されたページです。内容について質問があれば右下の ? ボタンからどうぞ。

Context

remindenwa = LINE Botリマインダー。LINEに予定を送ると指定時刻にVonage Voice APIで電話がかかる。 プロモーション動画2本を制作する。

制作物:

  1. ずんだもん対話動画(横型 1920x1080、3-5分)
  2. ショートプロモ動画(縦型 1080x1920、30-45秒)

Phase 0: 環境準備

0-1: VOICEVOX起動

curl -sf http://localhost:50021/version  # 未起動ならユーザーに依頼

0-2: SE/BGMダウンロード

素材 用途 取得元 ファイル名
スマホ着信音 電話着信デモ 効果音ラボ soundeffect-lab.info phone-ring.mp3
通知音 LINE受信演出 効果音ラボ line-notify.mp3
電話接続音 応答の瞬間 効果音ラボ phone-connect.mp3
BGM(ずんだもん) 動画全体 既存 yuruyakanaasayake.mp3
BGM(プロモ) ショート動画 DOVA-SYNDROME dova-s.jp promo-bgm.mp3

効果音ラボ・DOVA-SYNDROME: 商用無料、クレジット不要、日本最大手。信頼性◎。 Playwrightでダウンロード。手動DL必要時はAskUserQuestion。

0-3: LPスクショ撮影

cd ~/repos/remotion-promo-template
npx tsx scripts/capture-screenshots.ts https://remindenwa.com
# 加えて、LPの特定セクションをPlaywrightでクリップ撮影

0-4: bot-icon.jpeg コピー

cp ~/projects/remindenwa/lp/images/bot-icon.jpeg ~/repos/remotion-voicevox-template/public/content/
cp ~/projects/remindenwa/lp/images/bot-icon.jpeg ~/repos/remotion-promo-template/public/content/

Phase 1: コンポーネント開発

1-1: LineChatMock.tsx(両テンプレートに配置)

LPヒーロー(lp/index.html 行83-91)のデザインを忠実に移植。

カラー仕様(LP実測値・全て検証済み):

要素 HEX Tailwind/CSS根拠
トーク背景 #7494b7 LP: bg-[#7494b7]
ユーザー吹き出し #06C755 LINE公式 = LP bg-primary
Bot吹き出し #FFFFFF LP: bg-white
テキスト全共通 #1a2332 LP: var(--color-text-heading)
ユーザー角丸 全体16px/右下4px LP: rounded-2xl rounded-br-sm
Bot角丸 全体16px/左下4px LP: rounded-2xl rounded-bl-sm

Props:

type ChatMessage = { sender: 'user' | 'bot'; text: string; delayFrames: number; };
type LineChatMockProps = { messages: ChatMessage[]; showHeader?: boolean; };

アニメーション: Sequence + spring() でメッセージ順次スライドアップ表示。 ユーザー=右寄せ、Bot=左寄せ+Botアイコン(28x28px rounded-full)付き。

1-2: PhoneCallMock.tsx

LP着信モック(lp/index.html 行93-108)を移植。

要素
背景 linear-gradient(145deg, #1a1a2e, #16213e)
角丸 22px
Botアイコン 48x48 rounded-full
名前 「リマイン電話くん」白字14px bold
拒否ボタン #ef4444 丸36px ×アイコン
応答ボタン #06c755 丸36px 受話器 + ringAnim
callPulse 2s ease-in-out infinite (scale 1→1.03)

状態遷移: ringing(着信音SE再生) → answered(画面切替+TTS再生)

1-3: PhoneAnswered.tsx

通話中画面。暗い背景 + タイマー表示 + 波形風アニメーション + TTS Audio再生。

1-4: TTS電話音声生成

# VOICEVOXで生成(speaker=2: めたんノーマル = 中性的)
curl -X POST "localhost:50021/audio_query?speaker=2&text=歯医者の時間だよ" -o query.json
curl -X POST -H "Content-Type:application/json" -d @query.json \
  "localhost:50021/synthesis?speaker=2" --output tts_raw.wav

# 電話音質フィルタ(帯域制限300-3400Hz + コンプレッション)
ffmpeg -i tts_raw.wav -af "highpass=f=300,lowpass=f=3400,acompressor=threshold=-20dB:ratio=4" tts_phone.wav

Phase 2: ずんだもん動画台本

テンプレート: ~/repos/remotion-voicevox-template/ BGM: yuruyakanaasayake.mp3 (volume: 0.12) ショート形式(15-60秒ではなく)、長尺3-5分

Scene 1: フック「あなたも経験ない?」(~20秒)

ID char text emotion visual se
1 metan みんなは大事な予定、すっぽかしちゃったことない? neutral text: 予定忘れの悩み
2 zundamon あるのだ!歯医者の予約忘れて怒られたのだ... sad text: 歯医者すっぽかし don.mp3
3 metan 通知やアラームじゃダメだった? neutral
4 zundamon 通知は見逃すし、アラームは止めて二度寝するのだ sad text: 通知→埋もれる/アラーム→二度寝

Scene 2: 解決策「電話が来る」(~30秒)

ID char text emotion visual se
5 metan そこで紹介するのが「リマイン電話くん」よ happy image: lp-hero.png jajan.mp3
6 zundamon リマイン...電話?なのだ? neutral
7 metan LINEに予定を送ると、時間になったら電話がかかってくるLINE Botなの neutral text: LINE→電話
8 zundamon 電話!?それは確かに無視できないのだ! happy text: 通知は無視できる。電話は無視できない。 kiraan.mp3

Scene 3: デモ - LINE登録(~45秒) [LineChatMock使用]

ID char text emotion visual se
9 metan 使い方は超簡単。まずLINEで友だち追加するだけ neutral image: lp-steps.png
10 metan あとはLINEにメッセージを送るだけよ neutral LineChatMock: user「明日9時に歯医者」 line-notify.mp3
11 zundamon おお!すぐ返事が来たのだ! happy LineChatMock: bot「9:00に『歯医者』で電話するね!」 picon.mp3
12 metan 自然な言葉で大丈夫。「30分後にゴミ出し」とか「来週月曜に会議」とか neutral text: 対応表現の例
13 zundamon 難しい操作がいらないのだ! happy

Scene 4: デモ - 電話着信(~45秒) [PhoneCallMock + TTS使用]

ID char text emotion visual se
14 metan そして時間になると... neutral
15 zundamon !?電話が来たのだ! surprised PhoneCallMock(ringing) phone-ring.mp3
16 metan 電話に出ると、予定の内容を読み上げてくれるわ neutral PhoneAnswered + TTS「歯医者の時間だよ」 phone-connect.mp3
17 zundamon おおー!これなら絶対忘れないのだ! happy kiraan.mp3

Scene 5: 特徴・安心設計(~30秒)

ID char text emotion visual se
18 metan 途中まで言いかけても大丈夫。足りない情報は聞き返してくれるの neutral LineChatMock: user「歯医者」→bot「何時に電話する?」
19 zundamon 親切なのだ! happy
20 metan 一覧で管理もできるし、キャンセルもワンタップよ neutral image: lp-list.png
21 metan 録音なし、退会で即データ削除。安心して使えるわ neutral text: 安心設計3点

Scene 6: 料金・CTA(~20秒)

ID char text emotion visual se
22 zundamon これお金かかるのだ? neutral
23 metan 3回まで無料で試せるわ。気に入ったら回数パックもあるの neutral text: 3回無料→10回¥300〜
24 zundamon 無料で試せるなら安心なのだ! happy charin.mp3
25 metan 概要欄のリンクから友だち追加してみてね happy image: add-friend-btn.png
26 zundamon 二度寝する前に追加するのだ!バイバイなのだ! happy text: remindenwa.com

ビジュアル素材の準備

素材 取得方法
lp-hero.png Playwrightでヒーロー部分をクリップ撮影
lp-steps.png Playwrightで「始め方」セクションを撮影
lp-list.png Playwrightで「一覧」モック部分を撮影
add-friend-btn.png LP最終CTAのボタン部分を撮影
bot-icon.jpeg lp/images/ からコピー
LineChatMock / PhoneCallMock Phase 1で作成したコンポーネントをvisualとして使用
TTS電話音声 Phase 1-4で生成した tts_phone.wav

制作手順

  1. script.ts を書く(上記台本をTypeScript形式に)
  2. npm run lint:script で19ルール品質チェック
  3. VOICEVOX起動 → npm run voices で全音声生成
  4. LineChatMock/PhoneCallMockコンポーネントをsrc/components/に配置
  5. Main.tsxでLineChatMock/PhoneCallMockをvisualとして組み込み
  6. npm start でプレビュー確認
  7. npm run build でレンダリング
  8. Phase 4 レビューループへ

Phase 3: ショートプロモ動画

テンプレート: ~/repos/remotion-promo-template/ (新規コンポジション追加) 形式: 縦型 1080x1920, 35秒, ナレーション付き ナレーション: VOICEVOX speaker=3 (ずんだもん)

台本

Shot 1: フック (0-3s)

Shot 2: 問題提示 (3-8s)

Shot 3: 解決策 (8-12s)

Shot 4: デモ (12-22s) ★メイン

Shot 5: 特徴 (22-30s)

Shot 6: CTA (30-35s)

技術方針

既存 PromoVideo.tsx は壊さない。新規コンポジション RemindenwaPromo を追加。

ファイル構成:

src/
├── RemindenwaPromo.tsx       # 新規メインコンポジション
├── components/
│   ├── LineChatMock.tsx      # 新規(Phase 1から)
│   ├── PhoneCallMock.tsx     # 新規(Phase 1から)
│   ├── PhoneAnswered.tsx     # 新規(Phase 1から)
│   ├── HookText.tsx          # Shot 1用
│   ├── ProblemCards.tsx      # Shot 2用
│   ├── SolutionReveal.tsx    # Shot 3用
│   ├── FeatureCards.tsx      # Shot 5用
│   └── CTAScreen.tsx         # Shot 6用
├── PromoVideo.tsx            # 既存(触らない)
└── ...

ナレーション実装:

  1. VOICEVOXでショットごとに音声生成 → public/voices/
  2. <Audio> + <Sequence> で各ショットのタイミングに配置
  3. BGMも <Audio> で重ねる (volume 0.15)

制作手順

  1. RemindenwaPromo.tsx + ショットコンポーネント実装
  2. VOICEVOXナレーション音声生成(6ファイル)
  3. root.tsx にコンポジション登録
  4. npm start でプレビュー
  5. npm run build でレンダリング
  6. Phase 4 レビューループへ

Phase 4: レビューループ(省略禁止)

4-1: フレーム単位スクリーンショットレビュー

# コンタクトシート(3fps, 5x3タイル)
ffmpeg -i out/video.mp4 -vf "fps=3,scale=320:-1,tile=5x3" /tmp/contact_%03d.png

# 特定シーンの全フレーム(必要に応じて)
ffmpeg -i out/video.mp4 -ss 10 -t 5 -vf "fps=30" /tmp/frames/frame_%05d.png

レビュー項目(各フレーム):

コンタクトシート画像をReadツールで読み取り、1枚ずつAIで目視レビュー。

4-2: 音声波形レビュー

# 波形画像
ffmpeg -i out/video.mp4 -filter_complex "showwavespic=s=1920x240:colors=green" \
  -frames:v 1 /tmp/waveform.png

# 無音検出(1秒以上の無音)
ffmpeg -i out/video.mp4 -af silencedetect=n=-30dB:d=1 -f null - 2>&1 | grep silence

# ラウドネス(-14 LUFS目標)
ffmpeg -i out/video.mp4 -af loudnorm=print_format=json -f null - 2>&1 | tail -20

レビュー項目:

波形画像をReadで読み、バランスを視覚確認。

4-3: 修正→再レンダリングサイクル

  1. 問題をリスト化(ファイル名:行番号 + 問題内容)
  2. 問題ごとに修正(script.ts, コンポーネント, 音量等)
  3. 再レンダリング (npm run build)
  4. 4-1, 4-2を再実行
  5. 問題がゼロになるまでループ(途中打ち切り禁止)

4-4: 監督エージェント

バックグラウンドで code-reviewer エージェントを起動:

Phase 5: スキル/プラグイン化計画

新スキル「service-promo-video」

LP情報→台本→アセット→レンダリング→レビューを一気通貫で行うオーケストレーター。

Progressive Disclosure(逆瀬川原則):

構成:

skills/service-promo-video/
├── SKILL.md
├── references/
│   ├── line-mock-spec.md
│   ├── phone-mock-spec.md
│   ├── script-template.md
│   ├── review-checklist.md
│   └── se-bgm-sources.md
└── scripts/
    ├── extract-frames.sh
    └── audio-review.sh

再利用するRemotionコンポーネント:

LineChatMockの汎用コンポーネント化

今回作成するLineChatMockはremindenwa専用ではなく、LINEボット全般のプロモで使える汎用コンポーネントとして設計する。propsでメッセージ内容、色、アイコンを全てカスタマイズ可能に。


実行順序まとめ

Step 内容 依存
0-1 VOICEVOX起動確認 なし
0-2 SE/BGMダウンロード なし
0-3 LPスクショ撮影 なし
0-4 bot-iconコピー なし
1-1 LineChatMock.tsx開発 なし
1-2 PhoneCallMock.tsx開発 なし
1-3 PhoneAnswered.tsx開発 なし
1-4 TTS電話音声生成 0-1(VOICEVOX)
2 ずんだもん動画: script.ts→voices→build 0-2, 1-*, 0-4
3 プロモ動画: コンポジション→voices→build 0-2, 0-3, 1-*
4 レビューループ(各動画) 2, 3
5 スキル化計画文書 4完了後

並列可能: 0-1〜0-4は全て並列。1-1〜1-3も並列。2と3はコンポーネント完成後に並列可。


重要ファイル

ファイル 用途
~/repos/remotion-voicevox-template/src/data/script.ts ずんだもん台本
~/repos/remotion-voicevox-template/src/components/ コンポーネント群
~/repos/remotion-voicevox-template/src/Main.tsx メインコンポジション
~/repos/remotion-voicevox-template/scripts/generate-voices.ts VOICEVOX音声生成
~/repos/remotion-promo-template/src/ プロモコンポーネント群
~/repos/remotion-promo-template/src/Root.tsx コンポジション登録
~/projects/remindenwa/lp/index.html LPデザイン参照(行83-108)
~/projects/remindenwa/lp/src/style.css カラーパレット
~/projects/remindenwa/lp/images/bot-icon.jpeg Botアイコン
📝 質問モード — テキストを選択してね
✓ 質問を送信しました