Communitygithub.com

6space7/autozoom-demo-scenes

將當前專案中的任何功能、頁面或儀表板,轉換成具有 AutoZoom 風格的精美操作示範影片。

autozoom-demo-scenes 是什麼?

此技能可將開發者當前的功能、頁面或儀表板,自動生成具有 AutoZoom 風格的操作示範影片。它會讀取專案中的真實程式碼,將頁面元件重新建立或匯入至 Remotion 專案中,並模擬出流暢的鏡頭自動變焦、真實游標與點擊效果、聚光燈、打字動畫、按鍵顯示、逐字字幕、提示訊息以及錄製標誌(REC chip),最終輸出為 MP4 檔案。支援 React、Vue、Angular、Svelte 等主流框架,並自動安裝 Remotion。開發者只需編寫一個故事腳本(story),定義時間軸與鏡頭運動,即可快速生成高品質的產品展示影片,適合應用於功能導覽、產品發表、入門動畫或 Landing Page 主視覺影片。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/6space7/autozoom-demo-skill/tree/HEAD/skills/autozoom-demo-scenes

在你喜歡的 AI 中提問

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

說明文件

AutoZoom 操作示範影片

你正位於使用者的專案中。請讀取該功能的真實程式碼,將其畫面重建為 Remotion 專案中的 React 元件,並以 AutoZoom 錄製螢幕的方式進行拍攝:鏡頭會自動變焦對準每一個動作。以程式碼建立的畫面遠勝於螢幕截圖:真實的輸入框中會逐字輸入文字,行會滑入,按鈕會改變狀態,且一切在任意縮放層級下都保持銳利。

本技能包含的檔案:

  • scripts/setup.mjs 用於建立 Remotion 專案並安裝(Remotion + React)。
  • assets/remotion-template/ 是複製的範本:包含自動變焦鏡頭、視窗、游標、聚光燈、疊加層以及一個範例畫面與故事。只有 src/story.tsx 和 src/screens/* 會根據每個示範而變更。
  • references/story-api.md 記錄了每個故事欄位、畫面鉤子以及如何測量位置。在撰寫故事前請先閱讀此文件。
  • references/style.md 是 AutoZoom 的外觀樣式:框架、動態與疊加層。

工作流程

1. 確定故事

與使用者達成共識,用一句話說明觀眾應該學到什麼(例如「搜尋任意指標,然後一鍵分享」)。將時間控制在 6 到 15 秒 之間,並包含 2 到 4 個節拍。每個影片只傳達一個想法;如果需要展示兩個功能,請製作兩支影片。只有在要展示的功能不明確時才提問;否則直接選擇最令人印象深刻的流程。

2. 閱讀專案

找出示範要展示的內容:

  • 路由、頁面或元件及其子元件;
  • 設計 Token:Tailwind 設定、CSS 變數、主題檔案;
  • 字型、圖示庫、Logo;
  • 真實的範例資料:fixtures、種子資料、Storybook 故事、mocks、測試資料。

絕不能憑空創造不同的外觀。示範影片必須看起來像他們的產品。

3. 設定 Remotion

node <skill-dir>/scripts/setup.mjs demo     # 建立 ./demo 並安裝

重新執行是安全的。將 demo/ 加入專案的工作區,或保留為獨立目錄。

4. 建立畫面(demo/src/screens/<Name>.tsx)

以故事視口(預設 1440 × 900,類似瀏覽器視窗)繪製畫面。選擇適合專案的路由方式:

  • A. 匯入真實的元件(React 專案)。 品質最佳。適用於元件為呈現性(presentational)的情況。為它們提供靜態 props 與資料,並將其包裝在所需的任何 Provider(主題、路由、Query Client、i18n)中,並使用樁值(stub values)。絕對不要讓它們從網路請求資料或讀取驗證資訊。確保別名(alias)能正確解析並載入其樣式;請參閱 references/story-api.md ›「使用專案自己的元件」。
  • B. 重建它(任何技術棧:Svelte、Vue、Angular、原生,或具有大量執行時期依賴的 React)。 將頁面移植為 React,保留相同的結構、類別名稱或數值、色彩、圓角、間距、字型、圖示與文案,直接從原始碼讀取。只包含畫面上可見的內容。

無論採用哪種方式:

  • 使用專案中的真實資料(名稱、數字、狀態),絕不使用 lorem ipsum。
  • 為故事要對準的元素設定已知位置。佈局時應能明確說出它們的邊界,或透過除錯網格(步驟 6)進行測量。
  • 讓畫面利用 src/lib/hooks.ts 中的鉤子(useTyped、useAfter、useProgress、usePop、useCount)自行產生動畫。透過 props 將影格編號傳入故事,使時間軸集中在一個地方。src/screens/MockDashboard.tsx 是一個實際範例。

5. 撰寫故事(demo/src/story.tsx)

首先以影格(fps 60)為單位,以註解方式寫出時間軸:

0–60     全景;游標移至搜尋框,點擊(58)
60–130   鏡頭變焦至搜尋框
140–260  查詢內容自動輸入;字幕 1
268      回車;結果更新
280–345  鏡頭拉回至結果
...      鏡頭 + 游標移動 → 點擊 → 結果 → 提示訊息;字幕 2
520–600  鏡頭平順拉回

然後填寫 camera、cursor、clicks、keys、captions、toasts 和 spotlights,所有數值均以畫面像素(screen px)為單位。關閉 rec:角落的疊加層在鏡頭變焦時會蓋在應用程式上方。欄位參考請見 references/story-api.md。

6. 檢查靜態畫面,然後渲染

cd demo
npx remotion still Demo out/f.png --frame=150    # 檢查關鍵影格(讀取 PNG 檔案)
npm run studio                                   # 為使用者提供即時預覽
npm run render                                   # → out/demo.mp4

在故事中設定 debug: true,可在畫面上繪製帶有標籤的 100px 網格,以便從靜態畫面讀取位置。渲染前請關閉除錯模式。檢查每個節拍的靜態畫面:變焦時主體完全在畫面內,游標尖端對準目標,文字清晰可讀,且疊加層不會遮蓋操作。

7. 交付

將 MP4 檔案路徑交給使用者,並展示一或兩個影格。可選擇透過 @remotion/player(請參閱 references/story-api.md)將即時組合嵌入使用者的網站。

動態規則(AutoZoom 風格)

  • 自動變焦鏡頭: 要嘛是整個視窗(1×),要嘛是清晰的近景(1.6–2.2×),絕不能使用中間值:1.1–1.5× 的變焦只會裁切視窗,看起來很糟糕。對準重點進行變焦,保持,直接移動到下一個目標,最後回到 1×。移動耗時 60–100 影格;停留至少 50 影格。移動使用 ease: 'smooth'(預設值),只有快速到達時才使用 'snap'。無動態模糊。
  • 游標: 先到達,然後點擊(按下凹陷 + 波紋效果,在 clicks 中的每個影格自動產生),然後結果在 2–6 影格後顯示。打字時,將游標稍微移開,以免遮住文字。
  • 一個節拍的順序: 鏡頭開始移動 → 游標到達 → 點擊 → 狀態改變 → 提示訊息或按鍵顯示 → 字幕傳達意義。
  • 字幕: 如同簡報者會說的內容,每行 3–6 個單詞,每個影片最多兩行。
  • 疊加層(字幕、按鍵顯示、提示訊息、REC 標誌)保持在鏡頭之外:它們不會跟著變焦,也永遠不會遮蓋操作。
  • 克制: 使用一個強調色,不撒彩紙、不旋轉、不彈跳文字。產品本身才是主角。

品質檢查清單

  • 看起來像他們的產品:相同的字型、色彩、文案和資料。
  • story.tsx 開頭有時間軸註解;影格編號集中在一個地方。
  • 每個節拍都透過靜態畫面檢查過;變焦時或疊加層不會裁切或遮蓋重要內容。
  • 游標精確落在目標上;點擊在結果出現之前。
  • 文字在 1080p 下可讀;字幕簡短。
  • debug 已關閉,且渲染無錯誤完成。

相關技能