短片剪輯風格規劃器 是做什麼的?
你必須將旁白轉換為符合節制風格的剪輯,精確到影格數。每個預設來自對真實短片逐格分析的結果,因此請遵循其數值,而非依賴你對「看起來不錯」的直覺。許多發現與直覺相反:「論述觀點」的「動態」類型其實完全沒有動畫,而「快閃教學」的閃爍從未完全變白。
選擇預設
| 快閃教學 | 論述觀點 | |
|---|---|---|
| 適用於 | 教學、VFX 或工具展示,需呈現結果 | 意見或評論,附帶視覺證據 |
| fps | 30 | 24 |
| 約 75 秒內的鏡頭數 | 38(中位數 1.60 秒) | 59(中位數 0.58 秒) |
| 文字 | 一行固定字幕,永不改變 | 單色藥丸標籤或襯線字體堆疊,兩者不同時出現 |
| 主要動態 | 閃爍轉場、微滑動、慢速縮放 | 幾乎沒有。能量來自時機 |
| 轉場 | 11 階梯式色彩閃爍,其餘為硬切 | 硬切,最多兩個 7 影格閃爍 |
| 所需素材 | 談話頭、固定合成鏡頭、螢幕錄影 | 談話頭、可選去背、大量海報或靜態圖、AI 片段 |
| 規格文件 | references/preset-flash-tutorial.md | references/preset-editorial-argument.md |
如果使用者未指定預設,請從此表中推薦一個,並用一句話說明原因。僅讀取所選的預設文件。如果存在 breakdown-*.md 檔案,當預設文件未涵蓋的資訊(如精確座標或完整鏡頭列表範例)需要時,才讀取這些檔案。這些檔案未公開於儲存庫中,因為其中引用了參考創作者的原始用語。
工作流程
1. 收集輸入
- 旁白或腳本。 剪輯由字詞時序驅動,因此如果可以,請取得錄製好的音訊。僅有腳本能提供帶有估計時序(快閃教學為 197 WPM,論述觀點為 224 WPM)的草稿計劃。將該計劃標記為暫定。
- 素材清單。 列出現有素材,並對照預設需求。快閃教學的前 2 秒需要一個真正的結果鏡頭。論述觀點需要大量靜態圖:74 秒的參考短片使用了 36 張全幅海報,並在拼貼中額外使用了 11 張。
- 建置目標。 Remotion 或 After Effects。
2. 取得逐字時序
python3 <skill-dir>/scripts/transcribe_words.py <audio> <outdir>
這需要 mlx-whisper(Apple Silicon)並寫出 words.json。其他腳本需要 numpy 和 pillow,以及 PATH 中的 ffmpeg;最簡單的方式是建立一個包含所有三個套件的虛擬環境。Whisper 會誤聽名稱和術語,並可能在檔案末尾虛構文字,因此請將轉錄稿與腳本對照閱讀並修正,然後再進行規劃。
3. 撰寫剪輯計劃
將 edit-plan.md 儲存為每行一個鏡頭:
時間戳記 | 持續時間 | 螢幕內容 | 文字/字幕 | 動態 | 轉場 | 音效
按此順序進行,因為每一步都依賴前一步:
- 章節: 將腳本映射到預設的章節圖。
- 文字: 使用預設規則,將每個字詞分塊成字幕。每個字幕應在其第一個字詞開始後約 3 個影格時出現。
- 圖片: 使用預設的鏡頭長度和佈局,為每個章節分配一個鏡頭。
- 動態: 放置閃爍、縮放和配方。檢查它們是否與字詞間隙衝突。
- 音效: 從預設的音效表中放置 SFX。
在建立前向使用者展示計劃。 修改計劃成本低,修改渲染則不然。
4. 建置
- 完全複製預設的常數。其中的影格編號相對於事件,因此需根據新的旁白重新調整時間。
- 保持階梯式表格的階梯性。不要將每影格數值的表格平滑化為曲線,因為階梯是風格的一部分。
- 使用預設中的 fps。其影格計數僅在該幀率下有效。
- 讓字幕和藥丸標籤保持在所有縮放或模糊圖層之外。
Remotion: 每個鏡頭一個 <Sequence>,由鏡頭列表驅動。文字是 <Sequence from={onFrame}> 內的一般元素,除非預設指定,否則不使用 interpolate。動態模糊使用 @remotion/motion-blur。每影格表格是索引為 frame - start 的陣列。
After Effects: 除非預設指定,否則文字圖層不使用動畫器。將閃爍表格設定為保持關鍵影格,而非緩動關鍵影格。
5. 對照參考進行檢查
將渲染結果與預設的目標表進行比較:
python3 <skill-dir>/scripts/video_metrics.py <render.mp4> <outdir>
python3 <skill-dir>/scripts/sheet.py <render.mp4> <outdir>/first5s --range 0 4.75 0.25 --cols 7 --rows 3 --thumb 220
將這些輸出畫格與預設中的描述進行比對。檢測器會過度計數:閃爍影格和快速運動會被誤判為切換,因此請用目視檢查 cuts.txt。報告你檢查了哪些項目,如果無法比較某些內容,請說明原因。
誠實原則
- 每個預設來自一個短片。 將其數值視為該短片的選擇,而非創作者整體風格的證明,如果使用者高度依賴這些數據,請說明這一點。
- 保留「(estimate)」和「(not sure)」標籤。 當決策基於不確定的數據時,請在計劃中保留這些標籤。
- 聲音特徵未經聽覺驗證。 位置和時序是測量出來的,但像「boom」和「click」這類詞彙描述的是波形。請要求使用者根據聽覺判斷 SFX 選擇。
- 字體是近似匹配。 快閃教學的字幕字體和論述觀點的羅馬襯線字體未被識別。在決定使用前,請先向使用者展示渲染範例,並檢查字體授權是否允許商業用途。
使用技術,而非內容
使用使用者自己的素材、圖片和聲音來重建風格。請勿重複使用參考創作者的片段、海報、Firefly 畫面或其他資產。論述觀點的開頭使用了另一位創作者的片段,因此請確認使用者有正當理由和權利重複使用該設計。
新增風格
若要分析另一個短片,請先閱讀 references/analyze-reference.md,然後新增 preset-<name>.md 檔案,並在上述表格中新增一行。
檔案
references/preset-flash-tutorial.md,references/preset-editorial-argument.md:建置時使用的規格文件。references/breakdown-dope-motions.md,references/breakdown-ashokreddyai.md(僅本地副本,未發布):完整的證據、逐鏡頭表格、所有轉場、未解決問題。其中提及的路徑(例如ashok/analysis/)是工作檔案,不包含在內。references/analyze-reference.md:如何分析新短片。scripts/:transcribe_words.py,video_metrics.py,audio_events.py,sheet.py,probe_frame.py。