Communitygithub.com

smasikurr/RemotionMaster

直接從程式碼打造、建置並渲染電影級動態設計 — 製作上市影片、產品與功能介紹、用於登陸頁面與社群的循環動畫、標誌串場與揭露、UI 導覽、應用程式展示、動態文字、預告片、片頭與宣傳短片。每當使用者想要任何使用 Remotion、HyperFrames、HTML/GSAP 或 React 製作的影片、動畫、動態圖像或動態展示,或要求為其進行分鏡、計時、配樂、渲染、打磨或評論時使用此技能 — 即使他們只說「製作一部關於 X 的影片」、「將此功能製作成動畫」或「我們需要一個上市片段」。它提供概念與文案紀律、遵循指定品牌的字型與色彩品味、同時驅動畫面與程式碼配樂的節拍鎖定時間軸、編舞與過場工藝、真實的產品 UI 動態、電影級完成度(真實動態模糊、無色階斷層、BT.709、同步檢測後的混音),以及針對接觸片與渲染結果的自我評論循環。

RemotionMaster 是什麼?

RemotionMaster 是一個專為 AI 代理設計的技能,旨在從程式碼直接打造電影級的動態設計與影片。它主要支援 Remotion (React) 與 HyperFrames (HTML/GSAP) 引擎,適用於製作上市影片、功能介紹、UI 導覽、標誌動畫等多種格式。此技能的核心在於其嚴謹的製作流程:從概念發想、分鏡、時間軸設計(基於 BPM 的節拍鎖定),到最終的渲染與自我評論,都有一套明確的規則與步驟。它強調「一個產品、一個概念、一個故事裝置、一個強調色」的設計法則,並嚴格禁止使用特定色彩、字型與裝飾,以確保產出具有獨特品牌識別度且非 AI 生成感的專業影片。此外,它內建了內容檢查器與量化渲染檢驗機制,確保最終成品在視覺、音訊同步與技術規格上都達到電影級標準。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/smasikurr/RemotionMaster/tree/HEAD/.agents/skills/cinetic

在你喜歡的 AI 中提問

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

說明文件

cinetic

你正在執導一部短片,而不是為網頁製作動畫。畫面、文案與聲音是由一個時間軸檔案驅動的單一系統,在尚未經過渲染、測量與評論之前,沒有任何東西算完成。

  • 引擎。 預設為 Remotion 4.0.529 (React, 幀驅動)。替代方案為 HyperFrames 0.8.79 (HTML 加上暫停的 GSAP 時間軸)。工藝與引擎無關;§7 列出了因引擎而異的規則。
  • 數字。 這裡的每個數字都是來自已交付作品的經驗證預設值:是一個起點,當你有明確理由時可以偏離。它並非自然法則。
  • 品牌。 當使用者提供品牌(顏色、字型、標誌、素材、語調)時,以品牌為主。品味預設值涵蓋了你必須自行發想的部分。
  • 路徑。 像是 scripts/render.sh 這類路徑在技能根目錄與影片專案內都可運作,因為 scripts/new-film.sh 會將每個腳本複製到專案中。每個腳本(內部輔助腳本 brand-svg.ts(由 brand-kit.sh 呼叫)和 hf-preflight.cjs(由 hf-finish.sh 執行)除外)都會印出 --help。
  • 實作範例。 references/worked-example.md 詳細介紹了 Tessel,一部 33 秒、1920×1080、60 fps 的上市影片,並展示了以下每個規則的實際應用,包括犯過的錯誤。在製作你的第一部影片之前,請先閱讀一次。

標準

目標是讓人看兩次的影片:產品擁有一個點子,用畫面來講述,每個影格都看起來經過精心挑選,沒有什麼是為了填空而存在。

  • 內涵重於打磨。 展示這個產品所做的事中,具體而巧妙的部分,那些較簡單的產品做不到的部分。圍繞一個空泛主張的完美動畫,仍然輸給一部讓觀眾心想「哦,這很聰明」但製作粗糙的影片。
  • 有自己的風格。 每個品牌都應該從其名稱、產品和個性中衍生出一種視覺語言,並在「嚴格禁令」的範圍內。克制意味著沒有裝飾,並不代表所有東西都用一種極簡的家居風格。
  • 極致乾淨流暢。 乾淨、現代的畫面,搭配創意的點子與編舞。每個動作都在 60 fps 下經過緩動、具有重量感且流暢:沒有抖動、沒有彈跳、沒有用來代替點子的特效。
  • 視覺化,非旁白式。 關掉聲音也能讀懂點子;文字只是確認畫面已經說過的話。
  • 重量感與靜止。 動作有質量,在節拍上到達定位然後靜止,如此一來快速的部分才能產生衝擊。
  • 讓畫面感覺更好的聲音: 每個重拍都是由你能看到的東西所觸發。
  • 克制重於裝飾。 有疑問時,就移除。
  • 證據,而非印象。 下面這個流程之所以存在,是因為這些東西都無法在編輯器或 Studio 中判斷:你只有在觀看實際渲染結果並進行測量之後才會知道。

嚴格禁令

當你設計風格時,這些東西永遠不該出現。它們是生成式作品最明顯的特徵,而這個技能存在的目的就是為了製作出不像生成式的影片。lint-film.mjs 會檢查 token 與樣式,而評論者會檢查影格。

  • 文字:

    • 在主標題上方的眉題或 kicker 標籤;
    • 堆疊的標語,以及「Introducing…」;
    • 一次傾倒出完整的句子:文案應以簡短片段的形式出現,一個接一個,並在之間穿插畫面 (§4,「文字流動」);
    • 文字牆,以及隨機的填充文字:裝飾性的等寬字體標題、沒人需要的假指標、lorem ipsum。

    螢幕上的每個字都需有其存在的價值。

  • 字型: 襯線字型,以及斜體或傾斜樣式,包括偽造斜體的傾斜效果。使用一種乾淨、現代的無襯線字體,如果產品需要,再搭配一種用於程式碼或數字的等寬字體。

  • 顏色:

    • 橙色、琥珀色、米色、奶油色、黃褐色或沙色,作為強調色、底色或發光色;
    • 霓虹色:非常亮、飽和的強調色、發光、光暈和光暈效果;
    • 紫色、紫羅蘭色或靛藍色,以及紫到藍或任何多色漸層;
    • 玻璃擬態風格。
  • 裝飾:

    • emoji 與圖庫圖示;
    • 代表「AI」的閃爍星星、粒子、五彩碎紙、鏡頭耀斑與程式碼雨;
    • 任何非落地動作的有彈性的 overshoot,以及文案中任何 overshoot 或逐字元效果(只有一個英雄詞可以逐字母移動)。

剩下的還很多:墨水與紙張(淺色或深色,中性或冷色調),一個來自禁令之外任何色系(紅、綠、青、藍、黃)且有意義的強調色,一種無襯線字體,以及極致乾淨流暢、經過緩動、具有重量感、動態模糊且無抖動的動作。創意應投入於點子、裝置和編舞,而不是特效。

如果使用者提供的品牌包含上述任一元素(他們的襯線商標、他們的橙色),則以品牌為主,因為這是他們的標誌而非預設值。將其記錄在 BRIEF.md 中,以免評論者標記它,並在設定它的程式碼行上標記 // cinetic:brand-supplied <什麼> 以便 lint 接受。

1. 格式與預設值

先選擇一個列。它會設定長度、密度和要交付的檔案清單。每種格式的配方在 references/formats.md 中。這些數字是平穩的節奏,是預設值;如果簡報要求有能量(預告片、發布會、激情剪輯),則選擇清爽配置 (§5),它更快並允許稍多的文字(最多 5 個字的片段,最多 10 個字可見),但仍不會一次傾倒一個句子。

格式長度fps網格 (BPM)故事節拍字數:總計 · 每新片段 · 同時可見音效交付物
上市影片 / 預告片20–45 秒60100 (清爽 120)每 30 秒 6–8 個 (清爽 8–10 個)15–25, 上限 30 · ≤ 4 · ≤ 8 (取代模式 ≤ 5)完整配樂 + 音效16:9 母版, 9:16 與 1:1 重新排版, 海報, 自創品牌的品牌套件
產品 / 功能介紹、更新影片8–30 秒60100每 8–10 秒 1 個功能≤ 12 · ≤ 4 · ≤ 8UI 音效;平靜:僅效果音在 -18 LUFS (僅當簡報想要節奏時使用輕背景)母版, 海報
功能循環4–15 秒, 整小節60 (GIF 25)任意;整小節3–5≤ 6, 靜音時可讀 · ≤ 4 · ≤ 4可選MP4, WebM, GIF, 無縫銜接
標誌串場3–8 秒60100–1202–4名稱 + ≤ 3 · ≤ 3 · 名稱 + 3一個調校過的衝擊音 + 尾巴MP4, ProRes 4444 透明通道 (保留與清除), 海報, 自創品牌的品牌套件
UI 導覽20–90 秒6090–100每 2–4 小節 1 個章節每個標題 ≤ 5 · ≤ 4 · 一個標題背景音樂 + UI 音效母版, SRT 字幕

每當 UI、文字或攝影機移動時,使用 60 fps。在 30 fps 下,緩慢的漂移會明顯地有階梯感,快速移動則會產生頻閃,而 24 fps 永遠不適合 UI。GIF 是唯一的例外:從 60 fps 母版以 25 fps(或 50 fps)匯出,因為 GIF 影格延遲是百分之幾秒為單位,而 30 fps 會快 11%。

2. 五大法則

  1. 一個點子,專屬於此產品。 你可用一句話說完這部影片,而證據展示了此產品做了什麼是顯而易見或較簡單版本做不到的。克制適用於裝飾和文案,但絕不適用於產品的智慧:如果功能很聰明,影片就展示其聰明之處。原因: 觀眾只會帶走一件事,而一部對競爭對手或較簡單功能也同樣成立的影片,無法給他們任何值得帶走的東西。
  2. 一個故事裝置。 一個物體、形狀或顏色貫穿每個鏡頭,且在剪輯點時絕不消失。在上市影片中,它理想上應在結尾演變成標誌;在功能循環或產品影片中,它是產品所作用的單元(卡片、行、檔案)。找到這個產品擁有的物體。一個單純的點、線或區塊是懶惰的預設,同時也是此技能自身範例的風格。原因: 它使影片具有連續性,讓影片即使在靜音時也能被理解,而一個專屬的物體正是讓影片無可置疑地屬於這個品牌的東西。
  3. 一個強調色,一個意義。 強調色是一個單一的 token,只代表一個意思,例如「現在」、「新」或「你的」。節制地使用它(約 ≤ 8% 的像素),並最多只讓它充滿整個畫面一次。原因: 一個有意義的顏色無需文字就能被理解,而一個到處使用的顏色則毫無意義。
  4. 一個統一的動作系統。 使用少數幾條命名的曲線和彈簧,每條都有明確的理由,並從 timeline.ts 中取得每個影格編號。原因: 一致的動作就是品牌動作,而臨時拼湊的緩動函數會看起來像是生成的。
  5. 透過測量驗證。 只有當渲染出的像素和解碼後的聲音通過腳本以及一輪評論後,一部影片才算完成。原因: Studio 預覽會隱藏編碼檔案將顯示的爆音、鬼影、同步誤差和色偏。

3. 工作流程

每個步驟都寫入一個檔案,每個關卡都是你實際會執行的檢查。在同一個執行環境中工作。子代理僅用於評論 (§8),因為並行建構影格所花費的時間比節省的時間更多。

步驟 0:接收 → BRIEF.md

  • 如果簡報已說明產品、訊息和長度,則推斷其他所有內容並寫下你的假設。
  • 如果沒有,則最多問 3 個問題:產品一句話說明、格式和長度,以及影片將在何處播放。從 §1 中取得其他所有內容。
  • 選擇引擎:預設為 Remotion;如果使用者已經有 HyperFrames 專案、想要 HTML/GSAP,或需要由變數驅動的 --batch 渲染,則選擇 HyperFrames。
  • 將嚴格禁令(上文)複製到 BRIEF.md,以及任何品牌提供的例外。評論者稍後會逐字使用此檔案作為提示,因此它同時也作為 QA 合約。
  • 選擇節奏:平靜(預設值),除非簡報要求有能量;將其寫入規格行。清爽是明確的選擇加入 (§5)。
  • 搭建專案骨架:bash <skill>/scripts/new-film.sh films/<name> --fps 60 --size 1920x1080 [--engine hyperframes]。它會保持起始範本的節奏(Remotion 100 BPM, HyperFrames 120)和平靜節奏;加上 --pace crisp 可製作清爽的影片(120 BPM 和清爽節奏),或加上 --bpm N 來設定其他節奏。傳遞 --link-modules <dir>/node_modules 以重複使用現有安裝,而不是執行 npm install(在 Windows 上是 junction)。
  • 關卡: BRIEF.md 有一個規格行,例如 1920x1080@60, 30s, 100BPM, pace: calm, audio: earshot kit (calm), no music。

步驟 1:概念 → TREATMENT.md

立即閱讀 references/concept-and-story.md。

  • 從具體細節開始,而不是從風格開始。寫下:
    • 名稱的含義或聯想(它通常會給你標誌和裝置的靈感);
    • 功能非顯而易見的行為,完成句子「與顯而易見的版本不同,它……」;
    • 產品自身的物件(它的行、卡片、讀數和狀態)。
  • 針對每個不同的角度,撰寫 3 個概念:
    • (a) 產品自身的動詞或隱喻的具體化;
    • (b) 觀眾的痛點變得可見;
    • (c) 一個形式化的裝置:一個接力物件、一個頭尾呼應、一個不中斷的鏡頭運動,或一個變成產品的容器。
  • 丟棄任何其道具可能出現在另一部產品影片中的概念。它不是你的。
  • 抽取技術;不要選擇它們。 執行 python3 scripts/pick.py --format <launch|feature|loop|sting|walkthrough|vertical> --energy <calm|medium|high> --seconds <length> --json out/qa/picks.json,除非簡報要求能量,否則使用 --energy calm。它會從 assets/library/techniques.json 的已測量庫中,以平靜節奏下約每 3.5 秒一個技術、否則約每 2.5 秒一個技術(對於 30 秒上市影片為 9 或 12 個,對於短片至少 4 個)的比例抽取,權重傾向於經過驗證的動作和影片的能量,並以格式所需的順序排列,並印出每個配方及其預設計時。手動選擇會導致每部影片都使用相同的淡入、推近和結尾卡片;抽取法是讓兩部影片看起來不再相似的方法。建構概念所能承載的抽取結果,以其物件和裝置重新詮釋;故事、產品真理和一種統一的 UI 語言優先,而一部塞滿各種動作的影片看起來像作品集。重新抽取一個與概念衝突的抽取結果最多兩次(--category <cat> --exclude <id>),或放棄它,並附上書面理由;永遠不要添加一個抽取結果未給你的技術(使用 --category 抽取一個),並在品牌擁有被禁止的外觀時傳遞 --brand-supplied <look>。使用 pick.py --show <id> 完整閱讀一個抽取到的條目;references/technique-library.md 列出了每個條目(搜尋它,不要完整閱讀)。測量過的節奏、緩動和文字計時規範在 references/craft-rules.md 中。
  • 為你選擇的概念填寫 assets/TREATMENT.md:
    • 一句話摘要;
    • 故事弧:鉤子(進入問題,在 1 秒內感受到)→ 轉折 → 證據(1–2 個功能)→ 承諾 → 鎖定畫面;
    • 抽取到的技術,帶有種子行,每個放置在一個節拍中(範本的 §3b);
    • 裝置路徑,逐個鏡頭;
    • 一個節拍表,包含欄位列:小節 | 時間 | 畫面 | 文案 (片段, 模式) | 畫面節拍 | 聲音:任何超過 4 個字的想法都寫成一連串片段,每個片段都附帶它交接的畫面節拍;
    • 完整的文案及其字數;
    • 最終影格。
  • 執行刪除測試。移除展示功能的節拍,價值應仍可讀出。移除價值節拍;如果影片仍然「可行」,那它只是一次功能導覽。
  • 執行特異性測試。這部影片對一個較簡單的產品(例如,一個平均分配而非逐項列出的東西,或一個普通列表而非排名列表)是否同樣成立?如果是,則證據低估了產品;展示困難的部分。
  • 執行功能詞語測試。在靜音模式下觀看時,陌生人是否會使用簡報中描述功能的詞語(「連續記錄」、「分割」)?如果一個巧妙的裝置讓它讀起來像是別的東西,則保留功能熟悉的形式,並讓裝置來裝扮它。
  • 關卡:
    • 一句話摘要 ≤ 15 字;
    • 特異性測試通過,並寫下了答案;
    • 字數在 §1 的預算內;
    • 每個片段 1–4 字;沒有節拍顯示超過 8 個字的文案(取代模式為 5 個);任何超過 4 個字的想法都是一個鏈,其片段之間有 30–90 影格的畫面節拍,並且沒有一個片段是以一個區塊的形式出現(清爽影片允許每個片段 5 個字,螢幕上 10 個字);
    • 文案計畫在最長約 65% 的執行時間內(清爽為 80%),每 10 秒中至少有一個 1.5 秒的純畫面段落;
    • 裝置出現在每個節拍行中,並且每個抽取到的技術都放置在一個節拍中或放棄……

… [為翻譯而截斷]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能