Communitygithub.com

mkaremm80/paper-explainer-video

研究論文のセクションや結果について、パラメータスイープとライブプロットを備えた16:9のアニメーションダッシュボード説明動画(MP4 + Pythonスクリプト + ナレーション)を作成します。

paper-explainer-video とは?

このスキルは、論文の特定のセクション(システムモデル、定理、結果図など)や概念を視覚的に説明するための、プロフェッショナルなアニメーションダッシュボード動画を生成します。出力は16:9(1920×1080、30fps)で、左側にアニメーションする物理シーン(波、アンテナ、ノードなど)、右側に2×2のライブパネル(静的曲線と動的マーカー)、下部に説明キャプションを含みます。手順としては、まず論文から1つのスイープパラメータを選び、モデルをNumPy/SciPyで再実装して検証し、Monte Carlo計算を事前キャッシュし、matplotlib FFMpegWriterでレンダリングします。プレビュー(3フレーム)の確認後、フル動画を出力し、FFmpegでフレーム抽出して品質チェックを行います。最終的にMP4、Pythonスクリプト、ナレーション用マークダウンを納品します。対応プラットフォームはローカルPython環境(matplotlib、NumPy、SciPy、FFmpegが必要)です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mkaremm80/-my-claude-skills/tree/HEAD/skills/paper-explainer-video

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

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

ドキュメント

ペーパー説明動画(ダッシュボードスタイル)

ユーザーが論文、セクション(システムモデル、定理、結果図)、または教育用概念についての説明動画、アニメーション、または「FASのような動画」を依頼した場合に使用します。

出力の外観

16:9のフレーム(1920×1080、30fps、白背景、カラフル):

  • 上部:小さなグレーのクレジット行、太字のタイトル、設定の1行パープルの概要。
  • 左側(幅の約40%):アニメーションする物理シーン(波、アンテナ、ノード、ユーザー、回路)。毎フレーム動き、決定や結果を示すマーカーが付きます。
  • 右側:2×2のライブパネルグリッド。静的な曲線は一度描画され、点線の垂直線とドットがそれに沿って移動します。1つのパネルは毎フレーム完全に再描画される場合があります(例:ある実現の棒グラフ)。
  • 下部:黄色の丸いキャプションボックス。スイープパラメータがしきい値を超えると4~6回変化し、最終ホールド中に主要な数値を含むサマリーを表示します。
  • シーン内の挿入図(例:複素平面の矢印)で主要な量を示す場合があります。

手順

  1. 論文のセクションを読みます。ストーリーを伝えるために1つのスイープパラメータ(地平線、SNR、速度、傾き、ブロック数など)を選択します。動画が示すべき一文のメッセージを書きます。
  2. 論文自身の方程式とパラメータ値を使用して、NumPy/SciPyでモデルを再実装します。描画前に主要な数値(閉形式 vs 数値積分、テーブル値、極限)を検証します。矛盾があればユーザーに伝えます。
  3. 高コスト部分を事前計算:細かいグリッド(約21点、約2万回ドロー)でMonte Carlo曲線を計算し、キャッシュします。
  4. 実現パネルでは、パラメータに滑らかに変化する1つの固定ランダムドローを使用(例:パスが固定された有限平面波和、ノイズは一度だけドロー)。シードをスキャンし、ストーリーを明確に伝えるものを選び、ナレーションノートに記載します。
  5. タイムライン:イントロホールド(約2秒)、イーズドスイープ(0.5 - 0.5 cos(pi x))、最終ホールド(約3秒)。デフォルト17秒。ナレーション用の場合は約60秒(例:8 / 42 / 10秒)。
  6. スクリプトをargparseで作成:--out、--preview(3枚のPNGフレームを書き出し)、--dpi。パラメータは先頭に記述(CREDIT、モデル値、SEED、タイミング)。matplotlib FFMpegWriter(libx264、yuv420p、ビットレート6000)を使用し、grab_frameループでレンダリングします。
  7. 必ず最初にプレビューをレンダリングし確認します。重なりを修正してからフル動画をレンダリングします。その後、ffmpegで4フレームを抽出しチェックします。
  8. .mp4、.py、およびナレーション用.md(時間 | キャプション | 簡単な英語で言うべき内容 | パネルガイド | 設定 | 簡単な編集)を納品します。バージョン番号はv1、v2、...とします。

レイアウトの教訓(これらのバグを避ける)

  • シーン軸にはset_aspect('equal', adjustable='datalim')を使用し、xlimをコンテンツに合わせて中央に配置しないと、シーンが縮んでクリップされます。
  • 長いシーンラベルは動かない場所に配置し、挿入軸がラベルを覆わないようにします。
  • 凡例:空の領域に配置(アウテージタイプの曲線では多くの場合lower right)。棒パネルではncol=2を使用し、マーカーのためにylimに余裕を残します。
  • gridspecの上部を約0.86に保ち、サブタイトルがパネルタイトルに重ならないようにし、下部を約0.155に保ち、2行のキャプションがxラベルに重ならないようにします。
  • 数式テキストは軸内の空き領域に配置し、曲線の上に重ねないようにします。
  • 完全再描画(cla)はシーンと1つの実現パネルのみに行い、その他はset_dataを使用します。1080pで510フレームの場合、約4分は通常です。

スタイル定数

青 #1c7ed6、オレンジ #e8590c、緑 #2f9e44、赤 #e03131、ティール #0c8599、パープル #7048e8、グレー #868e96、インク #212529、ゴールド #f59f00。太字タイトル11.5pt、基本フォント10pt、上部/右軸のスパインはオフ。

言語

キャプションとナレーションは簡単な英語(B2以下)で、短文と番号付きキャプションステップ("1 ·"、"2 ·"、...)を使用します。

Individual skills in this repo

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

関連スキル