Communitygithub.com

shaharsha/製作動畫短片

用於製作帶有旁白或配音的動畫影片,包含重複出現的角色——動漫、卡通或漫畫劇集、群聊短片、關於朋友、家人、班級或團隊的故事影片——取材自照片、聊天記錄、故事點子或劇本,支援任何視覺風格、希伯來文/RTL 或英文。也適用於處理影片字幕或卡片過快、音樂提前結束、結尾被裁切、台詞被音樂淹沒、嘴形不同步、動作在台詞前出現或單一臉孔……等問題。

製作動畫短片 是什麼?

這是一個專門用於製作垂直、有聲、字幕動畫短片的 AI Agent 技能。開發者只需提供一個 `episode.json` 檔案來定義整個專案,就能從頭到尾自動化執行所有製作階段,包括角色設計、場景面板、語音合成、音樂、影片剪輯與嘴形同步。引擎會以真正的對話音訊為時間基準,精確計算每個鏡頭的長度與字幕時機,確保影片節奏順暢。 此技能支援多種平台(如 Claude Code、Cursor)和各種視覺風格,甚至能處理從右到左書寫的文字(如希伯來文)。它不僅能節省大量手動編輯的時間與除錯成本,還整合了完善的品質檢查與人類審核關卡,讓開發者可以在關鍵節點介入,調整角色相似度、語音、發音、時機與笑點。根據已驗證的真實案例,它能完美複製一個 3.5 分鐘的短片,並修正原始版本的所有時間誤差。為了順利運行,需要依賴三個兄弟技能(影像生成、TTS、影片剪輯)以及 ffmpeg 7+、Python 環境與必要的 API Key。

相容平台~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/shaharsha/claude-skills/tree/HEAD/skills/producing-animated-episodes

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

製作動畫短片 是做什麼的?

概述

這是一個垂直、有聲、字幕的動畫短片製作流程:角色美術、場景面板、克隆或資料庫語音、音樂、影像轉影片剪輯與嘴形同步,並由一個引擎根據實際對話音訊來排定每個鏡頭的時間。單一個 episode.json 即可承載整個專案,而 engine/episode.py 負責執行從中讀取的每個階段。兄弟技能則負責提供者(provider)的工作。

請直接使用引擎;不要自行撰寫編輯腳本。 時間軸、覆疊、字幕、從右到左文字、混音、持續時間與嘴形同步等所有功能都已內建於 engine/ 中。該引擎已透過重建一個真實的 3.5 分鐘短片獲得驗證:產生了完全相同的幀、完全相同的音訊,以及原始版本未能達到的精確長度。手寫的編輯腳本會重新發現 references/troubleshooting.md 中的每一個錯誤。

音訊是主控者。 鏡頭長度、字幕時間與嘴形同步部分皆來自完成的對話檔案。絕對不要根據文字來估算時間。

你無法觀看或聆聽。 你可以檢查幀、持續時間與數字。人類負責判斷角色相似度、語音、發音、時機與笑點。規劃人類的審查關卡並保護他們。

需求:

  • 與此技能相鄰的以下技能:image-generation、elevenlabs-tts、generating-video-clips。
  • Python 3 並執行 pip install -r <此技能目錄>/requirements.txt(需安裝包含 RAQM 的 Pillow、numpy;OpenCV 為選用)。
  • ffmpeg 7 或更新版本。
  • 字型:樣式與字幕名稱使用字型鍵(範例中的 bold、hblack、black),這些鍵會經由 fonts 對應到已安裝的 .ttf 檔案。對於希伯來文與拉丁文,Rubik 和 Heebo(免費,來自 Google Fonts)效果良好;check 指令會在缺少字型時阻斷執行。
  • 環境變數中的 API 金鑰,需在每個執行引擎的 shell 中設定:OPENAI_IMAGE_API_KEY、ELEVENLABS_API_KEY、GEMINI_API_KEY、FAL_KEY。

若想在不進行任何 API 呼叫的情況下查看整個管線如何運作,請執行 python3 <此技能目錄>/engine/episode.py /tmp demo,然後對其建立的 demo 專案執行 check 和 build。

管線與其審查關卡

每個審查關卡都是一個停頓點:傳送成品、提問、等待。指令格式為 python3 <此技能目錄>/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角色相似度,在一張所有卡片的合成頁上每個角色約 $0.30
4場景面板panels draft,然後 panels final ids每個面板,在一張合成頁上每個面板約 $0.30
5語音每個語音一個樣本(elevenlabs-tts)每個語音,在批次處理前用耳朵聽美分
6台詞lines用耳朵聽整個台詞集,包含時間戳;A/B 名稱比對美分到幾美元
7音樂與音效sound音樂美分
8動態腳本build(尚無剪輯:使用帶有攝影機運動的靜態圖片)在進行任何影片花費之前,檢查節奏與順序免費
9動畫animate、合成頁、使用 animate S --takes 2 + animate pick S K 進行重拍從合成頁檢查動作每個剪輯每秒約 $0.10,每次重拍
10嘴形同步lipsync prep、配置中的臉部點位、lipsync run抽樣檢查幀每秒約 $0.13
11剪輯與交付build、sheet、deliver人類觀看 mp4 檔案免費

每個階段的指令、輸入、輸出與失敗處理方式:references/pipeline.md。

撰寫劇本

經得起考驗的規則(詳細內容與一個完整的範例:references/script-writing.md):

  • 在最初 3-4 秒內建立鉤子(直接以問題開場),然後再出現標題。若短片少於 30 秒,請將標題與結束卡片作為覆疊放在故事鏡頭上,並跳過蒙太奇。
  • 每個重複出現的角色至少說一句台詞。 開場的蒙太奇介紹,每個角色用自己的聲音說一句話,每張卡片約 1.2-1.5 秒,既便宜又受歡迎。
  • 螢幕上的文字必須可讀: 每個字元約 0.06 秒,加上基礎 0.8 秒;短卡片約 1.2-1.5 秒;最終說明文字約 4-6 秒。請為卡片設定 mindur。
  • 提早埋下線索並在後續兌現。 針對群體真實生活的內部笑話進行 callback,效果最好。
  • 敏感話題由使用者決定。 列出所有你想使用的私人細節(健康、金錢、感情、家庭、爭吵),逐一詢問,並只使用他們確認的部分。
  • 台詞不超過 12 個字,數字用文字表示。 螢幕上的文字保持正常拼寫;發音修正則放在 pronounce 中。
  • 即使有旁白,也要加入音樂與音效。 至少一個背景音樂與幾個音效(切換場景時的嗖聲、揭示時的撞擊聲);無聲的背景音樂聽起來會不完整。

一目瞭然的 episode.json

templates/episode.example.json 是一個完整的小型短片範例;每個鍵的說明都在 references/config-schema.md 中。你最常編輯的部分:

  • characters:顯示名稱、顏色、語音,以及來自角色聖經的提示欄位。
  • speakers:從不出現畫面的語音,例如旁白({"display": null, "voice": "<id>"} 可產生無名稱的字幕)。
  • lines:ID、說話者、帶有音訊標籤的文字;單詞台詞可設定 trim 和 level。
  • shots:圖片、台詞("[email protected]" 表示與前一句台詞重疊 0.4 秒)、邊距、mindur、攝影機動作、特效、音效、覆疊、剪輯偏移與速度。
  • music_cues:[提示名稱, 開始鏡頭, 結束鏡頭, 音量, 偏移量]。當提示時間比其區間短時,建置流程會發出警告。
  • lipsync:指定哪些鏡頭、哪些台詞要跳過,每個部位一個臉部點位。
  • prompts:覆寫 char_style 和 panel_style 以獲得不同的外觀(如 3D 卡通、水彩、寫實照片)。

建置與審查

  • 批次處理修正。 完整建置需要數分鐘。收集一個審查回合中的所有筆記(台詞拍攝、邊距調整、剪輯偏移),一次套用,然後重新建置一次。
  • 區段會被快取與追蹤。 build 只會重新渲染輸入有變更的鏡頭:新的剪輯或嘴形同步版本、升級的面板、編輯過的台詞、鏡頭或樣式。build --only S05,S06 強制渲染這些鏡頭;--force 則重新渲染所有內容。
  • 嘴形同步的鏡頭在剪輯、偏移、速度或台詞有任何變更後,都需要重新處理: lipsync prep S05 && lipsync run S05。在此之前,建置流程會警告該鏡頭已過時,並使用原始剪輯。
  • 重新產生現有資產需要 --force(sound theme --force、animate S05 --force);不使用的話,只會填補空缺,不會覆寫現有檔案。
  • 使用合成頁進行審查。 sheet 會將每個鏡頭的 3 個幀放在一頁上。當人類根據時間點提到一個畫面時,請先透過 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;或將該段落拆分為兩個提示
結尾被裁切使用引擎時不可能發生(精確長度混音、持續時間檢查);在手動合成的影片中,請參閱 deck-to-video
台詞被音樂淹沒對該台詞執行 level_clips.py --report,然後使用更強的音量拍攝;降低該提示的音量
角色在台詞之前做出指向或動作將 clip_off 設定在該時間點之後,或拆分鏡頭並使用 clip_cam 裁剪掉前段
嘴形與台詞不匹配執行嘴形同步階段;如果是錯誤的嘴在動,修正其臉部點位
群體鏡頭中有一個臉比較大安裝 OpenCV(臉孔會自動均等化),或鏡像一個其道具遮住相鄰角色的卡片
希伯來文顯示為反轉或未連字Pillow 未包含 RAQM:check 會說明如何修正
名稱或外來詞發音錯誤加入 pronounce 條目,用耳朵聽 A/B 比對

更多問題與成因:references/troubleshooting.md。

相關技能

Individual skills in this repo

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

shaharsha/deck-to-video

Use when turning a slide deck plus per-slide narration audio into an mp4 video — a self-playing/self-presenting deck video, "slides to video", "presentation to mp4", a shareable WhatsApp/Slack/Drive video of a narrated deck, or when a slide video needs a per-slide progress bar / countdown / slide counter. Also use when a slide video should highlight, glow or spotlight the element being talked about in time with the voice, or when narration and on-screen animation need syncing. Also use when...

shaharsha/generating-video-clips

Use when turning a still image, illustration, comic panel or character art into a short animated clip (image-to-video), choosing a video model or provider (Gemini Omni, Veo, Seedance, Kling, ElevenLabs Flows) or hitting their API gates, lip-syncing a character's mouth to existing dialogue audio (Sync, fal.ai, active speaker), or fixing a generated clip with artifacts - duplicated props, a door or a second figure appearing, hands through bodies, glowing eyes, a gesture repeated at the start,...

shaharsha/image-generation

Generate logos, icons, UI mockups, hero images, product shots, and other design assets using OpenAI GPT Image 2.5 (Sunburst, Flare) or Google Gemini (Nano Banana 2, Nano Banana Pro, Nano Banana 2 Lite). Use whenever the user asks to create, design, generate, mock up, render, or illustrate a visual asset, needs a transparent PNG, or asks for image prompt engineering. Picks the right model and quality for the job, writes a model-specific prompt following the official prompting rules of each...

相關技能