Communitygithub.com

codeswithroh/motion-lab

用於任何「製作動態圖像影片」需求的預設技能(產品展示、架構或流程解說、產品發布、黑客松獲獎、功能揭示),適用於 X 或 LinkedIn。用於製作任何動態圖像、動畫解說影片,或「像 cofoundr 那樣」的影片。它會撰寫一個充滿數字的定向規格書,在 HyperFrames 中建立一個穿過真實機制的實例,透過測量檢查影格,與音樂曲目的節拍同步,渲染一個正方形 60 fps 的 MP4 檔案。

motion-lab 是什麼?

這是一個專為 AI 代理設計的 Motion Lab 技能,能夠將模糊的動態圖像製作需求轉化為精確、可測量的影片。它首先會深入分析原始素材(如程式碼庫、README 或網站),提取真實的機制、數據和品牌元素。然後,它會使用充滿數字的定向提示詞(SPEC.md)來規劃影片,並遵循「掛鉤、實例、階段導軌、階段畫面、回報」的故事結構,確保每個廣告都有清晰的視覺敘事。此技能支援 HyperFrames 平台進行渲染,並整合了音樂同步流程,能自動偵測音樂的節拍來對齊影片的關鍵時刻。最終產出的是 60 fps 的正方形 MP4 檔案,並附上詳細的 REVIEW.md 記錄創意決策和測量結果。

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

在你喜歡的 AI 中提問

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

說明文件

Motion Lab

一部有方向性的動態作品:每個形容詞都變成一個數字,每次後續回饋都是經過測量的筆記, 而影片展示的是真實運作的東西。參考建置:此技能中的 examples/cofoundr/ (SPEC.md、compositions/、REVIEW.md、preview.mp4)。在會話中進行第一次建置之前先讀過它。

載入 hyperframes 以取得渲染合約,然後遵循以下步驟。hyperframes 的規則在格式上優先; 此技能的規則在故事、視覺風格和流程上優先。

1. 閱讀原始素材

在撰寫任何內容之前,先閱讀主題本身:儲存庫、README、主要路由或管線檔案、 定價、即時網站。從中提取:

  • 機制:真實的步驟順序(函式名稱、API 呼叫、階段)。
  • 真實數字:資料集大小、計數、權重、時間、限制。絕不憑空發明一個。原始素材沒有給出的值 要嘛被刪除,要嘛在 REVIEW.md 中被標記為說明性。
  • 品牌:強調色十六進位碼、次要顏色、Logo SVG、字型、任何風格鎖定檔案。
  • 一個開發者會引用的令人驚訝的細節(一個限制、一個備用鏈、一個已上線的錯誤)。

如果某人提到一個原始素材沒有使用的技術(一個贊助商、來自推文的工具),不要畫出來。 直接說明並詢問它的作用。

2. 撰寫 SPEC.md(定向提示詞)

模糊的提示詞(「酷炫、高級、現代」)會得到深色海軍藍、光環、粒子以及一個編造的標語。 定向提示詞會得到一部電影。從 references/spec-template.md 在專案根目錄撰寫 SPEC.md。 每一行都是一個數字:

  • GOAL、OUTPUT(1080x1080,X 預設 60 fps)、TIME(秒數 x 60 = 影格數)。
  • LOOK:背景色、墨水色、低調墨水色、規則顏色、強調色及其含義、顯示字體和內文字體 附上 px 大小和字間距、卡片圓角和陰影。
  • OBJECTS:觀眾必須辨識的每個物件,取自產品真實的使用者介面。
  • MOTION:依角色區分的緩動函數、以影格為單位的持續時間和延遲(references/numbers.md)。
  • SHOTS:影格範圍,每個鏡頭一個主要動作,觀眾讀到的內容,傳遞給下一個鏡頭。
  • BANNED 和 QA(要檢查的影格以及每個影格必須顯示的內容)。

3. 故事結構(是什麼讓 cofoundr 影片成功)

  1. 在第 0 影格掛鉤。 第一個影格就是縮圖。鉤子標語已經放在上面了, 使用顯示襯線字體,左對齊,一個字用強調色。一個大的品牌形狀放在旁邊。 範例:「我找不到共同創辦人。」配上藍色圓圈。
  2. 一個完整的實例貫穿整個機制。 一個真實的輸入(使用者的 LinkedIn URL、一個真實的 查詢)進入一個產品卡片,並移動通過每個階段。鉤子中的形狀會帶入 卡片(它變成大頭貼),這樣觀眾就不會失去線索。
  3. 一個階段導軌橫跨頂部,標示出真實階段的名稱(「豐富你的資料、搜尋 7 億、評分 30、 撰寫介紹信」),並在畫面到達時點亮每個節點。這是內建在影片中的架構圖。
  4. 每個階段都有其自己的畫面形狀:一個輸入欄位、一個從 7 億縮小到 30 的點狀區域、 按分數排序的長條圖(保留前 10 名並以強調色顯示)、一個正在輸出結果的結果卡片。 相似的線條絕不會得到相同的畫面。
  5. 回報 = Logo 具有意義。 兩個形狀(你和配對對象)滑動在一起 形成 Logo,文字標誌模糊淡入,一行顯示關鍵數字。保持 2 秒以上,完全靜止。

長度 15-17 秒。如果使用者想要循環播放,則低於 15 秒。

4. 視覺風格

預設使用產品自己的淺色應用程式外殼,而不是黑色虛空:背景色如 #f0f2f8、白色卡片 圓角 28,搭配 0 18px 40px rgba(15,23,42,.08) 陰影,墨水色 #0f172a,低調色 #64748b。 顯示字體:品牌的襯線字體(下載到 assets/fonts/,在每個使用它的場景中使用 @font-face)。 內文字體:Inter 500/700。文字最小閱讀大小為 28 px。強調色在每個影格標記一個焦點。

禁止使用:深色海軍藍虛空、光暈、發光、霓虹、粒子、紫色/藍色漸層、玻璃卡片、 等寬字體大寫標籤、藥丸形狀的 chips、所有元素置中、每個元素淡入、標題在定位後飄移、 Logo 放在角落、並排三張卡片、KPI 網格、真人的臉孔或姓名作為虛假候選人。

5. 建置

  • 在 <slug>-video/ 中執行 npx hyperframes init <dir>。根目錄的 index.html 掛載 3 個場景: hook、機制場景(在 UI 動作時保持一個連續的構圖)、payoff。
  • 為每個隨機數播種(mulberry32)。生成的點狀和長條圖是一個計時場景的子元素。
  • 每個補間動畫使用 fromTo;在同一個目標重複使用 fromTo 時,第一次之後設定 immediateRender: false。
  • 在機制場景中保留一個時間偏移輔助函式(const at = (t) => t + …),這樣重新調整時間只需修改一行,而不是二十行。
  • 可能變更的內容(URL、標題)放在合成變數中。

6. 實驗室循環(附帶憑證的後續回饋)

永遠不要相信第一次建置的結果。每次迭代後:

  1. 執行 npx hyperframes check --json;修復所有錯誤。line_unread 表示需要延長該行的顯示時間 (每個字 0.5 秒 + 0.3 秒)或刪減文字;絕不縮小字型。
  2. 執行 npx hyperframes snapshot --at <每個鏡頭的中間和結束> 並檢閱連拍截圖。
  3. 將每個問題寫成帶有編號的後續事項,並附上數字,如同參考資料列印的那樣: 「需求標籤在螢幕上顯示了 0.56 秒,底線需要 1.27 秒:讓它在 0.9 秒時落下,並將之後的所有內容 從 1.6 秒開始向後延遲 +0.6 秒」。將它們記錄在 REVIEW.md 中。
  4. 渲染後,從 MP4 檔案本身提取接縫影格 (ffmpeg -vf "select='eq(n\,F1)+eq(n\,F2)',scale=360:-1,tile=Nx1")並檢視它們。

7. 音樂

使用使用者提供的曲目(複製到 assets/audio/)。如果沒有,請向使用者索取一個,或者提供一個 從影格編號以程式碼合成的配樂(references/sound.md)。

  1. python3 scripts/find_drop.py <track> 會輸出音量圖以及最大的重拍,並附上 它們的確切開始時間以及周圍的節拍。
  2. 選擇影片的英雄時刻(Logo 形狀接觸、結果出現)。計算它實際發生的影格 (對於 back.out(1.4),形狀在補間動畫的約 23% 處接觸)。
  3. data-media-start = 重拍開始時間 − 英雄時刻時間,對齊到最近的節拍,這樣影片會從一個 節拍上開始。聲音在畫面之後的 0-1 影格處落下,絕不在此之前。
  4. <audio id="music" class="clip" data-start="0" data-duration="<film>" data-media-start="…" data-volume="1" data-fade-in="0.05" data-fade-out="1.2">。
  5. 渲染,然後測量:npx hyperframes audio <mp4> --json 必須顯示一個在英雄影格一個影格範圍內的 開始時間;音量 −16 到 −14 LUFS,真實峰值 ≤ −1 dBTP。說明它是被測量出來的,而不是憑感覺。

8. 交付

  • 執行 npx hyperframes render -f 60 -q delivery -o renders/<slug>.mp4,然後執行 ffprobe 檢查大小、 fps 和影格數。
  • 將 MP4 發送給使用者。
  • REVIEW.md:創意決策、測量了什麼、最弱的節拍、刻意保留的警告。
  • 以使用者的口吻起草貼文(預設:全小寫、先放鉤子、短行、 將機制寫成 > 步驟、來自程式碼的一個真實細節、不使用誇大詞彙)。絕不發布它。

相關技能