用故事板做 coding 影片
條件參考
- 只有當用戶實際輸入
/goal來啟動或恢復一個目標時,才完整讀取references/goal-director.md並按其中的導演約束執行。 - 普通鏡頭製作、修改、預覽、渲染,以及僅僅討論
/goal時,不讀取該文件,也不得為了「更穩妥」而提前載入。
先規劃,未確認前不寫程式碼
- 看完
.media/storyboard/的全部幀,按「同一主體連續存在或形變」分組。 - 在
STORYBOARD.md寫分組、鏡頭依賴和素材清單;素材必須標明畫面顯示尺寸。 - 對內部連續形變的鏡頭,在
RENDER_STRATEGY.md比較可行方案並鎖定實現方式 →references/render-strategy.md。 - 把分組表和素材清單給用戶看,等待確認。
timeline.json 是鏡號、起止時間和總時長的唯一規劃來源;不要在多個 Markdown 檔案重複維護時間表。
製作主幹
- 同組鏡頭先建立一套共享主體渲染器、CameraRig、資產載入器和場景狀態;鏡頭檔案只保留狀態與時間參數。
- 先靜態復現故事板關鍵幀,合成一張簡潔接觸表給用戶驗收;端點未通過,不做插值和緩動。
- 靜態通過後製作動畫,只交付可拖動預覽並等待驗收。
- 後續鏡頭從上一鏡通過的尾幀繼續演化:延續、變形、新增或消失,不重畫或覆蓋已存在主體 →
references/scene-continuity.md。 - 所有鏡頭通過後接入唯一總時間線,檢查接縫、總時長和一次完整播放;用戶確認後再渲染成片。
已通過的鏡頭、主體和素材均為鎖定項。若問題來自尺寸、位置、裁切、攝影機或特效,只改對應參數;除非用戶明確否定素材本身,不得重新生成素材。
按依賴並行,不按鏡號排隊
- 同一主體的連續形變或必須繼承上一鏡尾幀的部分,按依賴順序製作。
- 獨立場景、背景、透明素材和不依賴前鏡構圖的完整鏡頭可並行製作。
- 共享母場景介面穩定後,不同鏡頭的狀態、覆蓋層和內部動畫可並行。
- 並行分支只能寫自己的目錄,不改總時間線、共享母場景原始檔和已通過鏡頭;輸出只需接觸表或預覽。
- 後鏡若只依賴入場銜接,可先完成主體場景與動畫,最後再接上一鏡尾幀參數。
最短路徑與提示詞約束
- 每個執行提示詞只圍繞用戶當前要看的一個交付物展開,寫清允許寫入範圍、最少步驟、明確停止點和本輪不做事項;不要把階段預覽擴張成最終驗收。
- 用戶要「預覽」時,默認路徑只有:完成必要編輯或掛載 → 確認頁面可載入 → 啟動 Studio → 返回連結。不得先用
check、批量快照、接觸表、逐幀接縫表、雜湊或完整播放阻塞預覽。 - 臨時組合、部分鏡頭串聯和除錯入口都不是總片整合。只負責讓用戶看到連續畫面;逐接縫驗收、總時長複核和完整播放留到所有鏡頭通過後的唯一最終整合階段。
- 驗證必須能直接回答當前的具體問題。沒有報錯或明確視覺問題時,不得追加診斷腳本、版本探測、回歸矩陣、反向 seek、重複截圖或「以防萬一」的檢查。
- 同一會話不要並行或串行堆疊多個瀏覽器、Studio、
check、snapshot、render程序。一次只運行當前交付所必需的一個前台程序;已有可用結果時立即交付。 - 非渲染驗證若數分鐘沒有新輸出或明顯超出正常耗時,立即停止並檢查最直接的阻塞點;不得無反饋等待幾十分鐘,也不得原樣重跑或繼續追加驗證。
- 給執行會話的提示詞默認使用「做完即停」:達到用戶當前要求後返回結果,不自行進入下一階段,不因技術檢查通過而繼續擴展工作。
表示與運動規則
- 複雜靜態道具用高品質透明貼圖;結構幾何和規則圖形用 Canvas/SVG;粒子、碎片、煙霧和光點用 Canvas。
- 連續增長、侵佔和包裹必須分開幾何層、紋理層、動畫層。擴張的是幾何,不是紋理像素。
- 單張二維貼圖不能生成原圖沒有的頂面、側面和遮擋;需要真透視時改用多角度素材或 3D,並先說明近似邊界。
- 攝影機後移、場景拉遠和物體縮小不是一回事 →
references/camera-motion.md。 - 同一位置或排版問題連續三輪仍未校準,再做最小 tune 面板 →
references/tune-panel.md。
素材與確定性
- 源圖邊長不超過畫面顯示尺寸的 2 倍;優先 WebP q85;單場景圖片不超過 3MB →
references/asset-budget.md。 - 渲染時零網路:不使用 CDN 腳本或線上字型。
- 自有程式碼不得使用
Math.random、Date.now或輪詢;首次繪製前執行await img.decode()。
入口與狀態
/index.html:唯一總時間線和最終渲染入口,始終從 0 秒初始化。/compositions/NN-name.html:分組或單鏡除錯入口,必須可獨立初始化。- 總時間線必須是真組合,不用 iframe 或頁面切換拼接。
HANDOFF.md只儲存當前有效狀態、鎖定項、當前檔案、短句式否決項和下一步;保持精簡,不儲存過程記錄、長提示詞或歷史報告。
最小驗收與交付
- 靜態階段:一張故事板關鍵幀接觸表 + 「等待驗收」。
- 動畫階段:一個可拖動預覽 + 「等待驗收」。
- 臨時串聯預覽:頁面可載入 + Studio 連結;不生成接觸表,不逐幀核對接縫,不運行正式
check。 - 修正階段:修正後的幀或預覽 + 一句話說明。
- 最終階段:總預覽或影片 + 時長和輸出路徑。
- 日常檢查只確認頁面可載入、素材可見、關鍵幀正確;正式
check僅在動畫定稿、最終整合或具體運行問題需要時運行一次。不要重複 lint、check、批量快照或逐幀回歸。
默認不得生成審計腳本、驗證 JSON、清單、交付說明、身份/Mesh/粒子報告、逐幀雜湊、像素差異、重複渲染、反向拖動驗證或多版本接觸表。出現具體問題時,只檢查相關程式碼、錯誤或一張問題幀,修復後展示結果;只有用戶明確要求,才生成正式診斷報告。