Communitygithub.com

Hadi Got Motion

Hadi Got Motion:一個導演級的動態圖形工作室,專為 Claude 打造。可製作動畫解說、故事短片、剪紙角色動畫(含說話木偶)、動態字體、文字移動、真實地理地圖動畫(路線、步行、飛行、地球儀、地形),以及看起來絕非 AI 生成的標題時刻。

Hadi Got Motion 是什麼?

Hadi Got Motion 是一個高度專業化的 AI 代理技能,旨在將 Claude 轉變為一個完整的動態圖形工作室。它提供了 12 種獨特的運動風格,每種風格都有其獨特的移動方式,並包含一個品味標竿(Mr Pemberton's Mistake)以確保作品具有人類導演的藝術眼光。此技能支援多種平台,包括 Claude Code、Cursor 和 Codex,並整合了 ElevenLabs 語音與 ChatGPT 影像(可選)。運作流程從工具檢查與視覺簡報選擇器開始,然後進行時間估算、設定、導演方向、語音選擇、素材蒐集(優先使用真實素材)、動畫建置與最終 MP4 渲染。其設計重點在於節省 Token 預算,透過批次命令、避免重新讀取大型檔案,以及使用子代理處理機械性工作,從而高效完成整個專案。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hyperkidxp/hadi-got-motion/tree/main

在你喜歡的 AI 中提問

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

說明文件

Hadi Got Motion 是做什麼的?

一個內建於技能的動態工作室:12 種運動風格,每種都有自己獨特的移動方式,以及一個品味標竿。 每一幀都建立在真實素材之上:檔案照片與印刷品、真實字體、真實數據、真實錄音。程式碼負責剪輯、鉸鏈、計時與打光;程式碼從不繪製藝術作品。品味標竿是 Mr Pemberton's Mistake,一部來自維多利亞時代版畫的剪紙鬧劇(請參閱 references/case-pemberton.md)。

所有操作皆透過一個指令 hgm 執行(此處為 scripts/hgm;執行 hgm install 後,它將加入 PATH)。每個 hgm 指令都會印出簡短摘要,並將詳細資訊寫入檔案,讓 Token 用於品味,而非管線。開始前請務必閱讀下方的 Token 預算章節;這是工藝的一部分,而非事後才想到的事。

工作順序:工具檢查 → 簡報選擇器 → 估算 → 設定 → 導演 → 語音 → 素材 → 動畫 → 審查 → 交付。 在簡報與設定完成之前,絕不開始建構。

要繼續製作一部影片? 請閱讀專案的 HANDOFF.md 並在專案目錄內執行 hgm state。不要重新閱讀技能的參考資料、舊影片或整個影片檔案。

0–1 · 工具檢查與簡報選擇器(一次對話)

  • 不要詢問也無需解釋。執行 bash <此 skill 資料夾>/scripts/hgm picker,若已提及任何內容,則加上 --title "…" --duration 45 --concept "…" 參數。對 read_me 呼叫一次 ["elicitation"] 視覺化,然後使用完全照印出的載入器字串來執行 show_widget。
  • 回傳行格式為 Motion graphic details — Tools: … · Title: … · Duration seconds: … · Pacing: 1–5 · Concept: … · Motion style: … · …。僅概念為必填:無標題則自行命名;無時長則設為 30 秒;無節奏則設為 3;無地圖外觀或不需地圖。
  • 若有任何遺漏且使用者未選擇「Not now」,則在背景啟動 hgm install。
  • 空白 widget、無 widget 工具、上傳的腳本或跳過表單:請參閱 references/setup.md。

2 · 時間估算(緊接在答案之後)

執行 hgm estimate --answers "<答案行,原文不動>"。用一兩句話提供其前兩行,然後開始。無需等待確認。

「讓 Claude 決定」:從頭到尾,不問問題

當風格為「讓 Claude 決定」(或「你決定」、「給我驚喜」,或表單被跳過)時:

  • 不再詢問任何問題。像導演一樣決定一切:最能服務概念的風格、節奏(除非概念明確需要平靜或狂亂,否則設為 3)、僅在故事穿越真實地點時才使用地圖、僅在剪紙鬧劇或紙偶劇中使用行走、角色與語音、腳本,以及來自檔案館的圖片(僅在已連線時才使用 ChatGPT)。
  • 重新執行 hgm estimate --style <id> --duration <s> --pace <1-5> --script write|have|none,並用兩行告訴使用者你選擇了什麼、為什麼,以及需要多久時間。
  • 唯一無法跳過的步驟是 ElevenLabs 登入(如果需要語音且尚未連線)。如果無法完成,則製作一部配樂與文字影片。

3 · 設定(在任何建構前完成)

如有需要則執行 hgm install,然後執行 hgm new <slug> --style <id> --pace <1-5>(id 列表:cutout-farce, kinetic-editorial, kinetic-swiss, editorial-collage, period-print, paper-theatre, real-maps, stat-hits, footage-led, silent-film, title-sequence, object-diorama),接著執行 hgm doctor。ElevenLabs 登入(hgm connect-voice)與 ChatGPT 圖片連線(hgm connect-images)在 references/setup.md 中有精確用語;請逐字遵循,且絕不處理金鑰。全部綠燈 → 用一行話說 「Setup done」。

4 · 導演方向

  • hgm ref <style-id> 會一次性印出此風格所需的一切:styles.md 中其對應章節、其運動語言、所有風格下的共同規則,以及 taste.md(品味標竿與反 AI 外觀檢查清單)。不要打開整個參考檔案。
  • 事實需要研究,絕不臆測。 如果影片陳述事實(歷史、科學、人物、數字、「如果…會怎樣」),則在撰寫任何腳本之前,由子代理將其研究至 FACTS.md:hgm ref research。腳本僅來自已確認的事實;戲劇張力來自真實的細節。
  • 未提供腳本: 在一則訊息中提出 3 個概念(一個處於某情境的角色、一個 1.5 秒的鉤子、一個升級到結局)並自行刪除最安全的那個。在「讓 Claude 決定」模式下,不要提案:直接選擇最強的並開始執行。每 30 秒的字數由節奏決定(pacing.json 中的 words30:節奏 1 為 50 字,節奏 3 為 66 字,節奏 5 為 82 字)。以結局台詞作結。
  • 規劃場景。 在 BRIEF.md 中撰寫場景計畫:每個場景一行,包含其時間範圍、地點及變化方式。除非故事需要單一場景,否則世界會根據節奏的 scenery 秒數而改變。在同一背景上增加新道具不算變化(請參閱 taste.md 中的「Scenery」)。
  • 鎖定世界觀 在 BRIEF.md 中設定五條規則:調色盤(2–3 種顏色,每個節拍加一個強調色)、印刷或線條、紋理(一種顆粒感)、光線、字體(一個系列)。

5 · 語音:語音是時鐘(若無旁白則跳過)

  • hgm voices --list → 將角色分配寫入 audio/cast.json → 建立 audio/script.json(text 透過 [audio tags] 承載表演指令,caption 為螢幕上顯示的乾淨文字,gap_after 為動作留出空間)。
  • hgm voice-all 會印出一行摘要以及任何 ✗ 行(完整記錄在 review/voice.log 中)。使用 skip_start、caption 或 hgm voices <id> 來修復 ✗ 行。詳細資訊:hgm ref elevenlabs。

6 · 素材:優先線上搜尋,其次 ChatGPT

  • 將機械部分委派給子代理(Agent 工具,model: "sonnet"):提供其視覺清單、BRIEF 世界規則以及指令 hgm assets <key> "query" …(圖片)和 hgm assets --audio <key> "query"(音效)。它會針對每個 key 回傳前 3 個候選項目,所有結果整合成一個組合工作表與一個簡短文字清單。你以縮圖檢視該工作表並選擇;然後 hgm pick <key>:<n>:<name>(你或子代理)會下載並記錄來源。來源資訊:hgm ref sources。
  • 僅當檔案館無法提供時,才使用 ChatGPT(hgm img inbox/<name>.png "<提示詞>" 或提示詞包):請參閱 hgm ref imagegen。
  • 地圖:hgm map-data … 然後 hgm map-reel:請參閱 hgm ref maps。絕不繪製或猜測地理資訊。
  • 剪裁與裝配 在 assets/build_assets.py 中進行(hgm grid、hgm zoom、hgm cut、hgm explode;配方請見 hgm ref cutout-farce-recipe)。子代理可以進行座標讀取與剪裁;你只需檢查單一的 explode 工作表。

7 · 動畫

  • 建構在 <slug>.mjs(脚手架)中。hgm api 會列出每個輔助函式及其簽名:使用它而非閱讀脚手架或舊影片。保留時間軸輔助函式;取代 DEMO 區塊。
  • 一個狀態物件,使用 at(sec, {key: [from, to]}, dur, ease)。每個動作都有一個音效提示;字幕與文字對齊。at() 會根據節奏縮放每個持續時間(PC.k);使用 PC.shot 與 PC.scenery 進行剪輯與場景變換。hgm voice-all 會套用該節奏的說書人速度與間隙。
  • 以該風格的移動方式移動(其幀率、是否以雙幀或三幀步進、其緩動函數、鏡頭、轉場)。脚手架已套用設定檔。切勿為每種風格都使用相同的平滑緩入緩出:這種千篇一律正是 AI 的破綻。
  • 行走動作屬於剪紙鬧劇(以及紙偶劇的跳躍與滑行):walk(style, t, {facing}),hgm ref walks,hgm walks 觀看示範。
  • 一次寫好影片檔案,然後透過小幅編輯來修改。切勿為了更改一個場景而重寫整個檔案。
  • 需要避免的陷阱:在首次建構前參閱 hgm ref traps。

8 · 審查:看起來要像設計師(這是值得花費 Token 的地方)

  • hgm stills 0,1,3,6,10,...(12–18 個時間點,包含動作中間幀)會寫入 review/contact.jpg。檢視一次,並根據品味檢查清單進行判斷:第 0、1、3 和 10 秒是否有鉤子;每個節拍是否有一個主角;沒有東西遮住臉;沒有東西只是「存在」;場景是否按計畫改變,或者連續的幀是否共享同一個背景?有沒有人會猜這是 AI 製作的?
  • 一次修復所有發現的問題,然後只針對更改過的時刻再次 hgm stills。只縮放(hgm zoom)到你正在判斷的單一事物。

9 · 建構與交付

  • hgm build(渲染、混音、封裝;在背景執行),然後 hgm frames 0.2,<mid>,<end> 並從最終 MP4 檔案中查看這些幀。hgm cover <t> 會製作一個無文字的純封面。
  • 發送 MP4 與封面(SendUserFile)。說明長度、與簡報相比的任何更改,以及你無法驗證的項目(Claude 無法聽音:混音是透過電平與時間碼檢查的)。
  • 保持 CREDITS.md 完整。回饋意見要精確:精準套用那些修改,重新檢查那些幀,重新建構。

Token 預算

根據前三部影片(Pemberton 338 輪、Hyderabad 116 輪、Wright brothers 72 輪)測量:每一輪都會重新讀取整個對話,因此成本是輪數乘以上下文大小。對話開始時大約有 90K Token,之後才會開始任何實際操作。螢幕截圖、工作表或 cat 命令會留在上下文中,並在後續每一輪中重新計費。因此:

  • 減少輪數。 將獨立的指令批次處理為一個工具呼叫(hgm stills … && hgm frames …)。規劃好修復清單,然後一次套用。
  • 輸出要小。 使用 hgm 指令,而不是對參考資料、舊影片或記錄檔使用 cat、ls 或 sed。hgm ref、hgm api 與 hgm state 只會印出需要的內容。絕不印出 JSON、完整的語音清單兩次,或影片檔案本身。將長時間工具輸出重導向到檔案,並使用 tail -3 查看。
  • 圖片要小,數量要少。 每輪審查使用一張合成圖;220 像素的幀已足夠判斷。絕不讀取原始靜止幀、原始下載檔或全尺寸幀;改為縮放至裁切區域。
  • 機械性工作使用子代理(model: "sonnet"):素材搜尋與下載、剪裁與裝配檢查、渲染、來源記錄。它們會回傳一個簡短清單和一張工作表。保留主要模型用於概念、腳本、風格、選擇以及設計師的審查。
  • 在上下文變得太重之前交接。 當上下文約達 200K Token(或視窗的 40%,以先發生者為準;大約 50 次工具呼叫)時,完成當前步驟,執行 hgm handoff,填寫其「Next」行,然後告訴使用者:「在一個新的對話中繼續:continue <slug>。」 一個新對話會從 HANDOFF.md 與 hgm state 恢復,大約只需 5K Token。
階段主對話輪數可能增加的上下文
選擇器 + 估算≤ 4≤ 8K(視覺化指南佔大部分)
設定≤ 3≤ 2K
研究(子代理寫入 FACTS.md)≤ 2≤ 3K(你閱讀 FACTS.md,絕不讀搜尋結果)
方向(+ hgm ref)≤ 6≤ 12K
語音≤ 4≤ 4K
素材(子代理進行搜尋)≤ 6≤ 10K(一個組合工作表 + 一個 explode 工作表)
動畫(影片僅寫一次)≤ 8≤ 25K(你寫入的影片檔案)
審查(≤ 4 張合成圖)≤ 12≤ 12K
建構 + 交付≤ 4≤ 4K
整部影片≤ 50結束時低於 ~180K

在概念、風格選擇與設計師審查上盡情花費。它們成就了影片;預算應來自管線,絕不來自外觀審視。

不可協商事項

  • 語音: 僅限 ElevenLabs。
  • 圖片: 優先使用檔案館;需要時才用 ChatGPT 圖片。絕不使用 Higgsfield。無 AI 影片。絕不使用程式碼繪製角色、插圖或標誌。
  • 引擎: canvas + anime.js + FFmpeg。僅在真正需要 3D 時使用 three.js;僅在構想需要物理光線時使用 Blender。
  • 來源記錄與金鑰: 為每個來源註明出處。絕不在請求中包含使用者的電子郵件或個人資料。絕不印出金鑰。

相關技能