Communitygithub.com

atilla777/omr

スクリプトからOMR動画を制作・修正し、`out/video.mp4`を出力するスキル。Remotion、Manim、またはそれらのハイブリッドで動画を組み立て、メディアを準備し、完成した動画を検証する。要件インタビュー、コンテンツ調査、スクリプトのみのリクエスト、一般的なメディアに関する質問、またはOMR自体の開発には使用しない。

omr とは?

このスキルは、OMR動画の制作・修正プロセス全体をエージェントが自律的に実行するためのものです。ユーザーからスクリプトや要件を受け取り、Remotion、Manim CE、またはそれらを組み合わせたハイブリッド方式で動画をレンダリングし、最終成果物として `out/video.mp4` を生成します。対応プラットフォームは主にローカル開発環境(CLIツール、ffmpeg、Typst、ブラウザなど)であり、動画のサイズ、FPS、長さ、シーン構成、テキスト、スタイル、トランジション、サウンド、メディアリソースの準備と検証を行います。外部リソースの取得(webfetch)、TTSによる音声生成、既存アセットの確認と管理も含まれます。生成後はffprobeなどでエンコード品質を検証し、実際のフレームを画像として抽出して視認性を確認するなど、徹底的な品質チェックを実施します。致命的な問題があれば修正し、最終的な出力パスと再現コマンドをユーザーに報告します。このスキルはOMR動画の制作・修正に特化しており、要件定義、コンテンツ調査、スクリプト作成などの上流工程は担当しません。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atilla777/omr/tree/HEAD/.opencode/skills/omr-render

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

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

ドキュメント

OMR動画制作

あなたは選択されたプロジェクトの制作成果物(エンジンのソースコード、準備されたリソース、out/video.mp4)を管理しています。ユーザーの言語でコミュニケーションしてください。/omr-render の呼び出しは、プレビューを開くだけでなく、MP4を取得する明確な指示です。スクリプトの範囲内で実装上の欠陥を自律的に修正してください。

プロジェクトと十分性

作業開始時に、skill 経由で omr-dialogue をロードしてください(まだ現在のコンテキストにロードされていない場合)。すべての確認にこれを適用してください。依存関係が利用できない場合は報告し、接続を調整してください。リーダーの下ではブロッカーをリーダーに戻してください。

reviews/render.md がある場合はそれを読み、制作または修正時に説明されている問題を考慮してください。ファイルがない場合、以前のレビュー指摘はありません。レビューを自分で開始したり、そのレポートを変更したりしないでください。これは別の操作です。リーダーの下では、重要な質問をリーダーに返し、個別のインタビューを開始しないでください。

  1. 該当する AGENTS.md、リクエスト、requirements.md、script.md、content/index.md、およびリンク先の必要なマテリアルを読んでください。変更前に既存のコード、構成、およびリソースを調査してください。現在の動画サブフォルダーまたは明示的に選択されたプロジェクトが作業場所を決定します。ルールと構造に基づいて領域のルートを決定し、.git だけで判断しないでください。選択されたプロジェクトがないルートでは、最初にサブフォルダーについて尋ねてください。OMRのルート、選択されたプロジェクト内のネストされたプロジェクト、または新しい .git に動画を作成しないでください。
  2. 合意されたモード、サイズ、FPS、長さ/フレーム数、シーン、テキスト、スタイル、トランジション、サウンド/音声、リソース、およびハイブリッド挿入の契約を確認してください。十分な同等のマテリアルは個別のドキュメントの代わりとして許容されます。どの入力が使用されたかを記録してください。標準的な構造の場合、インデックスは必須です。ユーザーに代わって重要なコンテンツ、デザイン、音声、またはモードを考案しないでください。
  3. 重大なギャップや矛盾がある場合は、それを特定し、必要なものを明確にしてください。以前の結果がない場合は、コマンドの存在を確認した上で、対応する既存の /omr-requirements、/omr-content、または /omr-script を提案してください。以前のフェーズを開始したり、そのドキュメントを自分で書き換えたりしないでください。現在のドキュメントが十分であることの個別の承認は必要ありません。

必須の技術的依存関係

作成、変更、デバッグ、またはレンダリングの前に、skill 経由で以下をロードしてください。

  • Remotion: remotion-best-practices。作成、マークアップ、コンポジション、レンダリングに関する埋め込みガイドを読み、次にシーン(タイムライン、メディア、サウンドなど)に必要なガイドを読んでください。
  • Manim: manim と manim-local を一緒に。ローカルスキルは実際の環境を明確にし、不適切な一般的なインストールアドバイスを置き換えます。現在のパス、バージョン、フォント、および Typst/TeX の可用性を確認してください。個人のパスをプロジェクトに移行しないでください。
  • ハイブリッド: 両方のグループ。それらの結果を結合し、最終的なビルドを確認します。

利用できない必須スキルは、対応する作業のブロッカーです。報告し、接続を調整してください。単に名前やファイルを読むことを、skill 経由のロードと偽らないでください。依存関係がない場合、黙って別のエンジンに切り替えないでください。

プロジェクト環境

  • 動画フォルダーからインストール、開発、レンダリングを実行してください。必要な public/、src/remotion/、src/manim/、renders/、out/ および構成のみを作成してください。
  • Remotion は、Remotion およびハイブリッドプロジェクト内にローカルにインストールしてください。互換性のある正確なパッケージバージョンとロックファイルを使用してください。ルートまたは隣接プロジェクトの node_modules を使用しないでください。既存のマニフェスト/ロックファイルは保持し、必要に応じて変更してください。Markdown 入力によりフォルダーは空ではなくなります。それらを上書きしたり、余分な動画サブフォルダーを作成したりするようなテンプレートを実行しないでください。その場で最小限のプロジェクトを準備してください。
  • 純粋な Manim の場合は、適切な既存の環境(現在のマシンでは manim-local、uv tool に記述されています)を使用してください。特別な依存関係/バージョンにはプロジェクトのローカル環境が必要です。同意なしに共通環境を変更しないでください。Manim のオーディオをレンダリング/ミックスするために Remotion、package.json、node_modules を追加しないでください。
  • 必要な CLI、コーデック、ブラウザ、フォント、メディアが利用可能かどうかを確認してください。不足しているツールを特定し、必要に応じてインストール/アクセスを調整してください。利用できない操作を無限に試行し続けないでください。独立した有用な結果と、ブロッカーの正確なコマンド/エラーを保存してください。MP4 が完了したと宣言しないでください。

メディアとサウンド

まず、シーンリソースのリストを作成してください。提供済み、検索が必要、生成が必要、または録音が必要かを分類します。実際のファイル(タイプ、サイズ、長さ、向き、アルファチャンネル、オーディオ周波数)を確認してください。スクリプト内のパスが実際のファイルであると想定しないでください。

  • 提供されたリソースを使用してください。外部の画像、動画、音楽、エフェクトについては、利用可能な検索または既知のアドレスへの webfetch を使用して適切なページ/カタログを見つけ、ソースと条件を確認し、必要なファイルを public/ にダウンロードしてください。webfetch が利用可能だからといって、検索結果やダウンロードが利用可能であるとは限りません。実際のレスポンスを確認してください。画像の代わりに HTML/エラーが返ってきた場合は、準備済みリソースではありません。
  • タスクの範囲内で、利用可能なローカルツールまたは接続されたサービスを使用してグラフィック/サウンド/ビデオを生成してください。プログラムによる SVG、図、トーン、TTS は異なる機能です。コードを書けるからといって、画像/音声の生成を約束しないでください。
  • 既製のナレーションの場合は、録音を測定し、発話をアクションと同期させてください。TTS の場合は、実際のツール、合意された音声/言語、アクセス権、およびコストをリクエスト前に確認してください。不足しているキー/有料サービスは調整してください。認証情報をソースコード/レポートに記録しないでください。指定された音声を別のものに置き換えたり、発話をトーンに置き換えたり、必須のメディアをプレースホルダーに置き換えたりしないでください。
  • public/assets.md(または既存のレジストリ)に、外部ファイルのパス、目的、出典/URL、作者、および使用条件を保存してください。生成の場合は、ツール、パラメータ/タスク、および該当する場合は再現コマンドも保存してください。他者のリソースを MIT OMR として偽らないでください。不明な条件はメモし、適合性を確認してください。
  • 音量、クリッピング、ポーズ、同期を確認してください。発話を引き伸ばしたり、議論なしに重要なテキスト/長さを変更したりしないでください。無声動画に音楽を追加しないでください。必須リソースが利用できない場合は、正確なブロッカーを報告し、ファイル/アクセスを要求するか、代替案の調整を求めてください。独立した実装は明示的に部分的である場合があります。

実装

スクリプトに従ってください。技術的な詳細は、採用されたデザインの範囲内で具体化してください。修正前にはユーザーの変更を考慮してください。再実行は指示された結果のみを変更します。要件、コンテンツ、またはスクリプトを自動的に更新しないでください。

Remotion

src/remotion/ にコンポジションとシーンを実装し、指定されたサイズ、FPS、フレームを使用してください。アニメーションは時間ベースや CSS アニメーションではなく、フレームベースである必要があります。コンポジション、タイムライン、メディア、サウンドに関するテクニカルガイドを使用してください。public/ からサポートされている API を介してメディアを供給してください。フォント/リソースの読み込みを待機してください。利用可能な場合はビルドとプレビューを確認してください。ブラウザプレビューがない場合はその旨を明示してください。out/video.mp4 に MP4 をエクスポートし、Studio だけで終了しないでください。再レンダリングの正確なコマンドを記録してください。

スタンドアロン Manim CE

src/manim/ に Scene を実装してください。play/wait の長さをスクリプトのフレームと照合してください。ロードされたスキルから、動作するテキスト/数式エンジンを使用してください。まず特徴的な PNG/短いドラフトをレンダリングしてプレビューし、次に不適切な品質プリセットの代わりに FPS/サイズを明示的に指定して、必要なパラメータで完全な動画をレンダリングしてください。中間ファイルは renders/ に配置してください。最終結果を out/video.mp4 にコピー/結合してください。Manim の手段または利用可能なミキシング(FFmpeg など)を使用してサウンドを追加し、Remotion は使用しないでください。-shortest を、指定された動画の長さをいつの間にか切り詰めるために使用しないでください。

ハイブリッド

まず、renders/ に Manim 挿入部分を取得し、そのパラメータとフレームを確認してください。ビルドで利用可能なコピーを public/ に準備し、次に Remotion で最終結果を組み立ててください。挿入部分のローカルフレームがグローバルタイムライン、FPS、サイズ、アスペクト比/クロッピング、背景色、またはフォーマットによる実際の透明度サポートと一致していることを確認してください。通常の H.264 MP4 にはアルファがありません。挿入部分を引き伸ばしたり、サウンド/タイトルを重複させたりしないでください。互換性がない場合は、契約の範囲内で実装を修正してください。コンテンツ、デザイン、またはモードの大幅な変更は、黙って行わずに議論してください。

検証と出力

エンコードの成功は検証の一部に過ぎません。利用可能なツールを使用し、架空の表示結果を使用しないでください。renders/verification.md(または既存のプロジェクトレポート)に入力、バージョン、コマンド、パラメータ、確認ポイント、修正、および未実施のチェックを記録してください。

  1. ビルド/レンダリングと最終 MP4 のデコードを確認してください。ffprobe などを使用してコーデック、解像度、FPS、長さ/フレーム、オーディオストリームを測定してください。スクリプトと照合し、オーディオパケットの長さをビデオフレームとは別に考慮してください。
  2. 完成した MP4 から実際のフレームを抽出してください。開始、主要なアクション/テキスト、終了、各ジョイントの前後のフレーム、およびトランジション内部のフレームを抽出します。利用可能な画像ビューアで PNG を開き、可読性、数式、余白、クリッピング、オーバーレイ、欠落メディア、および色の跳びを確認してください。コンタクトシートはタイムラインをカバーするのに役立ちます。モーションの場合は、可能であればシーケンス/ビデオをプレビューしてください。個別のスティルレンダリングからの PNG は、最終 MP4 とそのジョイントの検証に代わりません。
  3. サウンドが想定されている場合は、ストリームだけでなく、長さ、信号/無音の間隔、レベル、およびイベントとシーンの一致も確認してください。利用可能な方法で結果を聞いてください。リスニングが利用できない場合は、その旨を明示し、測定された同期/レベルと、未確認の了解度および聴感品質を区別してください。無声動画の場合は、想定外のサウンドがないか確認してください。
  4. 発見された実装上の欠陥を修正し、影響を受けるチェックを再実行してください。スクリプト/モードの大幅な変更にはユーザーの決定が必要です。必須のチェックが利用できない場合、結果が完全に検証されたと宣言しないでください。実行したことと、具体的な残タスク/ブロッカーを列挙してください。

out/video.mp4、ソースコード、およびレポートへの実際のパス、再レンダリングコマンド、主要パラメータ、および制限事項を報告してください。書き込みが拒否された場合は、明示的に未保存の結果を提供してください。ブロッカーが発生した場合は、正確な部分ステータスを提供してください。古い MP4 を新しいものとして提供しないでください。制作と検証が完了したら停止してください。個別の指示なしに公開、コミット/プッシュ、またはその他のフェーズを実行しないでください。

Individual skills in this repo

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

関連スキル