Communitygithub.com

レビューループ(HyperFrames 版)

アニメーションビデオのビジュアルセルフレビューループ(HyperFrames 版)— ドラフト出力、各タイムラインビートでスクリーンショットを撮ってコンタクトシートを作成、チェックリストと照合、修正、やり直し。アニメーションのフレームやタイミングに変更があった場合、およびビデオ完了を宣言する前に、必ずこのスキルを使用してください。

レビューループ(HyperFrames 版) とは?

このスキルは、HyperFrames ベースのアニメーションビデオプロジェクト向けの視覚的レビューループを提供します。AIエージェント(Claude Code、Coder、Cursorなど)が動画を直接視聴できないという制約を克服するために、各タイムラインビートのスクリーンショットからコンタクトシートを生成し、構成、テキスト、リズム、一貫性を体系的にチェックします。HyperFrames CLI の `check` コマンドによる自動検証から始まり、ドラフトレンダリング、コンタクトシート生成、手動レビュー、修正、そして高品質最終出力までの反復プロセスを支援します。元のスキルは whaleyxbt/claude-motion の `review-loop` に基づいており、kinocut MCP ツールとカスタムPythonスクリプトに適応されています。中国語(繁体字)のテキストチェックや音声ラウドネス測定(EBU R128)などの機能も含まれており、アニメーションビデオ制作の品質保証に不可欠なツールです。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tzezhang1-crypto/claude-motion-explainer-video/tree/HEAD/skills/review-loop

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

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

ドキュメント

レビューループ(HyperFrames 版) は何をしますか?

あなたはビデオを見ることはできませんが、フレームは見ることができます。「現在のバージョン」の出力済みコンタクトシートを確認せずに、ビデオ完了を報告しないでください。

原作:whaleyxbt/claude-motion の review-loop スキル(MIT、同ディレクトリの LICENSE 参照)。元の npm run … コマンドを kinocut MCP の HyperFrames ツールと、このディレクトリの scripts/sheet.py に置き換え。「(本版追加)」とマークされた段落は原作にはありません。

以下の SHEET は python "<このスキルディレクトリ>/scripts/sheet.py"(例:~/.claude/skills/review-loop/scripts/sheet.py)を指します。すべてのパスは絶対パスを使用します。

ループ

  1. まず機械チェックを実行(本版追加):プロジェクトディレクトリで hyperframes check を実行します。lint、実行時、レイアウトオーバーフロー、アニメーション、コントラストチェックを一度に実行します(公式では validate/inspect は非推奨となり、check に置き換えられました)。エラーがあれば先に修正し、修正後に次の手順に進みます。詳細は公式の hyperframes-cli スキルを参照してください。
    • マスクの出現は、登場中に必ず container_overflow を報告しますが、これは意図的なデザインであり、マスクコンテナに data-layout-allow-overflow を追加します。ただし、配置後に text_box_overflow が報告される場合は、コンテナの高さが不足しており、文字(特に中国語と上付き文字)が切れる可能性があるため、コンテナを高くする必要があります。
  2. ドラフト:hyperframes_render、パラメータ quality: "draft"、output_path を <プロジェクト>/out/draft.mp4 に設定。
  3. コンタクトシート:SHEET --video <プロジェクト>/out/draft.mp4 --timeline <プロジェクト>/timeline.js --out <プロジェクト>/out/sheets 各ビートの 0.3 秒後(アニメーションが収束した時点)にフレームをキャプチャし、4×2 で結合して out/sheets/beats-N.png を作成。各フレームにはビート名と時間がラベル付けされます。各フレームのデフォルト幅は 360 px、つまりモバイルフィードでの実際の幅です。
  4. Read ツールで各シートを開き、以下のチェックリストと項目ごとに照合します。
  5. 疑わしい箇所を拡大確認:
    • トランジション部分をスキャン:SHEET --video … --from 3 --to 5 --every 0.2 --name scrub
    • 特定の時刻を確認:SHEET --video … --at 3.7,3.75,3.8 --name exact
    • 単一フレームをフル解像度で確認:hyperframes_still、frame にフレーム番号(秒数 × fps)
    • ビデオを再出力せずに、hyperframes_snapshot の at を使用してコンポジションから直接スクリーンショットを撮り、SHEET --images … --labels … で結合することもできます。
  6. 修正後は手順 0 に戻ります。完全に一巡して問題が見つからなければ、終了します。
  7. 最終版:hyperframes_render、quality: "high" でビデオを出力し、出力されたビデオに対して手順 2 を再度実行し、その後オーディオチェックを行います(下記参照)。

チェックリスト

構成

  • 各フレームには焦点が 1 つだけある。2 つの要素が競合する場合、1 つは待機する。
  • 意図しない衝突や重なりがない。特にトランジション時、退出と進入の要素が同じ空間を共有する場合に注意。
  • セーフゾーン:重要なコンテンツは端から約 60 px 以上離す。
  • フレーム 0 は実際の画面であり、黒ではない(ソーシャルプラットフォーム上のサムネイルになるため)。

テキスト

  • マスク、コンテナ、または画面端によって切られていない(意図的な場合を除く)。
  • モバイル幅(シートのセル)に縮小しても、重要なメッセージが読み取れる。
  • 読み取られるべきときに、テキストが動いていない。
  • (本版追加)中国語:誤字なし;すべて繁体字フォントで、簡体字が混在していない;句読点は全角;フォントの文字欠けなし(四角や明らかに異なるフォントが表示されない)。

リズム

  • 各読み取られるべき状態は、十分に長く停止している(motion-design のセクション 4 参照)。停止中のフレームでテキストがまだ動いている場合、停止時間が短すぎる。
  • シーン間はオーバーラップして接続されており、空白画面にカットされない。
  • 退出は進入より速い。

一貫性

  • :root カラーパレットの色のみを使用。アクセントカラーはそのフレームの強調点を示す。
  • 同じ要素は、登場するすべてのシーンで同じように見える。

オーディオ(オーディオがある場合のみ)

  • 波形:video_audio_waveform で、オーディオのピークが TL のビートに合っているか確認。
  • ラウドネス(本版追加、原作の npm run wave を置き換え): ffmpeg -hide_banner -nostats -i <最終ビデオ> -af ebur128=peak=true -f null - 最後のサマリーの Integrated loudness と True peak を確認。目標は −14 LUFS ±1、true peak ≤ −1 dBFS。
  • 中国語ナレーションのアクセントと感情は、ユーザーが耳で確認し、スコアで代用しない(本版追加)。

報告

完了時には、何をチェックしたか、何を修正したか、どのシートで結果を確認できるかを明確に述べること。再出力して実際に確認していない修正は、修正済みと主張しない。

Individual skills in this repo

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

関連スキル