Communitygithub.com

risingjerry/motion-skill

用程式碼製作 4K 動態短片,全程不使用 AI 生成圖片或影片:產品發布片、App 宣傳片、Logo 動畫、實物 3D 鏡頭、解說/演示動畫、或結合真人實拍的剪影轉場。

motion-skill 是什麼?

此技能提供一套完整的程式碼驅動流程,用於製作高品質的 4K 動態圖形短片,適用於產品發布、App 演示、Logo 動畫或 3D 實物展示。它完全避免使用 AI 生成圖片或影片,確保所有視覺元素皆源自真實素材或程式碼計算。技能支援三種漸進層級:平面動畫(2D HTML)、瀏覽器內 3D、以及基於 Blender 的棚拍級渲染,使用者可依專案需求靈活切換或混用。流程嚴謹,從需求確認、分鏡設計、逐格渲染檢查到音畫同步,每個步驟都有詳細規範與輔助工具(如分鏡板產生器、佈局檢查腳本、3D 穿模檢測、音訊混音等)。其核心哲學在於透過時間參數驅動每一幀,使得修改節奏或動作僅需調整數值而非重新拍攝,從而實現高效率迭代。支援平台包括 Node.js、Python、ffmpeg 及瀏覽器,第三層需要 Blender。

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

在你喜歡的 AI 中提問

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

說明文件

程式碼動態短片(motion)

影片由程式碼製作:每一幀都由時間參數 t 計算產生,因此「這裡慢一點」只需修改一個數字再重新渲染,無需重拍。 不使用任何 AI 生成圖片或影片模型;畫面中的內容皆來自真實素材或程式碼。

先選擇做到哪一層

三層使用同一套流程,越往下越接近實拍,但也越耗時。根據影片需求選擇,亦可混合使用。

層級畫面內容適用場景起點
1. 平面動畫真實 Logo、真實截圖、形狀持續變形App、軟體、品牌開場templates/2d.html
2. 瀏覽器 3D介面卡片置於三維空間、鏡頭穿梭;剪影轉場銜接實拍多螢幕介面展示、需結合真人實拍的影片templates/3d.html、scripts/silhouette.py
3. Blender 棚拍實物產品模型、一盞燈、真實材質耳機、手機、杯子等實物產品scripts/blender/studio.py

詳細說明:references/layers.md。

流程(依序進行,不可跳步驟)

  1. 確認需求,準備真實素材。 產品是什麼、目標觀眾、影片長度、發布平台、結尾希望觀眾做什麼。素材一律使用真實內容:官方 Logo 檔案、真實裝置截圖(先移除通知、頭像、電話號碼)、品牌色與字型。請勿使用應用商店宣傳圖作為介面,也不要憑記憶繪製 Logo。 製作實物產品需先收集多角度照片,最好是使用者自己拍攝的實物照片,後續用於比對模型比例。
  2. 確定結尾。 結尾僅保留圖標與文字商標(或銜接實拍)。不加「立即下載」「開啟 XX」等口號,也不放「概念片」免責小字(如需說明請寫在簡介中)。
  3. 產出帶編號的分鏡,等待對方確認。 5–10 個鏡頭,每個鏡頭標明:時間區段、畫面內容、動作、如何轉場至下一鏡、螢幕上的文字。 撰寫 shots.json,執行 node scripts/render.mjs board shots.json board.png 產生一張分鏡板圖片供對方檢視。 未獲得確認前不進行成片製作——此時修改成本最低。格式請參閱 references/storyboard.md。
  4. 建立頁面。 複製模板與 templates/motion-kit.js 至素材資料夾。所有節拍資訊寫在頁面頂端的 BEATS 區塊中,調整節奏只需修改此處。 頁面規範請參閱 references/html-engine.md。
  5. 逐幀自我檢查,再給他人觀看。 使用 render.mjs still 抽取關鍵時刻(每個轉場抽 3–4 個點,不只看靜止畫面), 再以 scripts/sheet.py 拼接成一張檢查圖,自行審視一遍。接著執行檢查腳本:
    • render.mjs probe + scripts/layout_check.py probe:確認文字離主體至少 40 像素(4K),主體位於畫面中央附近。
    • 3D:scripts/blender/motion_check.py(檢查穿模、每幀最多旋轉 6°、轉速不跳躍)、scripts/seam_check.py(檢查零件接縫 ≤ 1 像素)。 檢查清單請參閱 references/checklist.md。
  6. 僅輸出 4K 解析度。 執行 node scripts/render.mjs video page.html 片名-4K.mp4 --scale 2(將 1920x1080 頁面放大至 3840x2160)。 同一台電腦同時只能執行一個 4K 渲染或 Blender 渲染任務。從 4K 成片中抽幀檢查:python3 scripts/sheet.py video ...。
  7. 畫面確定後再加入聲音。 一旦修改畫面,所有節拍都會受影響。配樂與音效皆需具備;配樂中最重的一拍需對齊畫面的關鍵落點; 整體音量 -14 LUFS、真實峰值不超過 -1 dBTP;影片串流原樣複製不重新編碼。詳細說明請參閱 references/sound.md。
  8. 修改稿件。 每輪修改先進行備份,修改完成後重新抽幀自我檢查,並以白話清楚說明修改了什麼。另存新版本,不覆蓋、不刪除對方的檔案。 如實說明已檢查過哪些項目:靜止畫面不等於播放效果,觀看圖片不等於聽過混音。

讓影片好看的規則

完整說明請參閱 references/transitions.md 與 references/blender-3d.md,以下是必須牢記的重點:

  • 每個鏡頭從前一個鏡頭變化而來。 不使用淡入淡出或疊化。透過同一物體的變形、翻面、展開、收回,觀眾的眼睛無需重新尋找目標。
  • 動作置於畫面中央。 想像畫面中心有個準星,主角始終位於其附近。
  • 畫面持續運動。 即使是靜止的鏡頭也需伴隨極慢的推近或漂移。
  • 一個動作遵循一條曲線。 推近就一路推近,不要推了又拉回;旋轉就一路旋轉,不要轉一半回頭。快速啟動、緩慢結束,結束的緩衝時間要留長。
  • 文字簡短,從模糊浮現至清晰,不要彈跳或突然放大。文字不能壓在主體上。
  • 3D 場景僅使用一盞燈,背景調黑。這是營造「棚拍感」的主要關鍵。
  • 3D 需符合物理邏輯: 零件閉合時緊密貼合;物體之間不可穿模;兩個物體交換位置時走 3D 公轉路徑,不要直線穿過對方;轉速平滑不跳躍。
  • 拿實物照片比對模型,比例、圓角、開孔位置不對就修改模型。
  • 剪影轉場從局部特寫開始,再拉遠、再硬切回實拍。詳細說明請參閱 references/silhouette.md。
  • 音畫僅整體平移,不改變速度、不改變音調。

遵守規範

  • 品牌: 僅為對方擁有或獲得授權使用的品牌進行創作。他人的品牌只能作為練習作品,不得冒充官方、不得投放廣告、不得模仿對方的真實行銷素材。
  • 素材: 僅使用對方自行製作或已取得授權的素材、字型、音樂、模型,並確認授權範圍涵蓋此類用途。
  • 說法: 影片中的數字與說法必須真實且有來源,不得編造數據或評價。
  • 隱私: 截圖與實拍畫面中的個人資訊須先移除;出現的人物需取得同意。
  • 付費服務(如配音、AI 音樂等)會消耗對方的額度,需對方要求後才使用。

腳本一覽

腳本功能說明
scripts/render.mjs將 HTML 頁面轉換為靜幀、4K mp4、位置記錄(probe)、或分鏡板(board)
scripts/sheet.py從靜幀或成片中按時間抽幀,產生一張帶時間標記的檢查圖(從原始解析度抽取)
scripts/layout_check.py檢查文字與主體的距離、主體是否居中
scripts/seam_check.py檢查兩個零件在真實攝影機角度下的接縫錯位(像素)
scripts/blender/studio.py建立單燈棚拍場景 + 使用 EEVEE/Cycles 渲染,支援 GLB/glTF/USDZ/OBJ/FBX 格式,--demo 參數可載入範例模型
scripts/blender/motion_check.py逐幀檢查穿模、角速度、轉速突變
scripts/silhouette.py摳除人物蒙版(macOS Vision,可選),產生平滑矢量剪影,可從特寫拉遠
scripts/audio/synth.py以程式碼合成音效包與配樂基底(免版權)
scripts/audio/mix.py將配樂對齊關鍵落點、依節拍放置音效、側鏈讓路、響度正規化、合成至影片
scripts/encode.py將逐幀 PNG 轉換為 mp4
scripts/doctor.py檢查相依套件,提示缺少哪些與如何安裝

何時閱讀哪個檔案

當你…請閱讀
選擇層級、評估工作量references/layers.md
撰寫分鏡references/storyboard.md
撰寫 HTML 頁面、輸出影片references/html-engine.md
設計鏡頭之間的轉場references/transitions.md
製作實物產品 3Dreferences/blender-3d.md
製作剪影、銜接實拍references/silhouette.md
加入配樂與音效references/sound.md
交付前自我檢查references/checklist.md
畫面出現異常references/pitfalls.md

環境需求

Node.js 20+、Python 3.9+(需安裝 numpy、Pillow、opencv-python-headless)、ffmpeg、Google Chrome 或 Chromium。 第 3 層需要 Blender(免費);剪影轉場的自動摳像需 macOS 14+,其他作業系統請使用其他工具產生蒙版。 開始前請執行 python3 scripts/doctor.py,若缺少任何套件,先告知對方如何安裝。 若 Skill 資料夾中存在 .venv 目錄,Python 腳本應使用 .venv/bin/python 執行(Windows 環境:.venv\Scripts\python);Windows 上請將 python3 替換為 python。

相關技能