Communitygithub.com

stedra-animatic

當使用者想要一個附帶旁白和音樂的動畫解說、示範影片或短片(如開場演講、產品展示、入門教學或訓練影片),或是一個用於簡報的單一動畫場景或圖表時使用。從第一行提示開始建立完整的動畫分鏡(圖片、字幕、草稿配音、暫定配樂、音效),並透過 Chrome 中的 Motion Canvas 即時預覽,然後每次與使用者一起升級一個層次。由強制校準產生的 events.json 提示表驅動。使用者導向;Claude 建構。

stedra-animatic 是什麼?

stedra-animatic 是一個專為 AI 代理設計的技能,用於與使用者協作建立包含旁白、配樂和音效的動畫影片。其核心工作流程基於真實專案經驗:一個 11 分鐘的影片在 3 天內經歷約 109 次提交,每一步都由人類導演。此技能強調快速產出第一個完整動畫分鏡(約 15 分鐘內),但完成精緻成品需要數天的迭代。它支援 Motion Canvas 作為即時預覽平台,並嚴格遵循「永遠不編碼預覽,只在 Chrome 中即時播放」的規則。架構中 `events.json` 提示表是唯一的時間來源,確保圖片、音樂和音效完美同步。此技能適用於多種場景,從快速單一場景/圖表(無音訊)到完整的敘事影片,並提供腳本、配音、配樂和細節打磨的漸進升級路徑。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stedra-demoscene/claude-animator/tree/HEAD/plugins/stedra-animatic/skills/stedra-animatic

在你喜歡的 AI 中提問

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

說明文件

stedra-animatic 是做什麼的?

您與使用者一起建立一部附帶旁白和配樂的動畫電影。使用者導向,您來建構。 這個工作流程來自一個真實專案:一部 11 分鐘的電影,在 3 天內有大約 109 次提交,每個節拍都由一個人指導。 這不是「一次提示,喝杯咖啡」。現在初稿很快。但完成它則不然。

階段 0:設定期望(始終是第一個回覆)

用少於 10 行的篇幅告訴使用者:

  • 第一個提示會在約 15 分鐘內給你一個完整的動畫分鏡:每一層都以草稿品質存在(圖片、字幕、草稿配音、暫定配樂、音效),並在 Chrome 中即時播放。
  • 完成需要數天的定向迭代,而不是一個下午。一部 3-5 分鐘的電影意味著要進行數十輪的腳本、配音重錄、音樂註記和打磨。動畫分鏡只是起點。
  • 他們做只有人類才能做的事:決定(故事、品味、真實情況)、錄製他們自己的聲音(聽起來最好,草稿配音只是臨時的)、以及觀看和聆聽並提供意見。你無法即時聽到或看到。你根據音量、頻譜、起音和採樣幀來工作,這對計時來說很好,但對品味來說不可靠。
  • 快速勝利模式:一個動畫場景或圖表,大約 30 分鐘,沒有音訊。請參閱 references/workflow.md。

從提示中說明你假設的模式(一個場景或圖表表示快速勝利,一部有旁白的電影表示動畫分鏡)。然後繼續。如果錯了,他們會糾正你。

預覽規則(嚴格)

預覽表示在 Chrome 中即時播放。絕不可以是編碼影片。 要預覽,你需要:

  1. 在背景啟動 Motion Canvas 編輯器(在 film/ 目錄中執行 npm start),或讓它保持執行中,
  2. 給使用者 URL(通常是 http://localhost:9000)並如果可以的話在 Chrome 中開啟它,
  3. 讓混合好的音軌載入到編輯器中,這樣圖片和聲音就能一起播放,
  4. 依賴檔案變更時的熱重載。不要為了編輯而重新啟動編輯器。

只有在 (a) 使用者要求審查片段,以及 (b) 最終完成時,才進行編碼。永遠不要為了「檢查」某些東西而渲染 mp4,也永遠不要要求使用者開啟渲染檔來審查工作。如果編輯器沒有執行,就啟動它。如果你變更了音訊,告訴他們重新載入(音訊只載入一次)。

階段 0b:啟動(僅限工具,每個階段延遲執行)

在專案根目錄中尋找 animator.config.json。如果存在,讀取它,重新執行檢查,然後繼續。 否則:

  1. 執行環境檢查:scripts/check_env.sh(macOS、Linux)或 scripts/check_env.ps1(Windows,使用 powershell -NoProfile -ExecutionPolicy Bypass -File <路徑>,也可以從 Git Bash 執行)。一個工具只有在能夠執行時才算數,而不是在 PATH 上(在 Windows 上 python 通常是 Store 存根)。記憶體、核心數和磁碟空間來自報告。不要問使用者。
  2. 顯示一個一頁的計劃,包含大小資訊,然後等待同意。啟動階段僅限於工具。沒有創意性的問題。
  3. 根據 references/setup.md 進行安裝(brew / apt / winget,Python 透過專案本地 venv 中的 uv 安裝)。查閱該時刻的最新 URL 和許可證。切勿將模型或樣本供應到 repo 中。
  4. 進行冒煙測試,寫入 animator.config.json(工具路徑、目錄),然後提交。

動畫分鏡需要的東西(優先安裝):Node、Motion Canvas、ffmpeg、uv 與 Python(numpy、scipy、soundfile)、Kokoro(草稿配音)、強制校準器。延遲到後續階段再安裝:FluidSynth、樣本庫、Chatterbox、以及最終配樂所需的任何東西。小下載沒問題。大的下載則等到使用者進入需要它們的階段。

架構(不要偏離)

script.md -> voice (scratch, then real) -> forced alignment -> events.json -> Motion Canvas scenes (picture)
                                                    |
                                                    +--> temp score + SFX (synth), later MIDI + samples -> mix.wav
                                                                  mix.wav is loaded in the editor and in the final mux
  • events.json 是唯一的時間來源。 圖片、音樂和音效都讀取它。沒有手動測量的偏移量。
  • 一個場景是時間的純粹函數。 相同的輸入,相同的幀。沒有 Date.now(),沒有未設定種子的隨機性。
  • 一個全域時鐘。 整部電影是一條以秒為單位的時間軸。上面只有一個配樂。
  • 錨定於故事,而非時鐘。 樂句和節拍依附於命名的事件,永遠不依附於小節編號或絕對秒數。
  • 更換語音會重新計時所有內容。 用真實的錄音片段替換草稿錄音,重新產生 events.json,然後圖片和音樂會隨之移動,無需手動編輯。這是整個管線的驗收測試。

階段

詳細資訊在 references/workflow.md 中。動畫分鏡是對每一層的一次快速遍歷。升級是緩慢的部分,一次一層,每一層都有一個使用者關卡和一次提交。

#階段輸出時間
A動畫分鏡:簡報 + 假設、腳本、草稿配音(Kokoro)、校準、events.json、帶有字幕的草稿場景、暫定配樂和音效、mix.wav、在 Chrome 中即時播放一部完整的草稿電影~15 分鐘
U1腳本:大聲朗讀、>>> 註記、改寫、重新執行管線最終腳本數小時
U2配音:使用者選擇 (a) 自己的錄音或 (b) Chatterbox(可選地使用同意後克隆自己的聲音),兩者地位平等。挑選、編輯、重新校準、重新產生事件最終配音,所有內容重新計時數小時
U3配樂:從事件產生 MIDI,用樣本庫渲染,混合真實音樂數小時
U4打磨:圖片細節、素材、音效、關閉字幕、時間微調最終電影數天
F最終:匯出影像序列或影片,ffmpeg 混合out/film_1080p60.mp4數分鐘

不要跳過。每輪只升級一層,即時展示,獲取意見,提交。

你始終遵守的規則

與使用者協作

  • 像劇組聽取導演簡報一樣工作。 第一個提示就是簡報。做出假設,一次性建構整個動畫分鏡,並將假設列在 brief.md 的頂部(長度、基調、配音、音樂、平台、模擬了什麼),以便他們修正。不要事先進行面談。只有在某些東西確實阻礙了進度時才提問(沒有主題、沒有觀眾、矛盾的目標),而且一次只問一個問題。
  • 在偏離主題之前問一個簡短的問題,而不是之後。當他們說某些東西缺失或錯誤時,首先問自上次正確以來改變了什麼(重錄、剪輯、重新計時),然後再添加新東西。
  • 永遠不要聲稱你聽到或看到了某些東西。說出你測量到的,然後請他們觀看和聆聽。
  • 註記存在於檔案中:使用者在 script.md 中寫下 >>> note 行。將每個註記折疊到腳本或舞台指示中,刪除標記,並說明你做了什麼。
  • 告訴他們草稿配音是臨時的,他們自己的錄音效果最好。

腳本和配音(references/voice.md)

  • 口語英語:簡潔、具體、有力。沒有 AI 用語:「quietly」、「seamlessly」、「delve」、「tapestry」、「testament」、「it's not X, it's Y」、堆疊的三連音。
  • 每一行都有一個 ID,並且是單獨的錄音。錄製時保持平直,在後製中調整音量。
  • 草稿配音:Kokoro,免費且離線。永遠不要使用作業系統的內建語音(say、SAPI、espeak)。避免使用非商業用途的權重。校準也會在草稿音訊上運行,所以 events.json 從第一個動畫分鏡開始就存在。

圖片(references/motion-canvas.md)

  • 預設 1920x1080、60 fps。除非要求,否則不要使用 4K。
  • 記憶體防護。 不要使用 shadowBlur,不要使用每幀重新繪製的大型模糊圖層,不要使用數千個單獨過濾的形狀。使用幾個寬而低透明度的筆觸或一個預先快取的 sprite 來偽造發光效果。在使用者開啟場景之前,先對一個重型場景進行看門狗測試(RSS 限制)。一次只進行一個重型處理。永遠不要在渲染進行時重建音訊或事件。
  • 如果一個場景在畫布上繪圖,請在每個輔助函數中恢復狀態(save/restore、重置 globalAlpha)。洩漏的 alpha 會導致閃爍。
  • 影片中的產品示範是一個道具:是腳本化的、錄製的或模擬的 UI,永遠不是真實的。

音樂(references/music.md),預設值使用者可以否決;它們也適用於暫定配樂

  • 在配音下方保持固定的音量,不要進行閃避,大約比語音低 10 dB。不同的層次增加色彩,而不是響度。
  • 在敘述下方不要使用琶音或節奏填充。使用鋪底、低音、主題、漸強、上升音效、靜默。
  • 切入靜默的部分是乾的,在殘響之前,這樣房間的餘響會自然消散。
  • 暫定配樂和音效使用 Python 在 events.json 時鐘上合成,完全不需要大型下載。樣本庫要等到 U3 階段。

流程

  • Windows: 先閱讀 references/setup.md 的 Windows 部分。引用路徑,保持產生的 shell 腳本為 LF 格式,保持專案路徑簡短。
  • 小型提交,每個經過審查的階段一次。明確指定要暫存的路徑。不要提交原始錄音、模型、樣本、node_modules 或渲染產出。提供一個 .gitignore。
  • 審查影片:僅在使用者要求時提供。只對變更的片段進行編碼,前後各加 2 秒的上下文,解析度為 720p30,包含音訊。
  • 建構守衛:如果混合音訊在其畫面被匯出後發生了變更,則拒絕組合最終成品;並且在渲染執行時拒絕建構。在程式碼中強制執行(使用鎖定檔、在匯出旁放置雜湊值),而不是靠口頭約定。
  • 以輸入雜湊值為鍵,快取昂貴的步驟(校準、合成、音軌分層)。

當出現問題時

先閱讀 references/lessons.md。已知陷阱:會吃掉爆破音的除噪器、從瀏覽器快取提供的過時混合音訊、在同一個麥克風上開啟的兩個分頁、吞掉右大括號的行尾註解、讓立體聲混音聽起來像單聲道的空間音訊耳機。

檔案

  • references/workflow.md:動畫分鏡和每個升級階段、關卡、快速勝利模式
  • references/events-schema.md:events.json 的格式和規則
  • references/motion-canvas.md:專案設定、事件驅動的場景、預覽、匯出、效能防護
  • references/music.md:暫定配樂和音效合成、單一時鐘上的 MIDI、樣本、混合
  • references/voice.md:腳本語音規則、草稿 TTS、錄音、挑選、編輯
  • references/lessons.md:經驗教訓摘要
  • references/setup.md:啟動、帶有安裝命令的預設值、animator.config.json
  • scripts/check_env.sh、scripts/check_env.ps1:精簡工具報告(冪等、唯讀)
  • templates/:events.example.json、Motion Canvas 的 events.ts 和場景骨架

相關技能