アニメエピソード制作 は何をしますか?
概要
縦型・音声付き・字幕付きのアニメーションエピソード:キャラクターアート、パネル、クローンまたはライブラリ音声、音楽、画像から動画へのクリップ、リップシンク。これらを実際のダイアログ音声から各ショットのタイミングを計算するエンジンがカットします。プロジェクト全体は単一の episode.json に保存され、engine/episode.py がすべてのフェーズを実行します。兄弟スキルがプロバイダー作業を行います。
エンジンを使用してください。独自の編集スクリプトを作成しないでください。 タイムライン、オーバーレイ、字幕、右から左へのテキスト、ミックス、持続時間、リップシンク結合はすでに engine/ に含まれています。実際の3.5分のエピソードを再構築して証明済みです:同一フレーム、同一オーディオ、そして元のエピソードが逃していた正確な長さ。手書きの編集では references/troubleshooting.md のすべてのバグを再発見することになります。
オーディオがマスターです。 ショットの長さ、字幕のタイミング、リップシンクのパーツはすべて完成したダイアログファイルから取得されます。テキストからタイミングを推定しないでください。
あなたは見たり聞いたりできません。 フレーム、持続時間、数値をチェックします。人間が似顔絵、声、発音、タイミング、ジョークを判断します。彼らのゲート(確認ポイント)を計画し、守ってください。
必要条件:
- このスキルの隣に以下のスキルが必要:image-generation、elevenlabs-tts、generating-video-clips。
- Python 3 と
pip install -r <this-skill-dir>/requirements.txt(RAQMでビルドされたPillow、numpy;OpenCVはオプション)。 - ffmpeg 7 以降。
- フォント:スタイルと字幕はフォントキー(例では
bold、hblack、black)を名前に使用し、fontsがインストール済みの.ttfファイルにマッピングします。ヘブライ語とラテン語には、Rubik と Heebo(無料、Google Fonts)が適しています;checkは欠落している場合にブロックします。 - 環境変数にキーを設定し、エンジンを実行するすべてのシェルで設定します:
OPENAI_IMAGE_API_KEY、ELEVENLABS_API_KEY、GEMINI_API_KEY、FAL_KEY。
APIコールなしでパイプライン全体を確認するには、python3 <this-skill-dir>/engine/episode.py /tmp demo を実行し、作成されたデモプロジェクトで check と build を実行します。
パイプラインとそのゲート(確認ポイント)
各ゲートは停止点です:アーティファクトを送信し、質問し、待ちます。コマンドは python3 <this-skill-dir>/engine/episode.py PROJECT <command> です。費用は2026年10月時点のものです。
| # | フェーズ | コマンド | ゲート(人間) | 費用 |
|---|---|---|---|---|
| 1 | ストーリーと脚本 | templates/script.template.md からの script.md | 脚本、およびすべてのセンシティブな話題 | - |
| 2 | キャラクター設定書 | templates/characters.template.md、次に episode.json の characters | - | - |
| 3 | 顔、カード、昇格 | chars face、chars card key=face.png、chars final keys | すべてのカードを1枚のシートで見た似顔絵 | キャラクターあたり約$0.30 |
| 4 | パネル | panels draft、次に panels final ids | すべてのパネルをシートで確認 | パネルあたり約$0.30 |
| 5 | 音声 | 音声ごとに1サンプル(elevenlabs-tts) | バッチ前に耳で全ての音声を確認 | セント単位 |
| 6 | セリフ | lines | タイムスタンプ付きで耳でセットを確認;名前A/B | セントから数ドル |
| 7 | 音楽と効果音 | sound | 音楽 | セント |
| 8 | アニマティック | build(クリップなし:カメラ移動付き静止画) | 動画費用が発生する前にペースと順序を確認 | 無料 |
| 9 | アニメーション | animate、シート、animate S --takes 2 + animate pick S K で再テイク | 動作をシートで確認 | クリップ1秒あたり約$0.10、テイクごと |
| 10 | リップシンク | lipsync prep、設定内の顔ポイント、lipsync run | フレームをスポットチェック | 1秒あたり約$0.13 |
| 11 | 編集と納品 | build、sheet、deliver | 人間がmp4を視聴 | 無料 |
各フェーズのコマンド、入力、出力、障害処理:references/pipeline.md。
脚本の書き方
有効だったルール(詳細と実例:references/script-writing.md):
- 最初の3〜4秒でフック(問題のコールドオープン)、その後にタイトル。30秒未満の場合は、タイトルとエンドカードをストーリーショットのオーバーレイとして配置し、モンタージュは省略します。
- すべてのレギュラーキャラクターが少なくとも1回は話す。 イントロモンタージュで、各キャラクターが自分の声で約1.2〜1.5秒で一言ずつ話すのは安価で好まれます。
- 画面内のテキストは読みやすく: 約0.8秒+1文字あたり0.06秒;短いカードは1.2〜1.5秒;最終キャプションは4〜6秒。カードには
mindurを設定します。 - 伏線は早めに張り、回収する。 グループの実際の内輪ネタへのコールバックが最も効果的です。
- センシティブな話題はユーザーの判断に委ねる。 使用したい個人情報(健康、金銭、人間関係、家族、喧嘩)をすべてリストアップし、それぞれについて質問し、確認されたものだけを使用します。
- セリフは12語以下、数字は言葉で表記。 画面上のテキストは通常のスペルを維持;発音修正は
pronounceに記述します。 - ナレーションでも音楽と効果音を。 少なくとも1つの音楽ベッドと数個の効果音(カット時のウィッシュ、暴露時のヒット);無音のベッドは未完成に聞こえます。
エピソード.json を一目で
templates/episode.example.json は完全な小規模エピソードです;すべてのキーは references/config-schema.md にあります。最も頻繁に編集する部分:
characters:表示名、色、音声、およびキャラクター設定書からのプロンプトフィールド。speakers:描画されない音声(ナレーターなど)({"display": null, "voice": "<id>"}は名前なしで字幕を表示します)。lines:ID、話者、オーディオタグ付きテキスト;1語のセリフにtrimとlevel。shots:画像、セリフ("[email protected]"は前のセリフと重なる)、パッド、mindur、カメラ、fx、sfx、オーバーレイ、クリップオフセットと速度。music_cues:[cue, from shot, to shot, volume, offset]。キューがそのウィンドウより短い場合、ビルドが警告します。lipsync:どのショット、どのセリフをスキップするか、パーツごとに1つの顔ポイント。prompts:異なる外観(3Dカートゥーン、水彩、フォトリアル)のためにchar_styleとpanel_styleを上書きします。
ビルドとレビュー
- 修正はまとめて行う。 フルビルドには数分かかります。レビューラウンドからのすべてのノート(セリフのテイク、パッド、クリップオフセット)を収集し、すべてを適用してから一度だけ再ビルドします。
- セグメントはキャッシュされ追跡されます。
buildは、入力が変更されたショットのみを再レンダリングします:新しいクリップやリップシンクバージョン、昇格されたパネル、編集されたセリフ、ショット、スタイル。build --only S05,S06はそれらのショットを強制;--forceはすべてを再レンダリングします。 - リップシンクされたショットは、そのクリップ、オフセット、速度、またはセリフに変更があった場合にやり直されます:
lipsync prep S05 && lipsync run S05。それまでは、ビルドは古いと警告し、生のクリップを使用します。 - 既存のアセットを再生成するには
--forceが必要です(sound theme --force、animate S05 --force);それなしでは、既存ファイルは保持され、ギャップのみが埋められます。 - シートでレビューする。
sheetはショットごとに3フレームを1ページに配置します。人間が時間で瞬間を指定した場合、回答する前にそれらのフレームを抽出して読みます(ffmpeg -ss T -i build/<output>.mp4 -frames:v 1 f.jpg)。 - ビルドの前に毎回
checkを実行: 不足アセット、キー、兄弟スキル、フレームより広いオーバーレイテキスト。 - 持続時間はすべてのビルド終了時に検証されます。 オーディオがビデオより短い場合、ビルドは失敗し、エンディングが切れるのを防ぎます。
- 送信前:
references/qa-checklist.md。
人間と協力する
- すべてのアーティファクトをファイル送信ツールで送り、Finderで表示するよう提案します;パスを印刷するだけではダメです。最終ステップは
deliverとそのファイルの送信です。 - オーディオについては、何をどこで聞くべきかを伝えます("0:41で、Daniの名前は正しく聞こえますか?")。聞いたと主張しないでください。
- 発音と音声の選択は彼らの判断です:タイムスタンプ付きのA/Bファイル(elevenlabs-tts)。
- 有料フェーズの前に費用見積もりを提示し、後に累計を提示します。
何かがおかしい場合
| 症状 | 修正方法 |
|---|---|
| カードやキャプションが速すぎて読めない | mindur / post を上げる:短いカードは約1.2〜1.5秒、最終キャプションは4〜6秒 |
| タイトルが両端で切れている | check が警告;スタイルの size を下げるか wrap を追加 |
| セクションが終わる前に音楽が止まる | ビルドが警告済み:キューの seconds を上げ、sound <cue> --force;またはセクションを2つのキューに分割 |
| エンディングが切れている | エンジンでは発生しません(正確な長さのミックス、持続時間チェック);手動muxの場合は deck-to-video を参照 |
| セリフが音楽に埋もれている | そのセリフに対して level_clips.py --report を実行し、より強いテイクを取得;そのキューの音量を下げる |
| キャラクターがセリフの前に指さしたり動作する | clip_off で後ろにずらすか、ショットを分割し clip_cam で最初の部分をクロップ |
| 口が単語と同期して動かない | リップシンクフェーズ;間違った口が動いている場合は、その顔ポイントを修正 |
| グループショットで一人の顔が大きい | OpenCVをインストール(顔が均等化されます)、またはプロップが隣を隠しているカードを mirror |
| ヘブライ語が逆順または結合されずに表示される | RAQMなしのPillow:check が修正方法を表示 |
| 名前や外来語の発音が間違っている | pronounce エントリ、耳でA/B確認 |
原因を含む詳細:references/troubleshooting.md。
関連スキル
- image-generation:キャラクターカードとパネル("繰り返し登場するキャラクターとストーリーパネル")。
- elevenlabs-tts:音声、一言セリフ、発音、音楽と効果音。
- generating-video-clips:クリップ、テイクシート、リップシンク。
- deck-to-video:スライド動画向けの同じffmpegノウハウ。