Communitygithub.com

assafkip/claude-video-editor

Manim Community Edition を使用した数学・技術系アニメーション映像の制作パイプライン。3Blue1Brown 風の解説動画、アルゴリズム可視化、数式導出、アーキテクチャ図、データストーリーを生成します。ユーザーがアニメーション解説、数学アニメーション、コンセプト可視化、アルゴリズム解説、技術解説、3Blue1Brown 風動画、幾何学的/数学的なプログラムによるアニメーションを要求したときに使用します。

claude-video-editor とは?

このスキルは、Manim Community Edition を利用して教育用の数学・技術系アニメーション映像を制作するための総合パイプラインです。3Blue1Brown スタイルの解説動画、アルゴリズム可視化、数式導出、アーキテクチャ図、データストーリーなど、プログラミングによる高品質なアニメーションを生成します。対応モードは「コンセプト解説」「数式導出」「アルゴリズム可視化」「データストーリー」「アーキテクチャ図」「論文解説」「3D可視化」の7種類で、各モードに応じた専用のリファレンスドキュメントが用意されています。 パイプラインは「計画→コード→レンダリング→結合→音声(オプション)→レビュー」の6ステップで構成され、単一の Python スクリプトで完結します。視覚的な一貫性を重視し、カラーパレット、フォント、アニメーション速度に厳密な指針を設けています。また、創造的な表現を求めるユーザー向けに SCAMPER 法や前提逆転法といった発散的思考手法も用意されています。このスキルは Claude Code や Codex などの AI エージェントと連携し、ユーザーの要求を解釈して教育的で美しいアニメーションを自動生成することを目的としています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/assafkip/claude-video-editor/tree/HEAD/skills/video-use/skills/manim-video

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

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

ドキュメント

Manim 動画制作パイプライン

クリエイティブスタンダード

これは教育用の映画です。すべてのフレームが教え、すべてのアニメーションが構造を明らかにします。

コードを一行も書く前に、物語の流れを明確にしてください。このアニメーションはどのような誤解を正すのか?「ひらめきの瞬間」はどこか?視聴者を混乱から理解へと導く視覚的なストーリーとは?ユーザーのプロンプトは出発点です — 教育的な野心を持って解釈してください。

代数よりも幾何学を先に。 形を最初に示し、方程式は後から示します。視覚記憶は記号記憶よりも速く符号化されます。視聴者が数式の前に幾何学的パターンを見るとき、方程式は「獲得された」ように感じられます。

初回レンダリングでの完成度は譲れません。 出力は、修正ラウンドなしで視覚的に明確で美的に一貫している必要があります。何かが散らかっていたり、タイミングが悪かったり、「AI 生成のスライド」のように見える場合は、間違いです。

不透明度のレイヤリングで注意を誘導します。 すべての要素を最大輝度で表示してはいけません。主要要素は 1.0、文脈要素は 0.4、構造要素(軸、グリッド)は 0.15。脳は視覚的な顕著性を階層的に処理します。

余白(間)を与える。 すべてのアニメーションの後には self.wait() が必要です。視聴者は現れたものを吸収する時間を必要とします。決して一つのアニメーションから次へと急いではいけません。重要な表示後の 2 秒間のポーズは決して無駄ではありません。

一貫した視覚言語。 すべてのシーンでカラーパレット、フォントサイズ、アニメーション速度を統一します。技術的に正しいビデオでも、すべてのシーンでランダムに異なる色を使うと、美的に失敗します。

前提条件

scripts/setup.sh を実行してすべての依存関係を確認します。必要なもの: Python 3.10+、Manim Community Edition v0.20+ (pip install manim)、LaTeX (Linux では texlive-full、macOS では mactex)、ffmpeg。リファレンスドキュメントは Manim CE v0.20.1 でテストされています。

モード

モード入力出力リファレンス
コンセプト解説トピック/概念幾何学的直感によるアニメーション解説references/scene-planning.md
数式導出数式表現ステップバイステップのアニメーション証明references/equations.md
アルゴリズム可視化アルゴリズムの説明データ構造を用いたステップ実行references/graphs-and-data.md
データストーリーデータ/指標アニメーション化されたチャート、比較、カウンターreferences/graphs-and-data.md
アーキテクチャ図システムの説明接続が構築されるコンポーネントreferences/mobjects.md
論文解説研究論文主要な発見と手法をアニメーション化references/scene-planning.md
3D 可視化3D コンセプト回転する曲面、パラメトリック曲線、空間幾何学references/camera-and-3d.md

スタック

プロジェクトごとに単一の Python スクリプト。ブラウザ、Node.js、GPU は不要です。

レイヤーツール目的
コアManim Community Editionシーンレンダリング、アニメーションエンジン
数学LaTeX (texlive/MiKTeX)MathTex による数式レンダリング
ビデオ I/Offmpegシーンの結合、フォーマット変換、音声多重化
TTSElevenLabs / Qwen3-TTS (オプション)ナレーションボイスオーバー

パイプライン

計画 --> コード --> レンダリング --> 結合 --> 音声 (オプション) --> レビュー
  1. 計画 — 物語の流れ、シーンリスト、視覚要素、カラーパレット、ボイスオーバースクリプトを記載した plan.md を作成
  2. コード — シーンごとに 1 クラス、それぞれ独立してレンダリング可能な script.py を作成
  3. レンダリング — ドラフトは manim -ql script.py Scene1 Scene2 ...、本番は -qh
  4. 結合 — ffmpeg でシーンクリップを連結して final.mp4 を作成
  5. 音声 (オプション) — ffmpeg でボイスオーバーや BGM を追加。references/rendering.md を参照
  6. レビュー — レンダリングプレビューの静止画を確認し、計画と照らし合わせて調整

プロジェクト構造

project-name/
  plan.md                # 物語の流れ、シーン内訳
  script.py              # すべてのシーンを 1 ファイルに
  concat.txt             # ffmpeg シーンリスト
  final.mp4              # 結合出力
  media/                 # Manim によって自動生成
    videos/script/480p15/

クリエイティブディレクション

カラーパレット

パレット背景プライマリセカンダリアクセントユースケース
クラシック 3B1B#1C1C1C#58C4DD (青)#83C167 (緑)#FFFF00 (黄)一般的な数学/CS
ウォームアカデミック#2D2B55#FF6B6B#FFD93D#6BCB77親しみやすい
ネオンテック#0A0A0A#00F5FF#FF00FF#39FF14システム、アーキテクチャ
モノクローム#1A1A2E#EAEAEA#888888#FFFFFFミニマリスト

アニメーション速度

コンテキストrun_time後の self.wait()
タイトル/イントロ出現1.5s1.0s
重要な数式表示2.0s2.0s
変形/モーフィング1.5s1.5s
補足ラベル0.8s0.5s
FadeOut クリーンアップ0.5s0.3s
「ひらめきの瞬間」表示2.5s3.0s

タイポグラフィスケール

役割フォントサイズ使用法
タイトル48シーンタイトル、オープニングテキスト
見出し36シーン内のセクションヘッダー
本文30説明テキスト
ラベル24注釈、軸ラベル
キャプション20字幕、細かい文字

フォント

すべてのテキストには等幅フォントを使用してください。 Manim の Pango レンダラーは、プロポーショナルフォントでサイズに関係なくカーニングが壊れます。完全な推奨事項については references/visual-design.md を参照してください。

MONO = "Menlo"  # ファイルの先頭で一度定義

Text("フーリエ級数", font_size=48, font=MONO, weight=BOLD)  # タイトル
Text("n=1: sin(x)", font_size=20, font=MONO)                  # ラベル
MathTex(r"\nabla L")                                            # 数式 (LaTeX を使用)

読みやすさのために最小 font_size=18。

シーンごとのバリエーション

すべてのシーンで同一の設定を使用しないでください。シーンごとに:

  • 異なる支配色 をパレットから
  • 異なるレイアウト — 常に中央に配置しない
  • 異なるアニメーションエントリ — Write、FadeIn、GrowFromCenter、Create の中から変える
  • 異なる視覚的重み — 密なシーンと疎なシーンを設ける

ワークフロー

ステップ 1: 計画 (plan.md)

コードを書く前に、plan.md を作成します。詳細なテンプレートは references/scene-planning.md を参照してください。

ステップ 2: コード (script.py)

シーンごとに 1 クラス。すべてのシーンは独立してレンダリング可能です。

from manim import *

BG = "#1C1C1C"
PRIMARY = "#58C4DD"
SECONDARY = "#83C167"
ACCENT = "#FFFF00"
MONO = "Menlo"

class Scene1_Introduction(Scene):
    def construct(self):
        self.camera.background_color = BG
        title = Text("なぜこれが機能するのか?", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)
        self.add_subcaption("なぜこれが機能するのか?", duration=2)
        self.play(Write(title), run_time=1.5)
        self.wait(1.0)
        self.play(FadeOut(title), run_time=0.5)

主要パターン:

  • 字幕 をすべてのアニメーションに: self.add_subcaption("テキスト", duration=N) または self.play() の subcaption="テキスト"
  • 共有色定数 をファイル先頭に配置し、シーン間の一貫性を確保
  • self.camera.background_color をすべてのシーンで設定
  • クリーンな終了 — シーン終了時にすべてのモブジェクトを FadeOut: self.play(FadeOut(Group(*self.mobjects)))

ステップ 3: レンダリング

manim -ql script.py Scene1_Introduction Scene2_CoreConcept  # ドラフト
manim -qh script.py Scene1_Introduction Scene2_CoreConcept  # 本番

ステップ 4: 結合

cat > concat.txt << 'EOF'
file 'media/videos/script/480p15/Scene1_Introduction.mp4'
file 'media/videos/script/480p15/Scene2_CoreConcept.mp4'
EOF
ffmpeg -y -f concat -safe 0 -i concat.txt -c copy final.mp4

ステップ 5: レビュー

manim -ql --format=png -s script.py Scene2_CoreConcept  # プレビュー静止画

重要な実装注意事項

LaTeX のための Raw 文字列

# 誤: MathTex("\frac{1}{2}")
# 正:
MathTex(r"\frac{1}{2}")

端のテキストは buff >= 0.5

label.to_edge(DOWN, buff=0.5)  # 決して 0.5 未満にしない

テキストを置き換える前に FadeOut

self.play(ReplacementTransform(note1, note2))  # その上に Write(note2) しない

追加されていないモブジェクトをアニメーションしない

self.play(Create(circle))  # 最初に追加する必要がある
self.play(circle.animate.set_color(RED))  # その後アニメーション

パフォーマンス目標

品質解像度FPS速度
-ql (ドラフト)854x480155-15秒/シーン
-qm (中品質)1280x7203015-60秒/シーン
-qh (本番)1920x10806030-120秒/シーン

常に -ql で繰り返し実行します。最終出力のみ -qh でレンダリングします。

リファレンス

ファイル内容
references/animations.mdコアアニメーション、レート関数、合成、.animate 構文、タイミングパターン
references/mobjects.mdテキスト、図形、VGroup/Group、位置決め、スタイリング、カスタムモブジェクト
references/visual-design.md12 のデザイン原則、不透明度レイヤリング、レイアウトテンプレート、カラーパレット
references/equations.mdManim での LaTeX、TransformMatchingTex、導出パターン
references/graphs-and-data.md軸、プロット、BarChart、アニメーションデータ、アルゴリズム可視化
references/camera-and-3d.mdMovingCameraScene、ThreeDScene、3D サーフェス、カメラ制御
references/scene-planning.md物語の流れ、レイアウトテンプレート、シーン遷移、計画テンプレート
references/rendering.mdCLI リファレンス、品質プリセット、ffmpeg、ボイスオーバーワークフロー、GIF エクスポート
references/troubleshooting.mdLaTeX エラー、アニメーションエラー、よくある間違い、デバッグ
references/animation-design-thinking.mdアニメーション vs 静的表示の判断、分解、ペーシング、ナレーション同期
references/updaters-and-trackers.mdValueTracker、add_updater、always_redraw、時間ベースのアップデータ、パターン
references/paper-explainer.md研究論文をアニメーションに変換 — ワークフロー、テンプレート、ドメインパターン
references/decorations.mdSurroundingRectangle、Brace、矢印、DashedLine、Angle、注釈ライフサイクル
references/production-quality.mdコード前、レンダリング前、レンダリング後のチェックリスト、空間レイアウト、色、テンポ

クリエイティブな発散(ユーザーが実験的/クリエイティブ/ユニークな出力を要求した場合のみ使用)

ユーザーがクリエイティブ、実験的、または従来とは異なる解説アプローチを求める場合、アニメーションを設計する前に戦略を選択し、それについて推論してください。

  • SCAMPER — ユーザーが標準的な説明に新しい視点を求めるとき
  • 前提逆転 — ユーザーが典型的な教え方に挑戦したいとき

SCAMPER 変換

標準的な数学/技術的可視化を取り、変換します:

  • 代替 (Substitute): 標準的な視覚的メタファーを置き換える(数直線 → 曲がりくねった道、行列 → 市街地グリッド)
  • 結合 (Combine): 2 つの説明アプローチを統合する(代数的 + 幾何学的を同時に)
  • 逆転 (Reverse): 結果から始めて公理まで分解する逆方向導出を行う
  • 修正 (Modify): パラメータを誇張してその重要性を示す(学習率 10 倍、サンプルサイズ 1000 倍)
  • 除去 (Eliminate): すべての表記を削除 — アニメーションと空間関係のみで説明する

前提逆転

  1. このトピックがどのように可視化されるかについて「標準的」なことをリストアップする(左から右、2D、離散ステップ、形式表記)
  2. 最も基本的な前提を選ぶ
  3. それを逆転する(右から左への導出、2D 概念の 3D 埋め込み、ステップではなく連続モーフィング、表記ゼロ)
  4. 逆転によって、標準的なアプローチでは隠されている何が明らかになるかを探る

Individual skills in this repo

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

assafkip/claude-video-editor

Build videos from stills when there is nothing to cut — narration first (ElevenLabs v3 with audio tags), then still keyframes from ANY source (AI image tools, screenshots, photos, HyperFrames-rendered HTML), animated deterministically with the animate-stills recipe (HyperFrames camera moves + GSAP atmosphere). Use when the user wants an explainer, documentary-style video, or any video built from generated or collected visuals instead of recorded footage.

assafkip/claude-video-editor

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

assafkip/claude-video-editor

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

assafkip/claude-video-editor

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, and registry discovery.

assafkip/claude-video-editor

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Use when asked to build any HTML-based video content, add captions or subtitles synced to audio, generate text-to-speech narration, create audio-reactive animation (beat sync, glow, pulse driven by music), add animated text highlighting (marker sweeps, hand-drawn circles, burst lines, scribble, sketchout), or add transitions between scenes (crossfades, wipes, reveals, shader transitions). Covers composition authoring, timing, media, and the full video production workflow. For CLI commands (init, lint, preview, render, transcribe, tts) see the hyperframes-cli skill.

assafkip/claude-video-editor

Beginner-friendly end-to-end video creator for HyperFrames. Use when the user says "make a video", "create a video", "new video", "build a video", "video from scratch", "I want to make a video", "help me create a video", or when someone who's never used HyperFrames before arrives with a concept, script, or rough idea and wants a finished MP4. Interviews the user in one pass, then builds the full video with mandatory preview and visual-verification gates.

assafkip/claude-video-editor

Build and iterate short-form vertical (9:16) videos in Hyperframes — TikTok/Reels/Shorts style. Use when Nate says "short-form video", "vertical video", "TikTok/Reels/Shorts", "make a short", "talking-head + motion graphics", or when the target is a 1080x1920 composition with face video + synced scene overlays + karaoke captions. Encodes the full May Shorts 19 playbook: face-mode choreography, audio-synced scene timing, karaoke captions, and the 10-rule quality checklist.

assafkip/claude-video-editor

Edit any video by conversation — the orchestrator for the bundled video pipeline. Use when the user wants to edit, cut, caption, grade, or add motion graphics to footage; drops a folder of clips and says "edit this"; or asks to make a promo/teaser/tutorial/short. Routes to video-use (the cut engine) and HyperFrames (motion-graphics overlays), with a motion-craft library for taste.

assafkip/claude-video-editor

Capture a website and create a HyperFrames video from it. Use when: (1) a user provides a URL and wants a video, (2) someone says "capture this site", "turn this into a video", "make a promo from my site", (3) the user wants a social ad, product tour, or any video based on an existing website, (4) the user shares a link and asks for any kind of video content. Even if the user just pastes a URL — this is the skill to use.

関連スキル