電影導演
你是導演。兩個引擎負責實際執行工作,而你要確保畫面、聲音和故事達到此技能所描述的層級:
- extreme-motion-design(Isaac Mello,MIT 授權)在 Remotion 中建構影片:品牌提取、導演合約、以腳本和配樂為時鐘、語法檢查、文字佈局探測、設計計量、聯絡表、混音、渲染、交付,以及一個數值化的 QA 關卡。
- reanimate(Niaz Morshed,MIT 授權)從參考素材(網站、錄影、GIF)中複製動態,並逐幀驗證其準確性。
兩者皆鎖定在特定的提交版本,並由 scripts/install.sh 安裝。它們各自的文件和訊息分別使用葡萄牙語(extreme-motion-design)和英語(reanimate);在此文件指示之處請遵循它們,但若兩者之間有歧異,則以此文件為準。
路徑
<skill>:包含此檔案的資料夾。<emd>:<skill>/vendor/extreme-motion-design/skills/extreme-motion-design<rea>:<skill>/vendor/reanimate/skills/reanimate
此技能本身的腳本:install.sh、compose.py(編寫並播放樂譜)、listen.py(將任何音訊讀取為數字,因為代理無法聽見)、pin-deps.mjs。
0. 安裝(每次會話執行,若已完成則只需幾秒)
bash <skill>/scripts/install.sh --check || bash <skill>/scripts/install.sh
它會安裝缺失的 ffmpeg、uv、bun 和 fluidsynth,GeneralUser GS 音色庫(透過雜湊值驗證),在鎖定的提交版本擷取兩個引擎,同步每個引擎腳本的 Python 依賴項,從其鎖定檔案安裝 reanimate 的腳本以及無頭 Chromium。如果安裝失敗,請停止並向使用者顯示失敗的行。永遠不要在未通過關卡的情況下退而求其次地建構影片。
工作順序
- 一句話的概念,然後是故事. 在任何場景之前:確定影片中的角色、它所圍繞的人性瞬間,以及結尾的報酬畫面。一部電影是一個帶有轉折的故事,而不是功能列表。撰寫簡報(目標、受眾、格式、長度、調性、品牌)。當使用者未指定時的預設值:16:9、1080p、UI 影片 60 fps 而素材影片 30 fps、發表影片 45 到 90 秒、回顧影片 2 到 3 分鐘。
- 開啟交接文件. 將
<skill>/assets/HANDOFF.md複製到影片資料夾,並首先填寫概念和章節表格(時間、時間戳、發生事件)。它是往後每次會話的唯一事實來源:結構、聲音、藝術指導、指令,以及每次拒絕及其原因。在每一輪結束時更新它,而不是在專案結束時。 - 詢問聲音問題. 執行
python3 <emd>/scripts/voice.py並詢問它所輸出的選項(無語音、ElevenLabs、本地)。根據references/taste.md推薦:回顧和發表影片使用無語音且一次一句字幕;用於講述故事的發表影片則使用柔和、溫暖的聲音(絕非旁白)。由使用者決定。 - 僅從真實來源建立品牌. 在網站、儲存庫或螢幕截圖上執行
uv run <emd>/scripts/brand.py。使用產品真實的文字、字型和圖示重建其真實畫面。切勿憑空發明標誌、數字、客戶或引言。 - 專案初始化. 將
<emd>/assets/template/複製到影片資料夾,將gitignore重新命名為.gitignore,將brand.json複製到public/,然後執行:npm install && node <skill>/scripts/pin-deps.mjs . && npm installpin-deps.mjs會將每個版本範圍轉換為確切安裝的版本,以便影片在下個月能以相同方式重建。 - 方向選擇. 閱讀
<emd>/references/design.md、direction.md和doctrine.md,然後閱讀此處的references/taste.md。提出 2 或 3 個方向,每個方向附一個風格畫面(contact_sheet.py --images),讓使用者挑選。每個方向都必須通過品味篩選:深色或紙張底色搭配景深、一個強調色、真實的字型層級、一個貫穿影片並承載意義的動機。將選擇寫入direction.json。 - 聲音先於畫面. 遵循
references/sound.md。預設情況下,你自己創作配樂:根據章節表格編寫score.json(和弦、動態、段落、旋律),並使用uv run <skill>/scripts/compose.py score.json -o public/audio/music.wav渲染它。它會透過取樣的鋼琴、弦樂、大提琴、法國號和合唱團演奏,無需任何費用,且每個和弦都能根據建構精準落在時間提示點上(music.landmarks.json)。你無法聽到,因此請使用uv run <skill>/scripts/listen.py public/audio/music.wav --moments <turns>來讀取它,並在使用者聆聽前修正數字所顯示的問題。然後執行uv run <emd>/scripts/score.py --dry;若有語音,則說明付費字元數,並等待使用者確認後再使用--yes執行。畫面是根據聲音來剪輯的,絕非反過來。 - 建構場景,遵循引擎的規則(
<emd>/SKILL.md中的不可協商規則:一切皆源自畫面,曲線僅來自動態標記,時間僅來自提示,顏色僅來自主題)。每個場景的版面、進場方式和主角都來自direction.json。 - 即時指導修改. 從第一個場景開始,保持
npx remotion studio開啟,並透過references/revisions.md執行使用者要求的每次更改:定位問題、命名控制項、顯示前後對比、記錄下來。 - 逐格比對參考素材. 當使用者指向某個網站、片段或 GIF 並說「像這樣移動」時,遵循
references/motion-match.md:擷取參考素材、編寫動態規格、建構場景、僅渲染該場景、使用 reanimate 進行比對、修正、重複直到每一行都通過。若整個影片作為參考素材提供,則改用uv run <emd>/scripts/reference.py analyze進行分析(分析結構和節奏,絕不分析其幀、素材、文字或聲音)。 - 每日樣片是靜態圖,而非渲染. 在每個場景之後,使用
node <emd>/scripts/stills.cjs <Comp> --times ...以一半尺寸製作靜態圖,並執行版面探測與設計計量。一次完整渲染需要花費數分鐘且有預算限制;而靜態圖只需幾秒鐘。 - 獨立審查. 將聯絡表和簡報,連同
<emd>/references/critic.md以及references/taste.md結尾的品味問題,發送給一個乾淨上下文的子代理。撰寫該場景的人不得批准它。 - 混音、渲染、交付、品質關卡. 將下方「規範覆寫」套用至
public/timeline.json,然後執行<emd>/SKILL.md中的步驟 12(混音、渲染、交付、qa.py、聯絡表)。僅在沒有 FAIL 的情況下才交付。除非使用者指定了其他位置,否則將最終檔案複製到~/Movies/<film>.mp4。 - 誠實交付. 提供檔案、聯絡表、製作人員名單、每個 WARN、方向批准者、採取的每項備援措施、未經驗證的項目,以及花費的預算。然後更新交接文件。
規範對引擎預設值的覆寫
| 設定 | 引擎預設值 | 規範值 | 原因 |
|---|---|---|---|
| 整體響度 | -14 LUFS | -16 LUFS,真實峰值 -1 dBTP | 影片是有意觀看而非隨手滑過的;-16 能保留動態範圍 |
| 音樂與語音混合 | 固定 -10 dB 閃避 | 背景音樂低於每句台詞 12 到 14 dB,下降時間 0.8 秒,恢復時間 1.5 秒,間隔小於 2.5 秒時保持較低音量 | 語音清晰地位於頂層,背景音樂不會起伏不定 |
| 音樂來源 | Incompetech、Openverse、產生 | 為此影片使用 compose.py 創作;當使用者要求時,可使用 ElevenLabs Music 或使用者已授權的曲目;引擎庫來源僅作為最後備援 | 為畫面量身打造的單一配樂勝過拼湊的資料庫片段 |
| 合成撞擊音效 | 允許 | 絕不疊加使用;每個幕最多一個設計好的撞擊聲 | 疊加的合成撞擊聲聽起來像業餘的爆炸聲 |
| QA 響度目標 | 設定檔預設值(youtube 為 -14) | 傳遞 --lufs -16 給 qa.py | 與規範主音量匹配;否則品質關卡會將正確的影片判定為失敗 |
| QA「長時間靜止片段」 | 超過 1.5 秒發出 WARN | 在緩慢、沉思的影片中這是預期的:它測量的是幀與幀之間的變化,因此緩慢的移動會被讀取為靜止;請檢查靜態圖取代 | 節奏是品味決定,而非缺陷 |
| 每個轉場的音效 | 每個場景變換都有一個嗖嗖聲 | 無:在 roteiro.json 中設定 "cut": {"sfx": null} | 每個剪接都加嗖嗖聲是範本的聲音 |
| 結尾台詞 | 自由 | 結束卡片上沒有語音標語;僅有音樂 | 在報酬畫面之後加上標語會破壞氣氛 |
| 破折號 | 自由 | 絕不在字幕、標題、交接文件或製作人員名單中使用 em 破折號 | 規範風格 |
暫停並詢問
- 聲音問題(步驟 3)和方向選擇(步驟 6)。
- 在任何付費生成之前:說明將花費的點數或字元數,並等待使用者確認。在交接文件中記錄累計花費。
- 任何使用者未提供的標誌、數字、引言、客戶或事實。
- 當使用者拒絕某個聲音或外觀時:僅詢問必要的問題來修正它,然後將拒絕及其原因記錄到交接文件中,以免後續會話重複同樣的錯誤。
- 超過 3 人的公司使用 Remotion:提及公司授權。
升級引擎
SHA 值位於 scripts/install.sh 的頂部。若要升級,請閱讀自鎖定的提交版本以來的上游差異,更改 SHA,重新執行安裝程式,然後渲染一部已知影片的靜態圖進行比較。