Communitygithub.com

Amartileyton/autovideo

持續場景的 Remotion 攝影機系統,強制執行需求輸入、已核准參考審查、反霓虹規則與第一輪品質檢查。

autovideo 是什麼?

此技能提供一個嚴謹的「電影攝影機」系統,專為在 Remotion 中建立連續、共享世界的動畫而設計,而非使用獨立的面板。它強制執行嚴格的品質管制流程,從需求輸入開始,接著進行已核准參考審查,以確保風格一致性。系統明確禁止霓虹、發光、漸層等「氛圍編碼」的 AI 效果,偏好簡約、真實的資產與設計。它包含一個基於關鍵幀的攝影機裝備,具有平移和縮放功能,以及詳細的編排規則,用於引導視線和解釋因果關係。此技能支援 4:3 半螢幕和 9:16 全螢幕 Instagram 格式,並提供一個第一輪拒絕關卡,在呈現渲染結果之前檢查常見的缺陷。最終交付包含嚴格的品質保證步驟,以確保與已核准的視覺系統相符,適合想要避免常見 AI 生成影片陷阱、製作精良、品牌一致的動畫的開發者。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Amartileyton/autovideo/tree/HEAD/.agent/skills/cinematic-camera

在你喜歡的 AI 中提問

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

說明文件

電影攝影機

請與 remotion-best-practices 和 motion-graphics 搭配使用。建立一個相互連接的世界,並在其中移動共享攝影機,而不是在虛空中彈出不相關的面板。

強制需求輸入

在規劃或編寫程式碼之前,請遵循 motion-graphics 的輸入關卡。如果缺少,請詢問:

您想要哪種格式:4:3 半螢幕 Instagram 插入片段還是 9:16 全螢幕 Instagram?以及哪種背景:暖光、乾淨深色、淺色網格或深色網格?

不要默默預設為 9:16 或深色。如果使用者委託選擇,請使用暖光。

絕對視覺禁令

此技能絕不引入霓虹、發光、光暈、發光邊緣、彩色陰影、漸變光球、徑向色彩渲染、青紫漸變、玻璃擬態或賽博龐克燈光。攝影機移動不能將內斂的場景變成氛圍編碼的 AI 展示。產品強調色保持平面且內斂。

強制已核准參考關卡

在規劃或編寫程式碼之前完成:

  1. 檢查與同一專案、產品、長寬比、放置位置或視覺機制相關的最新 3-5 個已核准渲染成果。
  2. 開啟原始構圖,檢查攝影機關鍵影格、時間點、間距、排版、顏色、密度、入場、出場和結尾停留。
  3. 檢查實際片段或代表性影格;僅憑檔案名稱是不夠的。
  4. 盤點真實資產:標誌、吉祥物、螢幕截圖、錄製內容、素材和先前的輸出。
  5. 撰寫一個簡短的節拍圖,說明該片段如何延續已核准的系統。
  6. 如果沒有專案參考,請使用鎖定的備用方案:暖色米白實體/編輯世界、深色墨水、柔和中性色、一個內斂的平面品牌強調色、中性陰影,以及零裝飾效果。

參考優先順序:同一影片 → 同一產品/系列 → 同一長寬比/使用案例 → 其他已核准儲存庫範例 → 鎖定備用方案。

標準圖庫:https://github.com/Liamrjohnston/remotion-motion-graphics-skill

最近的已核准作品是基準,而不是可選的靈感。不要為了新奇而發明新的美學。

核心概念

建立一個比視口更大的世界。以緊湊的方式開始一個正在進行的動作,在其完成時停留,揭示上下文,移動到對比/回報,然後穩定下來。

面板可以存在,但它們必須共享一個世界並具有有意義的空間關係。避免不相關的卡片在空曠的空間中獨立出現。

攝影機裝備

使用一個共享的關鍵影格時間軸來控制焦點和縮放:

const ease = Easing.inOut(Easing.cubic);
const KEY_T = [0, 46, 62, 78, 96, 132, 174, TOTAL_FRAMES];

const fx = interpolate(frame, KEY_T, [/* 焦點 x */], {
  easing: ease,
  extrapolateLeft: 'clamp',
  extrapolateRight: 'clamp',
});
const fy = interpolate(frame, KEY_T, [/* 焦點 y */], {
  easing: ease,
  extrapolateLeft: 'clamp',
  extrapolateRight: 'clamp',
});
const z = interpolate(frame, KEY_T, [/* 縮放 */], {
  easing: ease,
  extrapolateLeft: 'clamp',
  extrapolateRight: 'clamp',
});

<AbsoluteFill style={{backgroundColor: BG}}>
  <div
    style={{
      position: 'absolute',
      transform: `translate(${VIEW_W / 2 - fx}px, ${VIEW_H / 2 - fy}px) scale(${z})`,
      transformOrigin: `${fx}px ${fy}px`,
    }}
  >
    {/* 整個場景使用世界座標 */}
  </div>
</AbsoluteFill>
  • 尺寸來自已確認的格式,絕不使用隱藏預設值。
  • 世界寬度通常是視口寬度的 2-2.5 倍。
  • 重複的相鄰關鍵影格會產生停留。
  • 攝影機移動通常需要 14-24 影格。
  • 以兩個幾乎相同的關鍵影格結尾,以在編輯器中獲得穩定的停留。
  • 攝影機、游標、效果和連接的物件保持在同一個座標系統中。

編排

  1. 以緊湊的畫面開始,聚焦在一個已經在移動的物體上。
  2. 停留,直到主要動作完成。
  3. 揭示其更大的系統。
  4. 移動到對比/回報。
  5. 在支援物件以交錯順序完成時拉遠。
  6. 穩定下來,以便乾淨切出。

規則:

  • 攝影機移動到下一個動作;動作在停留期間完成。
  • 每個節拍一個主要動作。
  • 僅使用微動作來顯示狀態:打字、滴答聲、檢查、播放、進度、游標移動。
  • 偏好連續轉換而非場景替換。
  • 偏好平滑移動而非瘋狂甩動。
  • 動作解釋因果關係;它永遠不能補償一個薄弱的概念。

真實性與文字

  • 使用真實的標誌、素材、螢幕截圖、錄製內容、使用者介面和經過驗證的資料(如果可用)。
  • 絕不用通用的彩色方塊、假標記、虛構的使用者介面或假指標來替代。
  • 允許使用產品名稱、檔案名稱、計數器、命令、進度和真實的使用者介面文字。
  • 不要重複旁白句子或因為影格感覺空曠而添加說明性徽章。

第一輪拒絕關卡

在所有答案皆為「否」之前,請勿顯示渲染成果:

  1. 格式或背景是否未經確認?
  2. 是否有任何霓虹、發光、彩色燈光、漸變渲染、玻璃面板或氛圍編碼的 AI 處理?
  3. 場景是否是一組在虛空中不相關的通用卡片?
  4. 是否在未經使用者選擇或已核准參考要求的情況下使用深色?
  5. 攝影機移動是否只是裝飾而非引導因果關係?
  6. 真實資產在可用時是否缺失?
  7. 基本元素在所選的 Instagram 放置位置是否無法閱讀?
  8. 結果是否無法匹配已核准參考的間距、密度、材質和運動節奏?

私下修改,直到通過此關卡。

品質保證與交付

  1. 為開場、每個攝影機目的地、轉場、回報和結尾停留渲染靜態圖。
  2. 與已核准參考並排比較構圖、密度、識別度、材質內斂性和精緻度。
  3. 驗證真實資產保持可讀。
  4. 驗證停留 → 移動 → 停留,且沒有動作在移動期間被隱藏。
  5. 檢查完整的 MP4 檔案,查找空白移動、裁切、死影格、通用填充、霓虹/發光和薄弱的結尾停留。
  6. 只有在看起來與已核准的視覺系統相同時才交付。

技術限制

  • 使用 useCurrentFrame()、spring() 和 interpolate() 驅動動畫;不使用 CSS 動畫。
  • interpolate() 的輸入範圍必須嚴格遞增。
  • 保持世界規模適中;大型模糊/陰影圖層的成本很高,並且通常違反視覺規則。
  • 對滴答的資料使用等寬數字。

Individual skills in this repo

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

相關技能