Communitygithub.com

KasunJayasanka/product-motion-video

製作一支 60 秒的動態圖像產品/品牌影片(展示片、宣傳片、上市預告、解說片),包裝成單一自包含動畫,並可選擇匯出為 MP4。每當使用者提及動態圖像、產品影片、展示片、宣傳片、動畫品牌影片或產品/公司/點子的「1 分鐘影片」時使用(即使他們沒說「技能」)。刻意節省 token。

product-motion-video 是什麼?

這項技能可根據使用者輸入的主題,自動生成一支 60 秒的產品或品牌動畫影片,全部封裝在一個檔案(HTML + 純 JavaScript)中,無需任何外部依賴。它會先從使用者那裡收集最少必要資訊(主題、品牌資料、風格偏好),然後規劃出包含 8 個場景的動畫腳本(從鉤子、問題、揭露到行動呼籲),最後使用 Canvas 與 DOM 操作在瀏覽器中即時建構動畫。所有動畫均以 requestAnimationFrame 驅動的場景時間軸控制,並支援播放/暫停、進度條拖曳、時間碼跳轉等互動功能。輸出規模限制在 18KB 以內,且可視情況利用 Playwright 與 FFmpeg 匯出無損 MP4 檔案。這項技能特別適合用於快速產出產品宣傳或品牌展示用的短影片原型,並支援精確的時間控制與漸變效果。

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

在你喜歡的 AI 中提問

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

說明文件

產品動態影片(60 秒)

0. 輸入(只詢問缺少的部分,一則訊息,最多 3 個問題)

  • 主題:產品/點子(必要)
  • 品牌:網址或 markdown 檔案(選擇性)→ 擷取名稱、標語、3 個優點、顏色、語氣。最多一次 web_fetch。
  • 風格參考:選擇性;推測 3 個特質(節奏、類型、色調),一行內完成。不做深入研究。 如果使用者未填寫 {placeholders},則視為空白,並用一行說明假設,然後直接建構。

1. 規劃(<=15 行思考,不要寫成文章)

色調(背景、墨水、1 個強調色、1 個次要色),1 個顯示字體 + 1 個內文字體(系統/Google Fonts 並附帶後備字型),8 個場景。

預設 60 秒結構(秒數):

  1. 0-5 鉤子:動態文字排版,一個大膽的主張
  2. 5-13 問題:故障/緊張感,計數器
  3. 13-21 揭露:標誌/產品以變形方式進入
  4. 21-31 功能 1-3:UI 卡片、圖示彈出、交錯顯示
  5. 31-41 證明:動畫圖表/數字計數動畫
  6. 41-49 流程/運作方式:線條繪製路徑 + 節點
  7. 49-56 蒙太奇:快速切換,0.4 秒節拍,跑馬燈文字
  8. 56-60 行動呼籲:標誌、標語、網址、脈衝效果

2. 建構(一個 .html 檔案,純 JavaScript,零依賴,<=18KB)

架構,保持輕量:

  • 1920x1080 舞台,透過 CSS transform 縮放至適應;所有顏色設為 CSS 變數。
  • 主時間軸:scenes=[{t0,t1,build(stage), update(p)}],p 在 0..1 之間,由單一 rAF 時鐘 t=(now-start)/1000 驅動。無 setTimeout 鏈。
  • 輔助函式(一次編寫,重複使用):ease(p)(三次/指數/反彈)、lerp、clamp、stagger(i,n,p)、type(el,text,p)。
  • 動作詞彙(使用 >=6 種):動態文字排版、遮罩揭露、stroke-dashoffset 線條繪製、計數動畫、視差圖層、交錯卡片、形狀變形(透過 lerp 產生的 SVG path d 屬性)、故障效果(clip-path 切片)、跑馬燈、鏡頭推近(對舞台做 scale+translate)、場景間的螢幕擦除效果。
  • 規則:場景轉場重疊 0.4 秒;每個元素都使用緩動函式(永不線性);最多同時 2 個視覺焦點;重要文字停留 >=1.2 秒;僅對 transform 與 opacity 做動畫。
  • 控制項:播放/暫停(空白鍵)、進度條拖曳、重新開始、?t=秒數 跳轉參數、window.seek(t) 供匯出使用。
  • 尊重 prefers-reduced-motion:不自動播放閃爍的故障場景。
  • 可選音效:WebAudio 合成場景切換提示音(預設關閉,有靜音切換)。不使用外部音訊。

3. 交付

  • 使用 Artifact 工具(發佈)發佈為頁面;若無 Artifact 工具,則在 /mnt/user-data/outputs 建立檔案並使用 present_files。
  • 回覆:2 句話(這是什麼、假設事項)。不做逐場景解說。

4. MP4 匯出(僅當使用者要求時)

Playwright 無頭模式:對 f in 0..1799 呼叫 seek(f/30),截取 1920x1080 畫面 -> 幀;ffmpeg -framerate 30 -i f_%04d.png -c:v libx264 -pix_fmt yuv420p out.mp4。若缺少 ffmpeg/playwright,則告知使用者並提供此配方,不再重試。

5. Token 紀律

  • 除非要求,否則不閱讀其他技能、不預覽渲染、不進行潤色。
  • 跨場景重複使用相同的卡片/排版佈局;變化動作,而非標記。
  • 在一個工具呼叫內寫入檔案。修訂時使用小型 str_replace 編輯,絕不重寫。
  • 研究次數上限為 1 次 fetch + 1 次 search。

相關技能