Communitygithub.com

highontrading/motion-edits

使用 Remotion 引擎,基於 82 個專業編輯的影格級分析,創作出高品質動態圖形影片、解說影片和短影音(Reels/Shorts/TikTok/YouTube),可輸出為任何長寬比的 MP4。

motion-edits 是什麼?

此技能「Motion Edits」是一個強大的 AI 代理工具,專門用於生成專業級動態圖形影片和短片編輯。其核心是基於對 82 個專業參考編輯進行逐影格分析而建立的規則與數據。它提供兩種主要模式:一是完全無需素材的「獨立動畫」,可透過文字、圖形、圖表等元素獨立呈現;二是「素材編輯」,能將用戶提供的影片片段作為主幹,進行精修、放大、添加字幕與轉場等操作。 該技能支援多種長寬比,並內建了 12 種風格家族供選擇與混合。工作流程從腳本撰寫、語音生成或分析,到最終的規格檔案撰寫與渲染,都有對應的工具與文件指引。用戶僅需提供主題或素材,AI 便能產出完整的影片規格,並透過 Remotion 引擎渲染為 MP4,適合製作解說影片、產品展示、動態排版、宣傳廣告等各類需求。

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

在你喜歡的 AI 中提問

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

說明文件

Motion Edits

此技能可產出完成度高、品質頂尖的動態影片。它的運作基於四個要素:

  • 規則與數據:從 82 個參考編輯(references/)逐影格測量而來。
  • 12 種風格家族:可供選擇與混合(references/styles/)。
  • Remotion 引擎(remotion/):能渲染出 JSON 格式的 VideoSpec;一個子句代表一個場景,包含測量過的動態曲線、節奏性剪接、與文字同步的動畫、程序化紋理以及電影級調色。
  • 工具:用於語音、節拍、素材分析、去背、遮罩、渲染與品質檢查(tools/)。

兩種模式,可以在同一支影片中混合使用:

  • 獨立動畫:無需素材。由文字、去背圖、UI 模型、圖表、計數器、粒子與紋理構成一切。
  • 素材編輯:以用戶的影片片段為主幹。進行緊湊化、放大局部、加入字幕、關鍵字衝擊效果與B-Roll卡片、將文字置於主體後方、調色、加入轉場。

任何長寬比:在規格中設定 width/height(預設為 9:16 1080×1920;16:9、1:1、4:5 等皆可)。

務必先讀

  1. references/playbook.md:規則手冊。每次都要讀。
  2. references/engine-spec.md:所有規格欄位、圖層、轉場與渲染指令。撰寫規格前請務必閱讀。
  3. references/styles/README.md:挑選一個風格家族,然後閱讀該家族的檔案(其範例規格是一個很好的起點)。

當需要做出決策時,可參考的深入文件:

  • script-structure.md:類型範本、鉤子、子句 → 場景 → 道具規則、實例解析。
  • motion-language.md:動態曲線、影格率、節奏、同步數據。
  • transitions.md:63 種轉場及其影格數與建構方法。
  • typography-color.md:字型類別、搭配、尺寸、安全區、色盤、調色量。
  • sound-design.md:背景音樂、音量閃避、音效放置、節拍同步、純音樂剪輯。
  • footage-editing.md:整合模式、放大局部、蒙太奇、字幕、兩個完整的素材編輯規格範例。
  • engine-gaps.md:引擎目前無法做到的事,以及因應方法。
  • breakdowns/vNN.md + breakdowns/_TAXONOMY.md:逐鏡頭的證據。可透過標籤搜尋找先例(grep -l "text-behind-subject" references/breakdowns/*.md)。

一個完整的實際範例(從腳本 → 暫用語音 → 規格)位於 remotion/src/specs/examples/zeigarnik.json(腳本:work/zeigarnik.script.txt)。

工作流程

0. 環境設定(每個環境只需一次)

cd remotion && npm install
pip install faster-whisper librosa opencv-python-headless "rembg[cpu]" piper-tts pillow numpy

需要安裝 ffmpeg。如果 librosa 因段錯誤崩潰,請設定 NUMBA_CACHE_DIR=/tmp/numba_cache。

1. 需求確認

取得以下資訊,或在用戶未提供時選擇合理的預設值,不要卡住進度:

  • 主題或訊息
  • 平台與長寬比
  • 長度(短影音:20–45 秒)
  • 語音:用戶的語音檔案、要配音的腳本,或無語音
  • 素材或照片
  • 品牌資訊(色盤、字型、標誌)
  • 調性
  • 需要幾個版本

如果用戶只提供主題,請自行撰寫腳本。

2. 腳本 → 子句清單

使用 script-structure.md。在開頭第一個句子放入鉤子(8–15 個字,前 3 個字就要有衝擊力)→ 鋪陳 → 轉折 → 在 16–40% 處提出命名原則 → 佐證 → 反論教訓 → 行動呼籲(最後 10–14%,至少 2.5 秒)。將腳本拆分為子句:一個子句 = 一個場景 ≈ 6 個字 ≈ 2–2.8 秒。針對每個子句,寫下:

  • 名詞的具體 道具或圖片
  • 關鍵字:1–3 個將成為動態文字的字詞
  • 裝置:徽章、計數器、UI、圖表、塗鴉、切換、粒子
  • 進入該場景的剪接方式

3. 語音與時間點

  • 用戶語音: python3 tools/transcribe.py vo.mp3 remotion/public/<proj>/vo.words.json
  • 尚無語音: python3 tools/tts.py script.txt remotion/public/<proj>/vo.wav --speed 1.15 --words remotion/public/<proj>/vo.words.json 可產生離線暫用語音。告知用戶這是佔位用;他們的語音之後可以取代,因為重新轉錄後會自動調整時間參考。
  • 純音樂或無語音: python3 tools/beats.py music.mp3 remotion/public/<proj>/beats.json,然後設定 "beats" 並使用 {beat|downbeat|onset: n} 參考和 snap。
  • 場景起始: 在每個子句第一個單詞上設定 {"word": "...", "offset": -0.06}。場景內的單詞參考會依序解析,但若單詞在附近重複出現,請使用多詞參考(如 "why writing")。關鍵字則使用 sync 或 at: {word}。

4. 視覺風格

選取 一個風格家族(參閱 styles README)。然後鎖定:

  • 色盤:每個場景輪替的場域顏色,加上 1–2 個具有固定意義的重點色
  • 字型搭配:一個厚重的展示字體搭配一個纖細的字體
  • animFps:拼貼/編輯風格設為 15,粗獷印刷風格設為 12,UI/3D/電影風格設為 0
  • 調色:顆粒 + 暗角,印刷風格可再加上網點效果
  • 一個標誌性轉場,重複使用,再加上 1–3 種輔助轉場類型

5. 素材

  • 影片素材:
    • python3 tools/analyze_footage.py clips/*.mp4 --out work/footage.json --sheets work/sheets,然後 查看產出的分鏡表
    • tools/tighten.py 可移除靜默片段
    • tools/matte.py 可產生人物遮罩,用於文字置於主體後方的效果
  • 照片: python3 tools/cutout.py photos/* --out remotion/public/<proj>/cutouts --trim,然後以 image 搭配 cutout: true 使用。將文字層的 z 設在去背圖層之下,即可將文字藏在主體後方。
  • 無素材: 使用文字、程序化背景、UI 模型、圖表、計數器、形狀、粒子與 embed。僅在必須使用具體物件時,才在 remotion/src/custom/ 中撰寫自訂元件。
  • 僅使用用戶提供或擁有權利的標誌、肖像、音樂與音效。學習技巧;切勿複製創作者的品牌、角色、片尾卡或腳本。

6. 撰寫規格

以所選風格家族的範例為基礎,撰寫 work/<proj>.spec.json,內容為 {"spec": {...}}。素材檔案放在 remotion/public/<proj>/ 目錄下。撰寫時請套用 playbook 的檢查清單。

7. 預覽、渲染、審查、修正

  1. 先看單格畫面:
    cd remotion && npx remotion still src/index.ts MotionVideo /tmp/f.jpg --frame=N --props=../work/<proj>.spec.json --scale=0.4
    
    為每個場景取一格畫面(場景中間影格),拼貼起來檢視,修正溢位、對比、雜亂與空白影格問題。
  2. 渲染:
    python3 tools/render.py work/<proj>.spec.json out/<proj>.mp4
    
    加上 --draft 參數可產生半解析度預覽。它會透過 ffmpeg 套用顆粒與網點調色,速度快很多。
  3. 審查:
    python3 tools/review_render.py out/<proj>.mp4 out/review/
    
    閱讀連拍表與剪輯條。檢查剪接點是否對齊子句開頭、任何內容的可讀時間是否少於 0.5 秒、沒有任何靜態片段超過 1.5 秒,以及沒有任何畫面損壞(空白圖層、黑色間隙、邊緣露出)。
  4. 修正後重新渲染。交付 MP4 檔案,並附上簡短的鏡頭清單,以及任何用戶應自行替換的內容(暫用語音、佔位素材、音樂)。

8. 版本與系列

  • 變化版本: 保留腳本,改變風格家族、色盤、字型搭配、標誌性轉場、紋理與鉤子裝置。每個變化各渲染一次。
  • 頻道系列: 鎖定一套組合(色盤、字型搭配、調色、疊加徽章、行動呼籲卡片、2–3 種標誌性轉場)。將其儲存在 remotion/src/specs/kits/<channel>.json,並從此組合開始每一集的製作(參閱 kits/README.md)。

不確定時的預設值

  • 格式: 1080×1920,30 fps。
  • 風格: 解說影片使用 halftone-poster-collage,商業/科技類使用 native-ui-explainer,工具類使用 dark-product-promo。
  • 動態: animFps 設為 15,settle 設為 1.10(預設值),場景長度 1.2–2.8 秒。
  • 文字: 關鍵字使用 impact/bebas 字型,大小 18–30 級,搭配一個 serif-italic 或 script 的輔助字詞。使用深重點色製作 stitched 徽章。
  • 剪接: 標誌性轉場為 zoom,快速插入用 cut,揭示效果用 flash 或 invert,進入行動呼籲時用 circle。
  • 調色與音訊: grain 設為 0.07,vignette 設為 0.35。背景音樂音量 musicVolume 設為 0.3,閃避音量 duckTo 設為 0.12。

相關技能