Communitygithub.com

Angles

製作寧靜、如攝影般質感的產品影片(慢速運鏡、近距離與傾斜角度、真實螢幕效果、柔和對焦),從螢幕錄影或截圖開始,透過 Angles 工作室在本地端渲染。適用於展示影片、產品宣傳、發布剪輯與「Mockup 影片」。

Angles 是什麼?

Angles 是一個本機命令列工具,能將螢幕錄影或截圖轉化為專業級產品影片,專注於營造冷靜、如攝影棚般的視覺風格。使用者只需撰寫一個 JSON 規格檔,然後執行單一命令(check 或 make),即可快速預覽或產生最終 MP4 影片,無需手動開啟編輯器。其核心優勢在於透過「check」命令一次比較多個變體(不同運鏡、等級、背景等),產生包含所有變體縮圖的 sheet 圖片,使用者從中選出最佳方案後再執行「make」渲染最終影片,避免反覆渲染浪費時間。支援多種運鏡風格(如 close、raking、float)、移動強度(still 至 bold)、背景、陰影、聚焦點、疊加文字或按鍵提示等參數,並可透過 beats 在同一影片中串接多種風格。Angles 支援 macOS 與 Linux,依賴 Chrome、ffmpeg、Node.js 18+ 與 Python 3(需 numpy 與 pillow),並在本地啟動一個 HTTP 服務(預設連接埠 8790)來處理渲染工作。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HansEngebretsen/angles/tree/main

在你喜歡的 AI 中提問

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

說明文件

Angles 是做什麼的?

撰寫一個小型的 JSON 規格檔,執行一個命令,然後讀回一行 JSON 輸出。不要打開或編輯工作室;規格檔足以涵蓋所有可製作的內容,並會拒絕任何它無法製作的東西。

node <this folder>/angles.mjs check spec.json   # ~5秒,不產生影片:一張 sheet,每個變體一排 4 格畫面
node <this folder>/angles.mjs make spec.json    # 產生 mp4(寬度 1920,每秒影片約需 4 秒運算)以及一張 sheet
  1. 先檢查再製作。 把你正在考慮的選項放進 variants。一次 check 會將它們全部顯示為有標籤的列,在一張小圖片上。查看這張 sheet,挑選一列,然後將該列的欄位合併進規格檔(並移除 variants),再執行一次 make。不要為了比較外觀而多次渲染影片。
  2. 只看 sheet,不要看 mp4。 讀取它印出的 sheet 路徑。這就足夠判斷構圖、角度和對焦了。
  3. 當 ok: false 時,只修正 warnings 提到的項目。 它們會列出有效的選擇。執行 node angles.mjs schema 會印出所有可用的選項。不要隨意猜測。
{ "source": "~/Desktop/demo.mov", "out": "~/Desktop/angles", "trim": { "in": 2, "out": 8 },
  "look": "bright", "background": "mist", "shadow": "soft",
  "variants": [{ "style": "close", "level": "gentle" }, { "style": "raking" }, { "style": "float" }] }
欄位值
source錄影檔(.mov .mp4 .webm)或截圖(.png .jpg)。錄影檔會先被拆分成幀並快取(--fresh 會強制重新處理)。
styleclose、raking(近距離真實角度);float、angle、flyby、focus、push、reveal、rise、tiltshift
levelstill、whisper(預設)、gentle、lively、bold。每個都是一個速度預算,運鏡會縮小以符合它。speed ≤ budget 會感覺平緩。
trim、loop、aspect{ "in": s, "out": s };true 會將結尾淡出到開頭;16:9(預設)、1:1、9:16、任何 W:H
beats在同一個片段中串接多種風格:[{ "at": 0, "style": "float" }, { "at": 4, "style": "close" }]
look、lookAmountbright、crisp grain、glossy、sunlit、pixel macro、cool studio、film print、none;0–1
background、shadowmist linen sky sage blush dusk 或 #hex;none soft close float
focus{ "at": s, "u": 0–1, "v": 0–1, "size": 30 }。省略 u/v 會自動對焦在畫面變化的區域。
overlays[{ "at": 1, "dur": 1.5, "keys": ["⌘", "K"] }] 或 { "text": "…" }:在鏡頭上方的徽章
ease、dir、travelsteady soft settle constant;left right;0–2(預設 .8)

品味:微妙取勝(使用 whisper 或 gentle),每個片段一個想法(一種風格,或兩三個 beats),剪輯長度 3–8 秒,結束在動作點。

需要 Chrome、ffmpeg、Node.js 18+ 以及安裝了 numpy 和 pillow 的 python3;在此目錄下執行 npm i 一次即可。它會在本機連接埠 8790 啟動服務(設定 ANGLES_PORT 可更改連接埠)。

相關技能