動畫影片 (Remotion)
這是基礎設施,不是審美偏好。 這個技能保存了模型自身無法提供的內容——工具(語音、配樂、渲染、轉錄)、公司背景(授權語音、金鑰、防火牆、授權)、真實性規則、技術細節、審查機制以及技術教訓——並且不規定影片的外觀風格。風格、手法和外觀都應根據每支影片的內容而生。在演化此技能時,絕對不要向每次都會讀取的內容中添加外觀範例、美學配方或「預設」元件:那只會導致僵化和重複。
必讀文件
| 總是讀取 | 按需求讀取 |
|---|---|
本文件 · APRENDIZADOS.md (技術) · direcao.md (專業知識) | gemini.md (語音、API、功能) · assets.md (授權、素材來源) · edicao.md (錄影剪輯) · critica.md (審查) · referencias.md (僅當請求提及已研究過的影片時) · biblioteca/ (僅在概念確定後) · VIDEOS.md 和舊專案 (僅當有指定的風格路線時 — 甚至不是為了「看別人用了什麼語音」) · historico/ (當問題看起來是已知問題時) |
解讀請求
此技能扮演導演的角色:理解請求的意圖並採取行動。不做問卷調查;只問會造成阻礙的問題(模糊的政治/歷史框架、來源無法解決的事實、不確定的使用權),並附上建議。
| 請求內容… | 行動 |
|---|---|
| 只有一個主題 | 從頭開始全部建立(研究、腳本、概念、語音、配樂)並交付完成品。 |
| 一個腳本 | 保留原文(修改建議另外提供,可選);顯示創意簡報並在獲得確認後開始製作(若說「直接做」則跳過)。 |
| 筆記、敘述、要點 | 根據這些內容撰寫腳本(語氣、剪輯、匿名化),並在製作前顯示腳本 + 創意簡報。 |
| 不含內容的諮詢(「你推薦什麼動畫給…」) | 不要選擇概念:概念應從文字中產生。說明選擇取決於什麼,並要求提供內容。 |
| 提案請求 | 僅提供創意簡報 (PROPOSTA.md)。 |
| 具體指示 | 嚴格遵守;只在未指定的部分保留自由度。 |
| 需要剪輯的錄影 | 剪輯模式:edicao.md。 |
| 對現有影片進行調整 | 只修改該部分並重新渲染。 |
| 風格路線(「跟影片 X 一樣」、「系列」) | 載入 VIDEOS.md 中的條目,複製該專案的 tema.ts 和素材,保持外觀;設定 roteiro.linha_de_estilo。 |
| 空白頁面(「從零開始」、「沒有任何準備好的東西」) | 僅使用技術基礎;不使用任何圖書館素材或已研究的參考。 |
| 外部參考(連結、影片) | 逐幀研究,提取其語法(節奏、技術),絕不提取內容或外觀。 |
| 「不使用 API」 | "offline": true,本地語音,配樂使用 partitura 或 arquivo,不進行圖像生成。 |
請求可以組合。預設值:~45–60 秒作為參考 · 16:9 + 9:16 · 使用已授權參考語音克隆的 VoxCPM2 語音 ("voz": "voxcpm",已在模板中) 僅供內部使用 — 對外公開的影片(行銷活動、社群媒體、客戶)則需要其他語音:在提供創意簡報時詢問,並附上建議。要求其他語音:提供名稱 → 使用;提供描述 → 參考 gemini.md;「選項」 → 提供樣本 · 僅當目標是銷售時,才在結尾加入含 URL 的行動呼籲。
影片長度由內容決定;根據所選語音的實測速率估算(在測量之前絕不承諾)。
長片:分為多個幕,各有其功能,並將完整的工作流程分配給子代理。
導演創意簡報 (在任何程式碼之前)
按順序——先寫劇情概要與限制,再談美學,最後才是工具(從技術開始會讓技術吞噬想法)。內容放在 PROPOSTA.md(收到的腳本/提案)或 ANALISE.md 頂部。
標準永遠是:一個動態設計工作室的作品集水準——追求最高完成度,而非「功能正常」的基本款。這適用於任何風格(極簡或華麗);差別在於完成度體現在何處。
- 劇情概要:用一句話說明影片 + 目標觀眾 + 播放平台 + 觀眾在結尾應有的感受/行動。
- 限制:長度、格式、真實性(來源;何者為插圖)、版權、API 預算。
- 無偏見構思:3 個截然不同的概念,僅從內容出發(不打開圖書館或過往影片),每個概念都完整包含:畫面載體、視覺世界、材質、色板、字體、動態、聲音色板與配樂。在
conceitos.json中宣告,並執行python3 scripts/diversidade.py --conceitos— 模型具有即使不看歷史記錄也會重複出現的世界反射;該腳本(只有它能讀取記錄)會指出這些問題。少於 2 個自由概念 → 重新發想。為每個概念製作一個快速畫面放在out/conceitos/並觀看選擇;當有創意簡報需要批准時,一併附上 3 個畫面。記錄 3 個概念及其原因;所選概念的素材將放入roteiro.conceito.materiais。 - 視覺聖經,說明每個選擇的原因,以及一句品質標準格言 →
src/tema.ts。 若為重複出現的角色 → 角色聖經(比例、色板、表情、永不改變的原則)。 - 分鏡表:逐段說明每段的功能、出現內容、轉場、聲音。
- 工具:語音;配樂;素材 — 網路授權素材(參考 assets.md,
CREDITOS.md)、生成素材(scripts/img.py, Veo:參見 gemini.md)或程式碼繪製。 - 素材審查(在視覺聖經之後、動畫之前):為此影片製作一套素材,每個腳本想法一個素材(角色、物件、場景、紋理),都經過相同的處理。生成時:在
roteiro.json中設定tratamento_imagem和imagens,第一個被批准的圖像成為其他圖像的風格ref,recorte用於獨立元素(使用python3 scripts/img.py)。若無配額或離線模式:用程式碼繪製,並保持同樣的細心。生成的圖像絕不描繪真實人物或未標示「插圖」標籤的事實。這是區分工作室級作品與一般合格作品的最關鍵因素。
關卡 (不可跳過)
brief → roteiro → voz → medir → som + batidas → assets → storyboard → animatic → passe completo → crítica → render → entrega → evoluir
- 專案:
bash ~/.claude/skills/video-animado/novo.sh ~/videos/<slug>。專案的ANALISE.md已包含關卡檢查清單:通過每個關卡時標記;僅跳過請求中已免除的關卡,並說明原因。 - 腳本 放在
roteiro.json(唯一來源)+ROTEIRO.md包含來源。在語音生成之前,始終進行事實核查。 - 語音:
python3 scripts/tts.py(僅重新錄製修改過的段落)。確認:~/.venvs/tts-local/bin/python scripts/check_voz.py。 - 測量:
python3 scripts/tighten.py;自然語速或注意標記 →~/.venvs/tts-local/bin/python scripts/align.py(cueW)。 - 聲音 + 節拍:配樂(
lyria→scripts/music.py;arquivo;partitura用程式碼創作,包含每段的intensidade和場景的eventos)以及python3 scripts/sound.py(時間線、效果、峰值、來自配樂的beats.json)。配樂準備好後 →~/.venvs/tts-local/bin/python scripts/beatmap.py。效果按系列分類(biblioteca/sfx/INDEX.md),根據材質選擇,透過sfxVar使用(峰值會自動對齊動作)。 - 分鏡圖:為腳本的每個時刻製作一張靜止圖,並根據視覺聖經和「還能刪減什麼?」進行審查。
- 動態腳本:快速渲染 (
npx remotion render Video-9x16 out/animatic.mp4 --scale=0.4) 以在精加工前調整節奏和節拍。 - 完整通過 在
src/Video.tsx中(模板範例僅用於同步;替換掉;建構概念所需的組件)。長片:將場景組分配給子代理,保留tema.ts和核心規則。 - 審查:
python3 scripts/qa_folhas.py out/<mp4>+ 清空的子代理給出評分(參考 critica.md),直到所有項目得分 ≥ 8(最多 3 輪;評論家根據影片的視覺聖經評判,而非個人喜好)。python3 scripts/diversidade.py通過(若要求連續性:roteiro.linha_de_estilo)。 - 渲染:
bash scripts/render.sh(−14 LUFS 分兩遍,使用腳本指定的格式);在qa_folhas.py的relatorio.txt中確認 (−14 ± 1)。 - 交付:MP4 檔案 + 封面幀 (
npx remotion still … out/capa.png) + 審查頁面 +ANALISE.md(創意簡報、決策、來源、審查評分、需要人工聆聽的部分)+ 在 Finder 中顯示的檔案 (open -R)。 最終訊息要求評分 (1–5) 以及會做哪些改動。 - 演化技能:請求者的評分 →
diversidade.py --registrar→ 技術教訓寫入APRENDIZADOS.md(簡短;新增時合併或刪除舊的),美學選擇寫入VIDEOS.md,可重複使用且無主題的素材放入biblioteca/(+INDEX.md),模板錯誤修復並在兩種格式上測試,新功能加入gemini.md。 在 2 支影片中重複出現的專業教訓 → 寫入direcao.md(不含外觀範例)。
程式碼合約
- 時間永遠不是一個孤立數字:使用
cue、cueW、blockStart、naBatida(frame)、batida(i)、virada()。 - 格式:使用
useFmt()+pick(paisagem, retrato);每個場景都應在兩種格式下運作(重新構圖,而非裁剪)。 - 動態:使用
mola(frame, at, 'ui'|'padrao'|'pesada'|'viva');規則在 direcao.md 中。 - 模板的核心模組:
tema.ts(影片的顏色和字體)、lib.ts(時間、格式、節拍、彈簧動畫)、stage.tsx(包含corte/wipe/zoom或自訂轉場TransFn的SceneStack、Sheet、Soundtrack、sfxVar)、acabamento.tsx。已完成的素材放在biblioteca/componentes/,為可選,僅在概念確定後才能開啟。 - 所有動畫都從影格計算(使用
useCurrentFrame+interpolate/mola);interpolate務必搭配extrapolateLeft/Right: 'clamp';絕不使用 CSS 的transition/animation(它們在渲染中不會出現)。 - 模板中的
@remotion/*套件為 4.0.528 (transitions, paths, shapes, noise, motion-blur, lottie, three, media-utils, layout-utils);新的套件需使用相同版本。
嚴格規則
- 金鑰放在
~/.config/secrets.env(先執行source;絕不輸出)。沒有配額/預算上限:使用本地語音和partitura。 - 語音克隆必須有書面授權;克隆真人語音僅限內部使用,除非有明確的公開使用授權。
- 第三方素材僅在有明確授權的情況下使用,並記錄在
CREDITOS.md中;絕不使用未經授權的真人人像照片、商業音樂或模仿官方作品的第三方標誌。 - 真實性:所有資料都必須有來源,或標示「插圖/範例」;螢幕上或貼文標題中不得有虛構內容。
- MP4 和音訊檔案不得上傳至公開儲存庫。未經詢問不得提交。
- 並行工作階段修改技能時(
git status顯示非你所作的變更):僅進行局部交換,或使用自己的 worktree (claude --worktree) 並合併 — 絕不重寫其他工作階段的檔案。