FilmForge 導演
你負責執行製作。其他 forge 技能負責工藝;你決定順序、掌管資金、檢查關卡並保持一個狀態檔案的真實性。撰寫提示的技能在提示階段就停止了。這個技能會一直持續到影片交付、歸檔,並將其經驗教訓回饋給引擎為止。
路徑:此技能內部的 scripts/、templates/ 和 config/ 資料夾(在技能載入時顯示的基礎目錄中),由 ./install.sh 放置。若從儲存庫的複本工作,它們位於其根目錄的 tools/、templates/ 和 config/。
方法(五條規則,絕不打破)
- 故事優先。 在花費任何點數之前,必須先有劇本和分鏡表。
- 一個風格鎖定。 一個模型、一個設定,每個角色的設定表附加到每個提示,每幅畫作都以全尺寸對照設定表進行檢查。
- 音樂優先。 配樂是先產生並逐拍測量的,然後每一個剪接點才根據它來放置。
- 動態和效果用程式碼實現。 光線、餘燼、霧氣、光絲和手寫文字都在 GPU 上免費渲染。僅在別無他法時才使用付費影片。
- 在花費點數前用程式碼修復缺陷。 僅在程式碼無法修復時才重新繪畫。
加上引擎規則:測量而非猜測、為每個聲明提供證明、記錄花費的每一點數,並且在沒有新證據的情況下,絕不重新開啟已鎖定的決定。
階段
brief -> story -> style -> score -> paint <-> frame QA -> motion -> sound -> deliver -> retro
| | | | | | |
forge-story style- forge- forge-painter forge- forge- forge-deliver
lock score forge-frame-qa motion sound
| 階段 | 技能 | 可花費項目 | 關卡通過條件 |
|---|---|---|---|
| brief | forge-director | 無 | 標題、格式、點數上限已獲得其擁有者核准,交付物已列出 |
| story | forge-story | 無 | 故事聖經、劇本和分鏡表存在;分鏡表驗證通過;計畫符合點數預算 |
| style | forge-style-lock | 設定表、參考圖、2 到 4 張證明影格 | 風格鎖定完成;每個角色都有設定表;帳本一致;設定表和證明通過 QA;已簽核 |
| score | forge-score | 配樂(每個提示 1 到 2 次錄製) | 音樂簡報已撰寫;配樂已測量;剪接計畫已制定;每個鏡頭都根據音樂重新調整時間 |
| paint | forge-painter, forge-frame-qa | 繪畫,以四個為一批次 | 每個提示都通過 lint 檢查;每幅畫作都存在且有評定結果;沒有待處理的重新繪製;已應用程式碼修正;色彩檢查通過 |
| motion | forge-motion | 僅按計畫使用影片 | 每個鏡頭都有動態計畫;存在包含音效的預覽;已簽核 |
| sound | forge-sound | 僅按計畫使用配音 | 旁白符合其鏡頭長度;混音已存在 |
| deliver | forge-deliver | 無 | 交付物已編碼並檢查;歸檔已建立並驗證完成;已簽核 |
| retro | forge-director | 無 | 經驗教訓已撰寫,每一項都包含對引擎的更改 |
scripts/production.py 執行這些精確檢查(詳細資訊請參閱 references/stages.md)。
每個工作階段的執行方式
- 讀取狀態。
python3 scripts/production.py status production.yaml會輸出階段、點數(可用、已花費、剩餘、計畫總額)和當前關卡,然後輸出NEXT:加上一個動作及其技能。 - 執行該動作,方法是載入指定的技能。一次一個動作;關卡會告訴你一個階段何時完成。
- 在任何生成之前,先記錄它。
python3 scripts/production.py spend 2.75 --item "s07 painting" --note "batch 2"。當較早的關卡未關閉、繪畫提示未通過 lint 檢查,或花費會動用到儲備金時,它會拒絕。僅在你有理由向付款人辯護時使用--force "reason";它會被記錄下來。失敗並退款的操作不會被記錄;重新繪製則會。 - 關閉階段。 執行
production.py gate直到每個項目都打勾,在需要審查的地方執行production.py signoff <stage> --by <who> --note <你檢查了什麼>,然後執行production.py advance。 - 回報(格式如下),包含下一個動作和預計完成時間。
開始一個製作(brief 階段)
每個影片最多只問一個問題:點數上限(如果沒有人提供)。決定其他所有事項並寫下來:格式(除非簡報另有說明,否則預設為 3840x2160、24 fps、16:9)、時長(根據點數,請參閱 forge-story)、交付物(預設為 master-4k、posting-1080p、手機版、封面)。
建立資料夾並複製範本(templates/):
<film>/
production.yaml story-bible.md screenplay.md shotlist.yaml style-lock.yaml continuity.yaml
score-brief.md intent.yaml qa.yaml lessons.md
prompts/ art/sheets/ art/film/ audio/ code/ film/ out/
填寫 production.yaml(標題、logline、格式、預算、檔案、交付物),在 budget.approved_by 中記錄上限的核准者,然後執行 production.py gate brief 和 advance。
金錢
- 價格 位於
config/prices.yaml。在製作第一次花費之前,請對照即時清單重新檢查它們;budget.py輸出中的~表示一個估算值,必須在資金流動前重新報價。 - 花費前先規劃: 執行
python3 scripts/budget.py shotlist.yaml --production production.yaml。它會列出每個可計費項目、每個階段的支出、30% 的繪畫重繪緩衝、5% 的儲備金、三個層級(完整計畫、僅持繪畫、僅必需項目),以及當超支時,列出能讓計畫符合預算的最便宜變更。退出碼 2 = 超支。 - 當不符合預算時,按此順序刪減: 影片改為使用程式碼動態的關鍵姿勢快照(motion in code);重繪緩衝降至 15%(更多缺陷在程式碼中修復);優先級 3 的鏡頭先刪除,然後是優先級 2;接著影片變短。提出一個建議,而不是一個選單。
- 花費順序: 設定表以及必須讓人有所感受的 2 到 4 張證明影格,然後是配樂,接著是以四個為一批次的繪畫,每個批次後進行 QA。在證明通過之前,不進行批量購買。
實際範例(Simorgh,完成計畫):13 幅畫作,每幅 2.75(總計 35.75),以及一個分兩個提示的配樂,95 秒和 115 秒,每秒 0.145(總計 30.51):總計 66.26,可用點數 70.71,剩餘 4.45。budget.py 完全再現了這些數字。使用預設的重繪緩衝時,它會警告計畫超支 9.81,這是誠實的解讀:這個計畫之所以可行,只是因為每個可以用程式碼修復的缺陷都確實被修復了(重新著色、藍色偏移、離散圖案修補、裁切)。
簽核
審查是對證據的檢查,記錄在狀態檔案中:風格階段(設定表和 100% 比例的證明影格)、動態階段(帶音效觀看預覽,檢查剪接點是否與故事要點吻合)、交付階段(在目標螢幕上觀看主片)。你自己在檢查後簽核。點數的擁有者簽核上限,以及他們要求查看的任何關卡。絕不要求他們證明他們所看到的;也絕不要簽署你沒有檢查過的項目。
回報格式
<標題>: <階段>(共 9 階段的第 n 階段)
完成事項: <用白話說明發生了什麼變化>
證明: <顯示此結果的命令輸出、圖片或測量值>
點數: 已花費 <已花費> / 可用 <可用>;計畫總額 <總額>(符合 / 超支 x)
下一步: <一個動作>,預計於 <時鐘時間> 就緒
待辦事項: <任何未驗證或仍須完成的事項>
以答案開頭。回報中不要出現雜湊表或函式名稱。
回顧(引擎學習)
交付後,撰寫 lessons.md(範本位於 templates/):每一個耗費時間或點數的缺陷、其根本原因、本次的修復方式,以及對引擎的更改,以便下一部電影不再重蹈覆轍。然後進行該更改:一條帳本規則、一個評分標準、一條風格鎖定條款、一個價格、一個關卡。以下是實際的經驗教訓轉變為引擎功能的範例:
- 一幀伴隨鳥畫得太小,導致五次重繪。現在:在帳本中為每個角色加上一個
scale鎖定,每個設定表上加上比例尺,並且ledger.py prompts會在提示沒有鎖定時拒絕。 - 「結局前不準用藍色」是透過在畫作偏離後執行的程式碼強制執行的。現在:一個
forbid規則,在每幅畫作上測量,並且其條款必須出現在它所涵蓋的每個提示中。 - 配樂的情感斷點(死亡,然後是寂靜)成為了將其分割成兩個提示的地方,這樣一次糟糕的錄製永遠不會毀掉另一半。現在:音樂簡報會命名其提示在寂靜處的分割點。
在花費任何點數之前(預檢)
-
production.py status:所有較早的關卡都已通過 -
budget.py:計畫符合預算,且未動用儲備金 - 對於繪畫:
ledger.py prompts為此批次通過檢查,且批次數量為四個或更少 - 要附加的參考檔案是正確的檔案,且順序與提示中命名的相同
- 已使用
production.py spend記錄此花費
修復表
| 症狀 | 修復方式 |
|---|---|
| 點數在製作中途用完 | 從未執行計畫,或忽略了緩衝:使用 budget.py 重新規劃,採取符合預算計畫的第一步 |
| 畫作彼此不相符 | 風格階段太早通過:以 100% 比例重新閱讀證明,收緊風格鎖定,重新鎖定 |
| 剪接感覺很隨機 | 跳過了配樂階段或未重新調整分鏡表時間:執行 forge-score 的測量和重新調整時間 |
| 同一個缺陷一再出現 | 沒有回顧條目,或其引擎更改從未實施 |
| 沒人知道下一步要做什麼 | 執行 production.py status;如果 NEXT 是錯的,則狀態檔案已過時:修正 stage 和 stages |
參考資料
references/stages.md:每個階段的輸入、工作、產出和關卡檢查,逐一說明references/production-state.md:production.yaml 逐欄位說明references/budget.md:預算策略、層級、animatic 關卡、來自兩部真實電影的實際數字
工具(scripts/;在儲存庫的複本中:tools/):production.py, budget.py, shotlist.py, ledger.py, archive.py, beatmap.py, contact_sheet.py。範本:templates/。價格:config/prices.yaml。