/video-animado
用程式碼繪製 (SVG + Remotion) 的 2D 動畫製作附旁白影片。 鐵律:不使用任何外部 AI 圖片或影片工具(禁止 Kling、Veo、Flow、Magnific、圖片生成器)。 角色、場景與物件皆由形狀、SVG 路徑與文字構成。 如此可確保角色在所有場景中保持一致,且流程可複製。
狀態:建立於 2026/11/08,尚未經過端到端測試。 在首次實際執行時,請在「陷阱」區記下任何中斷點。
如何與使用者交談
- 使用巴西葡萄牙語,實用教師語氣,若使用者使用「tu」則用「tu」稱呼,否則用「você」。 不使用破折號。
- 使用者可能不具技術背景。 說明發生了什麼事以及對他們的影響。 僅在使用者要求時才提及程式碼與路徑。
- 每個提問使用
AskUserQuestion,一次一題,提供 2 到 4 個選項,推薦選項標示為「(推薦)」。 當使用者說「你幫我決定」、「隨便」或類似詞語時,選擇推薦選項並繼續,告知使用者所做的選擇。 - 絕不詢問可透過檢視檔案得知的資訊。
檔案存放位置
- 工作室: 使用者的影片工作資料夾。 尋找
~/meu-estudio/;若不存在,詢問位置,或使用當前資料夾。 - 動畫品牌書:
<工作室>/animacao/<宇宙名稱>/BRANDBOOK-ANIMACAO.html:美觀版本,供檢視與分享BRANDBOOK-ANIMACAO.md:Claude 讀取的版本(規則相同;若一個變更,兩個都必須更新)personagens/<名稱>/:FICHA.md、Personagem.tsx(程式碼繪製的角色)與expressoes.pngcenarios/:每個場景一個元件(Casa.tsx、Rua.tsx…)pronuncias.md(選擇性):每個術語在語音中應如何發音以及在字幕中如何顯示
- 影片:
<工作室>/animacao/<宇宙名稱>/videos/YYYY-MM-DD-slug/ - 交付檔案:
~/Downloads/YYYY-MM-DD_<slug>_animado.mp4
一個品牌書代表一個宇宙(一個具有專有名稱的「世界」)。 其中包含 0、1 或多個角色。
流程
0. 尋找品牌書
自行尋找:工作室與當前資料夾中的 animacao/ 資料夾,以及 BRANDBOOK-ANIMACAO.* 檔案。 列出找到的項目並提問:
- 使用其中一個(每個找到的宇宙提供一個選項)
- 指定其他路徑(包括從他人收到的品牌書)
- 建立新的
若找不到任何內容,告知使用者並直接進入建立流程。 若使用現有品牌書,請讀取其 .md 檔案與角色設定檔,然後跳到 B 部分。
A 部分:建立品牌書(首次)
開始時告知:「我將問大約 25 到 35 個問題,一次一題,隨時可以說『你幫我決定』」。 在每個區塊之間,簡短總結已決定的內容並詢問是否正確。 問題與選項庫位於 references/perguntas.md(開始前請先閱讀)。
依序有以下 7 個區塊:
- 宇宙: 名稱(建議 3 個名稱)、影片主題、目標觀眾、調性。
- 角色: 數量(0、1 或多個)。 為每個角色填寫完整設定(性別、年齡、臉型、髮型、服裝、個性、同伴如狗、嬰兒或植物、聲音)。
- 場景: 包含哪些場景(家、辦公室、街道、大自然、抽象空間…)、哪些房間或地點、一天中的時間、固定物件。
- 敘事: 每個角色做什麼、行為舉止、常去之處、說話方式、絕不會做的事、角色之間的關係。
- 視覺: 可用程式碼繪製的風格、色板(精確的十六進制色碼與使用比例)、字型、細節程度。
- 動態: 進出場、表情、節奏、呼吸與眨眼、動畫規則、絕不能做的事。
- 結尾: 整體摘要、旁白語音(見下方)、品牌書最終名稱。
無角色也適用:僅包含場景、文字與形狀的影片。 在這種情況下,跳過區塊 2,區塊 3 到 6 僅討論世界與節奏。
旁白語音,儲存在品牌書中以避免再次詢問,有 3 種方式:
- 在 ElevenLabs 克隆使用者的聲音;
- 使用 ElevenLabs 的現成聲音,技能會根據角色建議;
- 使用者已預先錄製好音訊,技能直接使用。 若有多個角色,每個角色設定檔儲存其各自的聲音。
A 部分的交付項目:
BRANDBOOK-ANIMACAO.md與BRANDBOOK-ANIMACAO.html(結構請見references/brandbook-html.md)。- 每個角色:
FICHA.md、帶有expressao、falando、olhando、escala屬性的Personagem.tsx(嘴巴會根據旁白音量變化),以及expressoes.png,一張包含所有表情的並排圖片。 - 每個場景一個元件。
- 一張角色置於場景中的測試圖片。
僅在使用者親眼核准表情與測試圖片後才繼續。 若程式碼繪製的效果不佳,請簡化繪圖(減少細節,更注重形狀)。 絕不改用外部工具。
B 部分:製作影片
- 單一問題(僅詢問缺少的資訊):主題、時長(預設 30 到 60 秒)、格式(預設垂直 1080x1920,30 fps)、使用哪些角色與場景。
- 鉤子與「聽覺化」腳本(請閱讀
references/roteiro.md)。 先提供 3 個不同類型的鉤子選項,由使用者選擇。 接著撰寫腳本:短句,數字寫成念法,不含括號或不易讀的縮寫,不含列表中的禁用句子。 每句旁邊標註:場景、出現的角色、表情以及螢幕上顯示的內容。 遵守品牌書的敘事。 最後,另行列舉需要使用者確認的事實陳述。 儲存至videos/<日期-slug>/roteiro.md,僅在使用者核准後繼續。 - 旁白,使用品牌書中儲存的語音方式。 播放音訊並等待核准。 若有句子聽起來怪異:僅重新生成該句。 若存在
pronuncias.md則使用之。 儲存narracao.mp3。 - 每個單詞的時間點。 使用工作室既有的轉錄工具(編輯課程中的工具:Mac 上的 mlx-whisper)轉錄旁白並取得每個單詞的時間戳記。 修正 Whisper 在產品名稱與技術術語上常見的錯誤。 若使用者未安裝轉錄器,請告知並協助安裝後再繼續。
- Remotion 專案,位於
videos/<日期-slug>/(使用remotion-best-practices技能)。 一個背景音訊(narracao.mp3)。 每個場景匯入品牌書的元件,絕不重新繪製角色或場景。 嘴巴:逐幀提取音訊音量並作為falando屬性,設定下限以避免在無聲時顫抖。 每個元素在旁白中提到它的單詞時才出現。 逐詞字幕,使用品牌書的風格。 React hooks 永遠不放在if內部或提前的return之後。 - 渲染前檢查。 執行
npx tsc --noEmit,接著檢查每個場景的一個影格。 檢視圖片:角色完整且與設定檔一致,文字不重疊且不超出寬度,位於安全區域內,嘴巴與聲音同步,表情與場景在正確的時間點正確。 詳細資訊請見references/conferencias.md。 - 渲染、檢查與交付。 將 mp4(H.264,AAC 音訊)輸出至
~/Downloads/。 執行scripts/checar_video.py(檢查音量、大小、靜音),產生 contact sheet,並呼叫獨立審查員(一個未參與剪輯的子代理人,簡報請見references/conferencias.md)。 修正嚴重或中等程度的問題並重新渲染。 同時交付影片封面與貼文說明,並提供 1:1 與 16:9 格式(references/roteiro.md)。 告知使用者每個場景的內容、時長、審查員的意見與修改內容、應親耳確認的項目(您無法聽到音訊)以及專案位置。 - 調整。 使用者以日常用語(「這角色看起來太嚴肅了」、「出現快一點」)或時間點(「在 0:12 修改標題」)提出需求。 將時間轉換為影格,僅修改受影響的場景,並在重新渲染整個影片前顯示修改片段。 若規則適用於後續影片,則更新品牌書(兩個版本);若僅適用於此影片,則僅更新專案。
命名建議
每當建立品牌書時,建議 3 個宇宙名稱(簡短、易於發音),並讓使用者選擇或輸入其他名稱。 該名稱將作為資料夾名稱(kebab-case)與 HTML 的標題。
陷阱
- 角色未遵循品牌書:每個場景都應匯入同一個元件。
- 嘴巴在無語音時動作,或語音出現時嘴巴靜止:透過音訊振幅進行同步,並設定下限。
- 因懶惰而使用外部工具:若繪圖效果不佳,請簡化。
- 在腳本未獲核准前消耗語音額度。 在生成旁白前,告知將用於語音的字元數,並等待使用者同意。
- 未經獨立審查員審核即交付:剪輯者無法發現自己的錯誤。
- 僅將品牌書儲存為 HTML:Claude 讀取
.md檔案,請保持兩者一致。 - (在首次實際執行時填寫。)