Communitygithub.com

mr0ibrahim/motion-graphics

製作專業動態圖形影片,支援阿拉伯語與英語,從腳本到 AI 素材、程式碼動畫、音效與品質檢查,最終輸出 MP4。

motion-graphics 是什麼?

Motion graphics studio 是一個專為 AI 代理設計的技能,可自動化製作專業動態圖形影片,支援廣告、解說、產品展示、限時動態、標誌開場、數據故事以及最長 10 分鐘的長片等多種類型。影片完全由程式碼驅動:利用 HTML 頁面中的 `seek(t)` 函數,透過 Playwright 逐幀擷取,再以 ffmpeg 編碼,確保文字、UI、圖表、圖解與動畫的像素級完美控制。AI 模型則提供插圖、實拍畫面與配音。該技能採用嚴格的階段閘門流程(腳本、故事板、動畫草稿、最終輸出),每個階段都需使用者核准,以降低重工風險。內建多項硬性規則,例如靜態雜訊紋理、統一的動畫系統、正確的語音轉寫(使用 Whisper 與對齊工具)、按場景管理的字幕,以及雙重輸出(60 fps 主檔與 30 fps 社交檔案)。支援 Cursor、Claude Code、Codex 等平台,並提供阿拉伯語自右至左(RTL)與基於單詞的動畫支援。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/mr0ibrahim/motion/tree/HEAD/skills/motion-graphics

在你喜歡的 AI 中提問

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

說明文件

動態圖形工作室

影片從程式碼渲染而成:一個包含純 seek(t) 的 HTML 頁面,透過 Playwright 逐幀拍攝,並以 ffmpeg 編碼。文字、UI、圖表、圖解與動畫始終是程式碼。 AI 模型提供插圖、實拍畫面與配音(references/ai-assets.md)。

階段閘門(切勿跳過;每個 ✋ 處需獲取核准)

  1. 簡報:目標、受眾、平台/格式、長度、語言 + 方言、行動呼籲、品牌、是否配音、事實。選擇類型(references/genres.md);它設定結構、能量預設與鉤子。
  2. 概念 ✋:三個截然不同的點子,每個一行加上其鉤子。使用者選一個。
  3. 腳本 + 故事板 ✋:節拍表(每個場景一個訊息,鉤子 ≤ 1.5 秒)、風格聖經與主要素材(GenerateImage → cut2.py)。將場景建置為樣式影格,然後執行 node scripts/storyboard.mjs film.html storyboard/name --template templates/storyboard.html --title "…" 即可獲得由影片本身製作的 html/png/pdf/json(references/storyboard.md)。在故事板獲核准之前,不得進行完整動畫。
  4. 動畫草稿 ✋:執行 node scripts/render.mjs film.html checks_layout.txt --check 必須得到 0 個版面問題、0 個遺漏提示與 0 個頁面錯誤。然後製作一個 30 fps 無模糊的草稿(render_chunks.mjs film.html out_draft 30 1)並加入音效混音,以供時間節奏審查。
  5. 最終輸出:render_chunks.mjs film.html out 60 4 → sfx.mjs → mix.sh → export.sh → qa.sh 處理主檔 與 社交檔案。然後查看接圖表與轉場表(references/render-qa.md)。此後僅進行範圍限定的修訂:只更改被要求的內容。

硬性規則(每一條都來自真實失敗的教訓)

  1. 雜訊是靜態的:一次種子圖塊繪製完成,絕不每幀重新隨機化。閃爍測試必須通過。
  2. 預設無音樂:動作同步音效 + 配音。僅在要求時加入音樂,且需取得授權(references/sound.md)。
  3. 單一動畫系統:持續時間僅來自 ENERGY 標記。彈簧 z ≥ 0.78(超調 ≤ 2%),無抖動,類型上無彈跳,長距離移動使用弧線,每次狀態變化時交叉淡變(references/motion-system.md)。
  4. 使用分塊渲染器渲染(render_chunks.mjs):每個分塊使用全新瀏覽器,支援重試,並可透過重新執行相同指令恢復。對於超過約 20 秒的影片,絕不使用單一長時間單進程渲染。
  5. 正確轉寫:align.py(large-v3,VAD 開/關傳遞,間隙傳遞,強制對齊腳本)→ words.json。絕不使用單一 Whisper 傳遞。
  6. 字幕屬於其場景:它們隨場景一起清除與推動,並使用場景的顏色。一個元素在口語詞彙前後 ±2 幀內達到 80% 的不透明度。
  7. 風格:插圖風格,角色前後一致(一張參考圖 → 所有姿勢)。科技解說影片使用概念視覺(流程圖、圖表、表格、比較、時間軸),根據每個口語短語規劃,而非裝飾性素材。
  8. 兩個輸出:60 fps 主檔 + 30 fps 手機/社交檔案。以附件形式發送。只有在使用者明確同意下,才提供直接下載連結、上傳或發布。
  9. 長片(3–10 分鐘):規劃章節、場景數量(約每 4–7 秒一個場景)、節奏變化循環與視覺變化,每個章節一個頁面(references/genres.md → 長片)。
  10. 保持套件分離:scripts/、references/、templates/。不要長成一個巨大的檔案。

此外:阿拉伯語僅以整個單詞為單位進行動畫(references/arabic-rtl.md)· 畫面中不得有 AI 生成的文字 · 虛構產品、價格與評分需標示為 SAMPLE · 事實僅來自使用者 · 主要元素佔畫面 60–70% · 廣告中至少使用 3 種不同的轉場,從不連續重複相同轉場(references/transitions.md)· 無超過 1 秒的靜音。

預設值(說出你的選擇)

社交平台使用 9:16 1080×1920,網頁/YouTube 使用 16:9 · 廣告與限時動態使用能量 ad,配音解說使用 explainer,奢侈品/長章節使用 calm · 60 fps 主檔 + 30 fps 社交檔案 · −14 LUFS,真實峰值 ≤ −1.5 dBTP · 音效 + 配音,無音樂 · 靜態雜訊 0.06 · 插圖扁平風格,一種強調色,Noto Kufi Arabic / Cairo + Figtree。

設定

所有 scripts/、templates/ 與 references/ 路徑均相對於此技能本身的資料夾(即存放此 SKILL.md 的資料夾,無論安裝在何處:.claude/skills/motion-graphics、.agents/skills/motion-graphics、~/.cursor/skills/motion-graphics……)。將此資料夾稱為 $SKILL_DIR,並從專案資料夾執行指令,例如 node "$SKILL_DIR/scripts/render.mjs" …。在 $SKILL_DIR 內執行一次 npm i。 npm i(Playwright),然後執行一次 npx playwright install chromium。您還需要 ffmpeg/ffprobe、Python 3 與 numpy/scipy/pillow(品質檢查、cut2),以及用於 align.py 的 pip install faster-whisper。

工作範例(位於 GitHub 倉庫 mr0ibrahim/motion 的 examples/ 下,安裝時不會複製):demo-ar/(一個 13 秒的海灣阿拉伯語應用程式廣告:RTL 動態文字、AI 角色、視差、鏡頭推近、縮放/推近/圓形/分割)· demo/(一個 10.5 秒的英語 SAMPLE 廣告)。

相關技能