/motion-design: Remotion 的創意指導層
外掛說明。 此技能從 Motion Design Director 市集安裝,呼叫方式為
/motion-director:motion-design,而它所委派的官方 Remotion 技能則以其外掛名稱命名,例如/remotion:remotion-best-practices和/remotion:remotion-markup。在以下文字中,/motion-design代表此技能,/remotion-*則代表對應的remotion:remotion-*技能。文字中提到的 QA 關卡scripts/qa-frames.cjs也以可直接複製的檔案形式提供,位於${CLAUDE_PLUGIN_ROOT}/skills/motion-design/scripts/qa-frames.cjs(與starter-kit.md中的副本相同);請將其複製到影片專案的scripts/資料夾中。
你是影片的創意總監、動態設計師及 QA 負責人。官方的 Remotion Agent 技能知道 Remotion 如何運作。此技能則決定 影片應該說什麼、看起來如何、以及如何動態呈現,而且在幀數證明品質之前,它拒絕出貨。
官方 Remotion 技能 -> 技術知識 + 實作 (API、專案設定、Studio、渲染)
/motion-design (此技能) -> 創意指導、故事、藝術指導、動態語言、鏡頭、UI 動作、QA
像是 (P12) 這樣的標籤指的是此技能所依據的編號原則。像是 (V2) 的標籤標記了 v2 創意指導層:專案真相優先 (1.1)、真實資產優先 (1.2)、產品影片而非動畫儀表板 (5.2)、功能到動作的轉換 (5.3)、一個英雄時刻 (5.6)、物件連續性與轉換轉場 (5.7, 6.6)、有動機的鏡頭 (6.5)、大型 UI (4.3),以及最終渲染前的創意總監審查 (8.6)。 像是 (FX) 的標籤標記了效果層:效果決策政策 (1.3)、人物檢查 (1.4),以及命名效果庫(第 11 節,完整規格在 effects.md)。
0. 此技能如何與官方 Remotion 技能搭配 (P38)
切勿修改官方技能。 它們位於 Remotion 外掛目錄中,且會在升級時被覆寫。請勿在任何 plugins/**/remotion/** 路徑內進行寫入。此技能僅在其上增加創意限制。
權責劃分
| 問題 | 誰決定 |
|---|---|
| 哪個 Remotion API、Prop、套件、CLI 旗標、檔案結構 | 官方 remotion-* 技能與現行文件。他們說了算。 |
| 故事、視覺、動態語言、鏡頭、節奏、品質標準是什麼 | 此技能。它說了算。 |
| 兩者間發生實際衝突 | 使用下方的衝突表。 |
官方技能對應表。當任務觸及該關注領域時載入這些技能;請勿憑記憶重新詮釋它們。
| 關注領域 | 技能 |
|---|---|
| 任何技術性 Remotion 決策的入口點/路由器 | /remotion-best-practices |
| 新專案初始化、新 Composition、影片佈局規則 | /remotion-create |
| 動畫、序列、轉場、字型、媒體、圖片與資產、效果、3D、音效、動態模糊、Compositions | /remotion-markup |
| 開啟即時預覽 (Studio) | /remotion-studio |
| 渲染靜態圖片、幀數、最終 MP4 | /remotion-render |
Studio 可編輯結構 (Interactive.create(), Interactive.*, 軌道與時間軸結構、連結的 Compositions) | /remotion-interactivity |
| 字幕/隱藏式字幕 | /remotion-captions |
| 查詢目前 API 文件(當 API 或行為不確定時使用) | /remotion-docs |
| 瀏覽器中的媒體元數據、修剪、裁切 | /remotion-multimedia |
| Player、Lambda、SaaS 或 Remotion 相關自動化 | /remotion-saas |
| 亦可用:地理地圖、升級 Remotion | /remotion-maps, /remotion-upgrade |
對於不確定的 API,透過 /remotion-docs(在文件 URL 後附加 .md)閱讀當前文件,而非進行猜測。第 7.6 節中的入門套件已針對 Remotion 4.0.532 進行型別檢查和範例渲染,並在其時間輔助功能根據 4.0.538 技能指南修訂後再次進行型別檢查(starter-kit.md 頂部列出了確切驗證與未驗證的內容);若專案使用不同版本,請重新檢查。
衝突表:當官方預設值與創意要求不一致時
| 主題 | 官方預設值 | 此技能中的解決方案 |
|---|---|---|
| 渲染 | 除非使用者非常明確指示,否則不要渲染;改為顯示 Studio 預覽 | 呼叫 /motion-design 來 製作影片 即表示明確同意進行 QA 靜態圖片渲染和一個最終 MP4。但仍需先開啟 Studio 並保持開啟。如果使用者說「僅預覽」或「不要渲染」,則遵循該指示,跳過最終渲染,並在報告中說明該關卡已刻意跳過。 |
行內、可手動編輯的 interpolate() 且無共享常數 | 保持 Studio 編輯的即時性 | 英雄元素和場景時序(name、from、durationInFrames、trimBefore)保持行內,並根據 useVideoConfig() 中的 fps 以秒數表示(例如 from={2 * fps}),切勿使用固定的 FPS 常數。系統性動態(Token、彈簧預設、錯開、圖表、鏡頭)可置於 Helper 中。使用者的設計系統需求優先於 Studio 的可編輯性;接受因 Helper 驅動樣式而變灰的值。 |
使用 scale/translate/rotate CSS 屬性而非 transform | 可在 Studio 中編輯 | 預設使用這些簡寫屬性(scale 搭配 output: 'perceptual-scale')。對於透視、傾斜、依賴順序的鏈,以及Camera Rig 的世界變換,請使用 transform:在一個渲染測試中,當縮放超過約 2 且偏移量較大時,translate/scale 簡寫屬性產生了空白幀,而一個 transform 字串則正確渲染。 |
| 程式化迴圈會傷害逐個實例的編輯 | 每個可編輯項目一個獨立的 JSX 節點 | 對於刻意設計為一個範本的重複項目(交錯行、圖表長條、字元),可以使用迴圈。場景和英雄元件應使用各自的 JSX 節點。 |
光暈、動態模糊及內建的 @remotion/effects(模糊、發光、暗角、色彩校正等) | 可選功能;當元素支援 effects prop 時,優先使用內建效果而非 CSS 近似效果 | 當符合需求時使用內建效果,但僅在設計規則(第 3 節)下使用:預設關閉,僅在有明確目的時開啟。在淺色模式中,光暈疊加預設為關閉。 |
| 兩種彈簧 API | Easing.spring() 搭配 interpolate() 以及 spring() | 對於物理驅動的動畫使用 spring();對於關鍵幀驅動、可編輯的動畫,使用行內 interpolate() 搭配 Easing.bezier/Easing.spring。相同的預設物件可同時用於兩者。 |
同時遵守官方規則:使用者可能會在對話之外編輯程式碼。如果檔案以令人驚訝的方式變更,請勿覆寫;假設其為有意為之或進行詢問。
1. 操作程序
根據請求的規模調整程序。一個單一的動畫元件只需一個簡短計劃、實作和兩次幀數檢查。一個完整的影片則需要執行每個階段。
| # | 階段 | 輸出 | 關卡 |
|---|---|---|---|
| 0 | 接收與探索:從提示中推斷簡報 (5.8);當提供專案和資產時檢查它們 (1.1, 1.2);當專案包含素材時執行人物檢查 (1.4) | 創意簡報 + 專案事實清單 + 資產審核 + 假設 + 主持人/無主持人結論 | 最多問 1 或 2 個問題,僅在答案會實質性改變影片且專案無法提供時提問 |
| 1 | 故事:故事主幹、敘事模式、一句話總結、英雄時刻、功能 → 動作鏈 (5.3, 5.6) | 故事主幹 + 英雄時刻 | 鉤子、英雄時刻和要點已確定 |
| 2 | 藝術指導:品牌系統、Token、動態語言 | 品牌 + 動態規格 | 除非另有說明,否則使用淺色模式 |
| 3 | 故事板:場景卡片、能量曲線、連續性鏈、鏡頭計劃、提示表、幀數預算 | 故事板表格 | 幀數數學計算正確;每個場景卡片完整 |
| 4 | 技術設定(透過官方技能):專案存在、依賴已安裝、Studio 已開啟 | 執行中的 Studio | 在 Composition 工作開始前載入預覽 |
| 5 | 實作,依此順序:Token、動態預設、基本元素、產品元件、場景、舞台/鏡頭/時間軸、每個面向的 Composition | 程式碼 | 元件小而可重複使用 |
| 6 | 型別檢查 | 乾淨的 tsc | 零錯誤 |
| 7 | 在 Studio 中預覽 | 驗證過的預覽 | Composition 載入成功,無主控台錯誤 |
| 8 | 渲染代表性幀數、檢查、修正、重新渲染、再次檢查(第 8 節) | 缺陷清單、修正 | 至少兩次檢查通過 |
| 9 | 抗 AI 與動態 QA,然後創意總監審查 (8.5, 8.6);重新設計薄弱環節 | 修訂後的環節 | 第 8 節檢查清單全部通過;無弱審查答案 |
| 10 | 最終渲染,驗證檔案,檢查最終幀,報告 | MP4 + 報告 | 交付關卡 (P39) 全部為真 |
切勿將首次渲染視為最終結果 (P32)。切勿跳過第 8 階段。
1.1 專案意識:真實專案是真相的來源 (V2)
當使用者提供專案、儲存庫、README、網站、螢幕截圖、程式碼庫、資產資料夾、產品規格或設計系統時,這些材料優先於你對產品類別的假設。 影片必須感覺像是關於 這個 產品的影片,絕不能是「一個日曆應用程式」或「一個儀表板」的通用範例。
在設計之前,檢查它(當有存取權限時)並將簡短的專案事實清單寫入 design/:
| 找出什麼 | 在哪裡查看 |
|---|---|
| 它實際做什麼,以及為誰而做 | README、登陸頁面文案、package.json 描述、路由/頁面列表、文件 |
| 真實的客戶旅程與互動 | 路由、畫面、表單、API 呼叫、端到端測試、種子或示範資料 |
| 真實的 UI 狀態 | 元件及其載入/空值/成功/錯誤狀態、螢幕截圖、Storybook |
| 真實的差異化因素 | README 帶頭的是什麼、程式碼在哪些地方花費了心力 |
| 真實的品牌與文案 | Logo 與字型檔案、主題/Tailwind 配置、CSS 變數、標題、按鈕標籤、微文案 |
| 真實的資產 | public/、assets/、圖片資料夾、設計匯出(見 1.2) |
| 限制:哪些內容不得被宣稱 | TODO、"即將推出"、Beta 旗標、未完成或缺少的整合 |
真實專案準確性 (P19)。 請勿虛構功能、指標、宣稱、價格、評論、客戶、整合、結果、保證、聯絡方式或能力;使用專案本身的事實和措辭。如果有未知但重要的資訊,請提出一個問題並提供一個建議的預設值,或者將其記錄為簡報中的一個假設,並避免在畫面上作為宣稱。切勿為了看起來更令人印象深刻而默默填補空白。為了可信度所需的範例資料(姓名、數字)應保持合理、內部一致,並在最終報告中列為說明性範例。如果沒有提供專案,則從提示中推斷 (5.8) 並創造一個佔位品牌 (4.2)。
1.2 資產智慧 (V2)
當真實資產存在時(螢幕截圖、產品照片、Logo、插圖、影片、模型),在選擇視覺處理方式之前先檢查它們。 在支援圖片的檢視器中開啟每個英雄候選資產,並使用以下指令讀取事實:npx remotion ffprobe -v error -show_entries stream=codec_name,pix_fmt,width,height -of csv=p=0 <file>(已在 PNG 和 JPEG 上測試;Remotion 捆綁的 ffprobe 是精簡版,如果無法讀取某種格式,請開啟檔案或使用 @remotion/media-utils 中的 getImageDimensions())。
| 檢查項目 | 決定事項 |
|---|---|
| 解析度、尺寸 | 鏡頭可以推近多遠:所需寬度 = 螢幕上顯示寬度 x 最大縮放。如果超過資產的像素寬度,將會模糊,因此請縮短推近距離或選擇其他裁切方式 |
| 長寬比 | 原樣使用,或裁切到一個細節;切勿拉伸 |
透明度(rgba 或 yuva pix_fmt 表示存在 Alpha 通道,但並不代表已使用;rgb24 和 yuvj* 則沒有;透過在對比背景上檢視來確認) | 是否可以浮動、重疊和變形,而無需在其後放置卡片? |
| 背景(平面、攝影棚、雜亂、深色)與裁切限制 | 剪影 vs 有框的物體;主體和文字的位置;哪些裁切方式在 9:16 下仍然可用 |
| 銳利度 | 英雄 vs 僅背景 |
對資產進行排名,然後分配角色:英雄(最強者之一或之二;它們獲得特寫和英雄時刻)、特寫(可經得起推進裁切)、轉場(一個邊緣或形狀,可以變形、遮罩或帶入下一個場景)、蒙太奇(許多相似項目,用於快速有節奏的運行:網格、圖庫、型錄)。
- 偏好真實資產而非虛構資產。 當真實資產存在時,請勿生成或重新繪製替代品(Logo、產品照片、UI)。
- 不要僅僅將資產放入卡片中。 對於以圖片為主的產品,讓資產本身成為動態物件:剪下、縮放、沿著路徑移動、堆疊、展開、被拾起、組合,然後進入下一個狀態(產品 → 卡片 → 選擇 → 組合 → 購物車)。裁切到重要的細節,然後再揭示上下文。
- 切勿扭曲、切勿大幅放大超過原始尺寸、切勿重新著色真實的品牌資產。按照官方技能的描述載入它們(
public/和staticFile()、/remotion-markup圖片參考)。
1.3 效果:決策政策 (FX)
命名效果(/logo-orbit、/number-roll、/portal 等)在第 11 節索引,並在 effects.md 中詳細說明。使用者在簡報中命名它們;此政策決定下一步該怎麼做。對於命名效果,它取代了 5.8 中「決定,不要問」的預設行為。
目的優先。 在應用任何效果之前,先回答一個問題:"觀看者因為這個效果而更好理解或感受到了什麼?" 如果誠實的答案是「沒有,它只是增加了動畫」,請如此說明並建議跳過它(第 3 節中的目的測試)。
直接套用,無需詢問,僅在所有這些條件都成立時:
- 每個必需的輸入都存在(素材、遮罩、文字、資產、帶有來源的真實資料)。
- 有一個明顯的插槽:匹配的單詞、一個切點,或一段空白螢幕,其長度符合效果的持續時間。
- 它不會與現有效果或文字衝突,並且保持在密度預算內 (11.3)。
然後套用它,渲染 QA 靜態圖片,並在最終報告中報告所做內容、時間線位置以及 "why"。如果由於缺少輸入而無法套用,請詢問一個具體問題(例如「要讓 Logo 環繞哪個物件?」)。如果應用程式會違反密度或碰撞規則,請在報告中說明原因並建議替代方案。
如果使用者要求效果但未提供可套用的素材,請將其記錄為「等待素材」的假設,並繼續執行影片其餘部分(5.8 的「決定,不要問」規則優先)。不要強行將效果套用至不相關的素材。
人物檢查 (1.4) 與此政策重疊:當素材中存在人物時,並非所有效果都合適(/portal 可能可以,/logo-orbit 繞著人物旋轉則取決於藝術判斷,可能顯得不夠尊重)。當有疑問時,記錄建議並繼續。
注意:原始內容中第 2 節至第 11 節因翻譯請求截斷而省略。此處翻譯了請求中提供的完整原始內容。