tiktok-promo-video

TikTok Promo Video (Remotion)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tiktok-promo-video" with this command: npx skills add yusuketsunoda/ppt-trans/yusuketsunoda-ppt-trans-tiktok-promo-video

TikTok Promo Video (Remotion)

PPT翻訳SaaSのTikTok縦型プロモ動画をRemotionで作成・編集するスキル。

When to Use This Skill

  • TikTokプロモ動画の新規シーン作成・既存シーン編集

  • 動画の文言・タイミング・レイアウト修正

  • 新しいComposition(A/Bバリアント)の追加

  • コンポーネント追加・修正

  • レンダリングとデバッグ

Project Structure

promo-video/ ├── package.json # Remotion + React(バージョンはpackage.json参照) ├── tsconfig.json ├── public/screenshots/ # スクリーンショット素材 │ ├── upload.png │ ├── dashboard-empty.png │ └── landing.png └── src/ ├── index.ts # registerRoot(RemotionRoot) ├── Root.tsx # Composition登録(Folder + Composition) ├── constants.ts # 全定数: FPS, サイズ, シーン尺, カラー, コピー ├── fonts.ts # NotoSansJP (@remotion/google-fonts) ├── motion.ts # アニメーションユーティリティ ├── index.css # Tailwind (optional) ├── TikTokAd.tsx # Ad版メイン (Sequence) ├── TikTokPromo.tsx # LP版メイン (TransitionSeries) ├── components/ │ ├── Background.tsx # ダーク背景 │ ├── SafeArea.tsx # TikTok安全領域 (top:160, bottom:260) │ ├── KineticLine.tsx # テキスト表示(emphasis, veil対応) │ ├── Icons.tsx # SVGアイコン(Bolt, Shield, Table, Globe, Pen, Arrow) │ ├── TapRing.tsx # タップアニメーション │ ├── TimerBadge.tsx # タイマー表示 │ ├── ProgressBar.tsx # プログレスバー │ ├── GlowEffect.tsx # グロー演出 │ └── PhoneMockup.tsx # スマホモック └── scenes/ ├── HookScene.tsx # LP: フック(課題提示) ├── SolutionScene.tsx # LP: 証拠(タイマー + スクショ) ├── DemoScene.tsx # LP: 編集デモ(1行修正) ├── FeaturesScene.tsx # LP: 特徴カード(速い/表も翻訳/多言語/直せる) ├── CTAScene.tsx # LP: CTA(comment/try) ├── AdHookScene.tsx # Ad: Before/After カード ├── AdProofScene.tsx # Ad: タイマー + スクショ ├── AdDiffScene.tsx # Ad: 1行修正デモ └── AdCTAScene.tsx # Ad: CTA(profile/comment)

TikTok Format Constraints

項目 値

解像度 1080 x 1920 (9:16 縦型)

FPS 30

Safe Area上部 160px (UIオーバーレイ)

Safe Area下部 260px (UIオーバーレイ)

Safe Area左右 60px padding

Ad版尺 11.5s = 345f

LP版尺 15.0s = 450f

Composition Architecture

Ad版 (TikTokAd) — Sequence ベース

Hook(24f/0.8s) → Proof(126f/4.2s) → Diff(105f/3.5s) → CTA(90f/3.0s) = 345f

  • Sequence の from
  • durationInFrames で正確なフレーム制御
  • COPY_VARIANTS (A/B/C) で文言A/Bテスト

  • ctaVariant ("profile" | "comment") でCTAモード切替

LP版 (TikTokPromo) — TransitionSeries ベース

Hook(29f) → Proof(107f) → Edit(143f) → Cards(128f) → CTA(75f) = 482f - 4*8f(transitions) = 450f

  • TransitionSeries
  • linearTiming でシーン間トランジション
  • トランジション尺 = 8f (LP_TRANSITION)

  • 計算式: 合計 = sum(シーン尺) - (トランジション数 * トランジション尺)

Animation Rules (CRITICAL)

禁止事項

  • CSS transition/animation 禁止 — Remotionは各フレームを独立レンダリングするため動作しない

  • emoji禁止 — クロスプラットフォームでレイアウトズレ。SVGアイコン (Icons.tsx) を使用

  • native <img> 禁止 — <Img>

  • staticFile() を使用

必須パターン

// アニメーションは必ず useCurrentFrame + interpolate/spring const frame = useCurrentFrame(); const opacity = interpolate(frame, [0, 10], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp", });

motion.ts ユーティリティ

関数 用途 特徴

fadeIn(frame, start, duration)

フェードイン interpolate

fadeOut(frame, start, duration)

フェードアウト interpolate

enterFromBottom(frame, start, duration)

下から登場 Easing.out(exp)

enterFromRight(frame, start, duration)

右から登場 Easing.out(exp)

scaleIn(frame, fps, delay)

スケールイン spring(damping:200) — バウンスなし

springBounce(frame, fps, delay)

バウンス spring(damping:12, stiffness:200)

Component API Quick Reference

詳細は components.md を参照。

コンポーネント 主なProps 用途

SafeArea

children TikTok安全領域ラッパー

KineticLine

text, fontSize, emphasisWord, veil テキスト表示(固定幅、中央揃え)

Icons.*

size SVGアイコン (Bolt/Table/Globe/Pen/Arrow)

TapRing

x, y, delay タップ演出

TimerBadge

seconds, done タイマー表示

ProgressBar

progress, done, width 進捗バー

Background

ダーク背景

GlowEffect

color, size, delay グロー演出

Workflow

新規シーン作成

  • constants.ts にシーン尺を定義

  • scenes/ にシーンコンポーネントを作成

  • メインコンポーネント (TikTokAd/TikTokPromo) にシーンを追加

  • TransitionSeries使用時はフレーム計算を検証: sum(scenes) - (transition_count * LP_TRANSITION) = LP_FRAMES

文言変更

  • LP版: 各シーンファイル内のテキスト直接変更

  • Ad版: constants.ts の COPY_VARIANTS (A/B/C) を変更

レンダリング

cd promo-video npx tsc --noEmit # 型チェック(必須) npm run render:all # 全4本レンダリング

個別:

npm run render:ad-profile # Ad Profile CTA npm run render:ad-comment # Ad Comment CTA npm run render:lp-comment # LP Comment CTA npm run render:lp-try # LP Try CTA

出力先: promo-video/out/

Common Pitfalls

問題 原因 対処

Folder name error Folder nameにスペース a-z, A-Z, 0-9, - のみ使用

NotoSansJP subset error "japanese" subset指定 番号付きsubset [0] -[123] を使用

循環参照 Root.tsx ↔ Composition fonts.ts を独立ファイルに分離済み

render command format remotion render Root CompId

remotion render CompId --output path

画像表示されない native <img>

<Img src={staticFile("path")}/>

フォントずれ fontFamily未設定 AbsoluteFill の style に fontFamily 設定

レイアウトずれ 固定幅未設定 KineticLine (maxWidth), テキストはcenter align

AI Assistant Instructions

このスキルが有効化された時:

  • promo-video/ で作業: cd せず絶対パスを使用

  • constants.ts を起点に: 尺・カラー・コピーはすべてここ

  • 型チェック必須: 変更後は npx tsc --noEmit を実行

  • レンダリング確認: npm run render:all で全本出力確認

  • Remotion best practices skill も参照: アニメーション・トランジション詳細

Always:

  • アニメーションは useCurrentFrame
  • interpolate /spring のみ
  • テキスト表示は KineticLine を優先使用

  • アイコンは Icons.tsx のSVGアイコンを使用(emoji禁止)

  • 画像は <Img src={staticFile("...")}/> を使用

  • TransitionSeries のフレーム計算を検証する

  • SafeArea 内にコンテンツを配置する

Never:

  • CSS transition/animation を使わない

  • emoji をテキストに含めない

  • native <img> を使わない

  • フレーム計算を検証せずにコミットしない

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

pptx-translation

No summary provided by upstream source.

Repository SourceNeeds Review
General

material-design

No summary provided by upstream source.

Repository SourceNeeds Review
General

stripe-integration

No summary provided by upstream source.

Repository SourceNeeds Review
General

review

No summary provided by upstream source.

Repository SourceNeeds Review