Communitygithub.com

Bang Motion — 動態圖形網頁,不是 PPT

在瀏覽器中打造電影級動態圖形(宣傳影片、開場、介紹、片頭、動態文字排版、16:9 或 9:16 插畫解說影片),使用 HTML + CSS + GSAP(必要時加上 Three.js),產出效果如真實影片般流暢,而非幻燈片簡報。

Bang Motion — 動態圖形網頁,不是 PPT 是什麼?

此技能專為 AI 程式碼代理(如 Claude Code, Cursor, Codex 等)設計,以創建非幻燈片風格的電影級網頁動態圖形。它提供一套嚴格的規則與配方,確保最終產出物是真正的動態影片,而非帶有淡入淡出效果的 `section` 幻燈片。技能涵蓋多種常見需求:宣傳開場、頻道片頭、動態文字排版、解說影片等,每個項目都有對應的起手式(starter)。關鍵規定包括:禁止使用系統時間(確保時間軸可預測)、風格需源自產品主題而非起手式範本、每個場景最多一個主要物件,且場景切換必須透過世界或鏡頭運動實現。此技能也提供無伺服器依賴的解決方案:最終交付物僅需瀏覽器與 CDN(GSAP, 字型)即可播放,`ffmpeg`、Python 或 Node 均為選用工具。若缺少 `ffmpeg`,仍可透過瀏覽器型工具完成語音同步與時序對齊;MP4 匯出需手動螢幕錄製或簡易 Node 安裝。技能包含詳盡的「反 PPT」檢查清單,可自動檢測過渡與場景結構,確保最終作品符合電影級品質。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TaherZiad/montage-crew/tree/HEAD/skills/montage-crew/references/external/bang-motion

在你喜歡的 AI 中提問

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

說明文件

Bang Motion — 動態圖形網頁,不是 PPT 是做什麼的?

v1.19.0 · 作者:Bang Tutorial · MIT。 變更請見 CHANGELOG.md;安裝方式請見 README.md。

此技能適用於任何 AI 程式碼代理(格式為開放式代理技能)。 內容為創作像影片而非幻燈片般流暢的動態圖形的法則與配方——請在撰寫程式碼前確實遵守。

前置要求——僅需瀏覽器

最終交付物 (index.html) 只需現代瀏覽器 + 網路連線即可載入 CDN(GSAP, 字型)。Python 和 Node 為選用,僅用於開發工具: scripts/serve.py(無快取伺服器,僅在使用本地模組時需要), puppeteer(自動快照/驗證,scripts/export-frames.mjs → MP4)。 若使用者沒有這兩者:(1) 仍建構單一檔案,雙擊即可開啟; (2) 透過 ?debug=1(時間軸拖曳面板)進行視覺驗證,並手動在關鍵時間點截圖; (3) 透過螢幕錄製(OBS / 瀏覽器分頁錄製)產出 MP4—— 請說明螢幕錄製可能掉幀,而逐幀渲染需要 Node。 絕對不要產生需要 npm install 才能觀看的交付物。

ffmpeg 也為選用。 請先檢查 (ffmpeg -version);若無 ffmpeg:

需求有 ffmpeg無 ffmpeg
語音同步(句子/段落邊界)silencedetectscripts/vo-pauses.html — 於瀏覽器中開啟,選取音檔,複製 SEG/PARA;結果完全相同(使用 Web Audio,無需安裝)
音檔時長/格式ffprobevo-pauses.html 中的 DUR 數值;瀏覽器可直接播放 wav/mp3/m4a/ogg
匯出 MP4合併 export-frames.mjs 產生的 PNG無法產出 MP4——建議以單一指令安裝 (winget install Gyan.FFmpeg / brew install ffmpeg) 或進行螢幕錄製
分析參考影片(提取畫格)fps= + tile=要求使用者在關鍵時間點提供截圖,或在瀏覽器中開啟影片並於特定時間點截圖

即使沒有 ffmpeg,解說影片的工作流程仍可完整進行,直到語音同步階段;僅 MP4 匯出需要安裝。

播放器——無,自動播放,循環播放

預設交付物:螢幕上無任何面板或播放器,開啟即自動播放,並在播放完畢後自動重播(onComplete → play(0);若有聲音,音訊將一同重播)。隱藏控制:R 重播,空白鍵暫停。時間軸拖曳面板/時鐘僅在網址加上 ?debug=1 時顯示(供審查用),而 ?clean=1 會暫停自動播放以供匯出。若有聲音?直接嘗試 play();若被瀏覽器封鎖,則停留在第 0 幀,並在第一次點擊時開始播放——不要顯示「點擊開始」等文字。此機制已內建於兩個起手式中。

結構禁令——可機械檢查的 PPT 偵測

其他模型(以及疲憊時的你)即使讀過以下規則,仍會落入此模式。在交付前,請檢查程式碼,而非憑感覺:

  1. grep -c "class=\"scene\"\|<section" index.html —— 若有 ≥ 3 個場景是透過 autoAlpha/opacity 來切換顯示的 <section> → 那就是幻燈片。場景切換應基於世界/鏡頭移動(鏡頭移動、甩到另一個角落、穿越、背景變換),而非透過淡入淡出切換區段。合法例外:舞台式卡通 (references/kartun-panggung.md) 可在舞台間使用裁切/平移 96 像素——這是允許的,因為每個舞台都是活的(≥ 10 個正在運作的物體),而非靜止圖片的淡入淡出。

  2. 需有持續的視覺主線:一個進行連續動作的主角,或一個被鏡頭探索的拼貼/紙張/白色世界(卡通、照片、目錄、素描)。全版照片不斷切換而無共享世界 → PPT。每個場景一圖一句→仍然是幻燈片,即使鏡頭在移動:每個場景應有 3–5 個元素,並隨著旁白的短語逐步呈現 (explainer.md "一個場景 = 3–5 個元素")。

  3. 計算每個場景的文字層級:眉毛標題/關鍵字 + 主標題 + 內文/字幕 = 3 層 → PPT。上限為兩層:一個大字(數字或句子)+ 一個世界標籤。文件、印章、日期區塊等含 ≤ 3 行短文的物件,視為物件而非文字層級。

  4. 僅有 Ken Burns 效果(照片 scale 1.0→1.05)作為唯一動態 → PPT。每秒的動態必須來自 techniques.md §7c 選單中選定的背景動態語言(紋理背景上的呼吸鏡頭、流動的漸層、漂浮的色塊、動態顆粒、分段的光影掃掠、緩慢旋轉的大型形狀、上升粒子、呼吸網格、漂移的幽靈文字、Ken Burns + 視差……)。橫向移動的條/線/片段("車道"、"範圍"、"條紋"、水平粒子雨)已在連續兩個不同名稱的項目中使用——這不是預設選項;僅當主題確實為速度/流動時才使用,且不可連續兩個項目皆使用。

  5. 所有切換僅使用淡入淡出 + 縮放凸起 + 漏光 → 範本式 PPT。請使用甩到另一個角落、切換到儀器(地圖/速度表/側面輪廓)、穿越效果。

  6. 解說影片應從對應風格的起手式開始:starter-explainer-kartun、-jurnalisme、-katalog、-sketsa(拼貼模式:鏡頭探索靜態素材)、starter-explainer(連續動作:世界是流動的)、或 starter-explainer-panggung(舞台式卡通:每個場景一個舞台,關節骨架,鏡頭僅在舞台內移動)。請不要使用 assets/starter-opener.html(文字開場),也不要從零開始。

  7. 微縮模型就是幻燈片。 鏡頭縮放 < 1.08,導致房子如拇指般大小,空白地面佔據半個螢幕 → 即使所有東西都在動,仍是 PPT。世界被分割成畫框大小的舞台,而非一個可供探索的大地圖 (kartun-panggung.md 法則 1)。

  8. 範本式框架(開場/宣傳影片)。 檢查流程與程式碼:第一個場景是放大的文字然後向左移出;三個並排的功能卡/瓷磚;輸入框/搜尋列打字效果;順序為鉤子 → 功能 → 功能 → 承諾 → Logo → 呼籲行動。連續兩個或以上項目使用此模式而無特定概念需求 → 即使換了外皮,仍是範本。請從 references/opener-konsep.md 重新選擇框架。

只要違反以上任一項,請在展示給使用者前重新設計。

涵蓋的工作類型

此技能涵蓋一般的網頁動態圖形。解說影片只是其中一種類型——因其結構不同而有獨立文件,並非它是主要類型。

起手式依類別命名:starter-opener.html 用於開場、宣傳影片、片頭、介紹、動態文字排版;starter-explainer-*.html 用於解說影片,後綴代表模式/風格(-kartun、-jurnalisme、-katalog、-sketsa = 拼貼;無後綴 = 連續動作;-panggung = 舞台式卡通)。舞台式卡通是解說影片的一種模式(風格 6),非獨立類別:其目標仍是以旁白進行解說,僅製作方式不同。

類型常見時長特徵參考文件
開場 / 產品宣傳影片25–40 秒從選單中選擇一個概念(框架源自產品,非固定順序)、一個獨特時刻、品牌結尾references/opener-konsep.md + 下方工作流程 + references/techniques.md
片頭 / 識別 / Logo 動畫3–8 秒Logo 建構、一個標誌性動態、在觀眾意識到前結束techniques.md (Logo 建構、漏光)
頻道介紹 / 結尾5–12 秒頻道名稱 + 每一集相同的標誌性動態下方工作流程
動態文字排版 / 歌詞15–60 秒文字是主角;以單詞/字母為單位拆分;節奏跟隨音訊techniques.md (拆分 + 方向性模糊、3D 文字旋轉)
標題 / 下三分之一 / 區段片頭2–6 秒疊加在影片上的小元素,進出乾淨,背景透明techniques.md
解說影片 / 插畫解說30–90 秒有來源的事實、實體出現、視角切換、五種風格references/explainer.md + 各風格的起手式

解說影片與角色:在決定鏡頭前請先閱讀

對於具有角色的平面教育卡通解說影片(第六種風格,舞台式卡通),或是感覺像幻燈片/微縮模型的修改,請閱讀 references/kartun-panggung.md:每個場景一個舞台,縮放 1.08–1.95,在舞台內連續運動,舞台間使用裁切/平移 96 像素,使用手動變換的關節骨架,無說明文字,明亮平面色板。區分句子、視覺節拍、取景、舞台轉換。若要直接在 After Effects 中建構,請閱讀 references/ae-bridge-higgsfield.md。這些解說影片的指南將釐清下方的開場規則;範例字型、場景數量及效果並非通用配方。

法則 #1 — 這是影片,非幻燈片

最常見的通病:模型將場景像幻燈片一樣排列——標題 + 副標 + 內文 + 一排徽章。這一看就是「PPT」,將被拒絕。

嚴格規則:

  • 對於開場:每個場景一個短句 + 最多一個主要物體。 沒有眉毛標題("01 — 功能")、副標題、說明段落、功能晶片/徽章、或技術後設資料(套件名稱、長網址)。正在使用的產品 UI 中的晶片、按鈕和標籤不在此限。
  • 新資訊 = 新的視覺回應。 在解說影片中,若仍相關聯,請在同一個世界中改變狀態/動作;換句子不一定要換鏡頭。
  • 列表項目改以視覺呈現,非自動三個瓷磚。 從 references/opener-konsep.md 的功能選單中選擇方式(示範一個功能、文字變換、物體變形、卡片洗牌、網格瓷磚排列……);連續兩個開場不可使用相同方式。
  • 場景必須是活的。 當物體承載動作時,鏡頭可以保持靜止。移動鏡頭是為了跟隨或揭示某物;不要依賴文字在靜態背景上淡入/滑入,或在所有區段重複使用平移/縮放。
  • "放大縮小" = 鏡頭尺寸,非鏡頭呼吸。 若影片感覺靜態或用戶要求縮放,鏡頭應靠近正在說故事的元素(中特寫 / 特寫),然後根據內容節奏退回到廣角;幾個百分點的呼吸幾乎無法察覺 (techniques.md §3b)。

在設計場景前,請先閱讀 references/anti-ppt.md——其中包含實際違規案例及其修正方式。

法則 #2 — 確定性,否則報廢

不得有任何一行程式碼讀取系統時鐘。所有視覺效果都是 tl.time()(GSAP 時間軸時間)的純函數:頻譜、數字變化、粒子、鏡頭抖動(高頻正弦波,非 Math.random())、"流動"的物體位置(基於距離的補間,非逐幀累積速度)。結果:時間軸拖曳精準如 After Effects,且逐幀渲染至 MP4 每次都會產生相同的畫面。

法則 #3 — 風格源自主題,非起手式,非參考

常見失敗:不同產品的開場卻長得跟之前產品的開場一模一樣——深色、藍色點綴、光暈、星雲、相同字型——這是因為模型從起手式擷取了風格。即使動畫做得再好,還是失敗:開場是產品的臉,兩個產品不該有同一張臉。

  1. 先制定風格簡報,後寫程式碼。 在觸碰起手式之前,先寫下這幾點並連同場景流程展示給使用者:
    • 主題/產品 + 三個想傳達的情緒形容詞;
    • 概念與結構指紋(開場/宣傳影片):從 references/opener-konsep.md 選出三個概念候選項,根據產品理由選定一個,然後提供 概念 · 場景數量 · 每個場景的主要物體 · 開場 · 結尾;
    • 調色盤:一個來自品牌/主題的主色(Logo、應用程式圖示、網站、包裝)、一個背景色、一個點綴色——需提供 hex 碼及每個顏色的來源;非來自品牌的顏色應註明「衍生色:理由」;
    • 符合該情緒的顯示字型(非 Poppins/Inter/Roboto/Montserrat/Arial)+ 搭配字型;例外:概念主張 → 方式 → 結果中使用產品 UI 字型本身 (references/opener-konsep.md);
    • 文字強調:無單詞強調,或一種強調方式(請說明)——單詞強調為選擇性,非每個開場的預設;
    • 各區段的背景語言:全部使用「風格方向」表中的一個方向,或制定切換計劃(哪個區段切換、換成什麼、原因、觸發條件);
    • 標誌性動態:一種重複使用作為識別的動態類型(物件擦拭、3D 字詞旋轉、飛紙、描繪線條、色塊撞擊邊緣……);
    • 背景動態:從 techniques.md §7c 選單中選擇一種語言——它與標誌性動態不同,也非預設的「橫向飛過物體」;
    • 背景表面:從 §7d 選單中選擇(漸層/光線/紋理/顆粒漸層,≥ 2 層)——非純色;
    • 物件渲染風格:從 techniques.md §7e 選單中選擇一個系列(平面、黏土、光滑、玻璃、等角、寫實、霓虹線條……);
    • 照片素材(若概念使用人物/地點/產品的照片):來源——使用者的照片、透過 MCP Higgsfield 生成、或授權圖庫——必須詢問使用者,並提供每個章節的鏡頭列表 (references/opener-konsep.md "開場中的照片");
    • 轉場:決定哪些邊界需要效果,哪些只需直接裁切;根據情境從 §4c 選單中選擇,非強制兩種或需要 3D;
    • 一個獨特時刻(使用最昂貴效果的地方,僅一次)。
  2. 起手式是架構,非風格。 assets/starter-opener.html 中的灰色、系統字型和 WebGL 背景是佔位符。若最終結果仍看到其中任何一項,代表風格尚未套用。WebGL 背景(星雲、灰塵、網格、光暈)只是八種背景語言之一;若風格方向不同,請關閉它。
  3. 參考 = 節奏,非外皮。 從參考影片中提取:每個鏡頭的時長、轉場類型、注意力層級、能量、動態語言。禁止提取:調色盤、字型、紋理、佈局、裝飾形狀、句子、場景順序、獨特時刻(特有的開場/結尾、一次性噱頭)。「做成像這樣」的意思是「有這樣強的能量」,而

…

[內容因長度限制而截斷]

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

TaherZiad/montage-crew

Cut silences and dead weight (fillers, repeated takes, false starts) out of a talking-head video BEFORE building the edit - call the measured /auto-trim API instead of hand-rolling ffmpeg, review the dead-weight candidates it returns, and do the one job only a human/AI can do (spotting repeated POINTS). Read this when the brief enables "Tự động cắt ngắn video" (autoCut) or the user complains that the video still has dead weight/silences.

TaherZiad/montage-crew

Agent 2 of the video editing pipeline. Finds and removes spoken mistakes — stutters, repeated words, false starts, and retakes (re-recorded lines) — from a talking-head recording. Use after cut-silences, when asked to cut mistakes, remove stutters / repeats / filler restarts, clean up flubs, or keep the best take. Works review-gated: it proposes every cut with context and a reason for approval, then renders only the approved cuts via ffmpeg. Requires a word-level transcript.

TaherZiad/montage-crew

Arabic short-video editor (any dialect). Edits talking-head videos and screen recordings, or builds an MG-led video from an idea with no footage - retakes and silences cut, Arabic RTL captions and hook, premium motion graphics, SFX, music, -14 LUFS master, cover - for 9:16, 16:9 or both. Delivers the MP4 plus a project for Resolve, Premiere, After Effects, CapCut or Final Cut. Asks a few questions on first use, keeps the user's brand kit, offers style cards, learns styles from videos, links and MG sites the user shows it, and learns the user's rules after each video. Use when the user asks to edit a video («منتجلي هذا الفيديو», «سوّي مونتاج», «أضف ترجمة», «قص الصمت», «بستايل …», "edit my video"), make a video from an idea («ما عندي فيديو، عندي فكرة», «فكرة فيديو عن…»), learn a style («تعلّم من هذا الفيديو», «هذا الموشن يعجبني»), save a brand («احفظ هويتي», «اقترح لي هوية») or change settings («غيّر إعداداتي»).

相關技能