HyperFrames 分鏡下游預演適配 は何をしますか?
適配版本 0.4.0。輸入 STORYBOARD_PREVIS_ADAPTER_V1,JSON 狀態校驗 SCOPED_STATE_V2;畫面身份 PREVIS_RENDER_CONTENT_V2。將 script-to-storyboard-prompts 已交付的母稿編譯成可編輯、可審閱的三維預演,原段號、母稿和預算版本不變。Three.js 管場景與動作,HyperFrames 按幀匯出。
開始工作
先讀 references/upstream-adapter.md,定位用戶明確的上游專案、正式段、有效母稿版本與預算版本;讀取實際正文、場分析、人物/場景/道具資產及文字首尾狀態。輸入可為專案檔案或可定位的會話交付,不能要求上游額外生產獨立分鏡設計表。
繼承已確認的畫幅、完整風格、段長上限、實算時長、鏡序、身高公分數、造型版本、空間方向、原台詞、聲音職責及揭示時點,不再詢問已確認項,也不採用舊示範的 16:9/12 秒作為專案預設。未指定渲染解析度與 fps 時可選擇適合該畫幅的偶數尺寸及 24 fps,記錄為預演技術參數;不能因此改預算或加劇情。只有影響本次適配的缺項才集中詢問。
上游七步和正式段覆蓋繼續由上游管理。本適配器讀取權威狀態,在 <專案>/previs/<formal_id>/<prompt_version>/ 寫自己的檔案,不修改上游 next_required、游標、覆蓋、母稿或預算。用戶僅說「繼續」時按上游當前目標執行;只有當前請求包含預演或已明確選擇預演交付時才接入。一個已授權預演請求內,讀取、搭建、檢查、匯出可以連續完成。
支援狀態 1.8/V3 的現有文字交付與 1.9/V4 的 JSON 專案。JSON 使用 scripts/intake_storyboard.py 唯讀提取;自由文字/會話由代理實際讀取並整理,使用 scripts/finalize_manual_intake.py 封存真實證據,不自動遷移或猜解析舊狀態。正常推進其他段不會使目標段自動失效;本段版本、相關資產、首尾與所選原文改變時重新適配。舊版 STATE_JSON intake 缺少範圍校驗資料時明確重提取,不靜默升級。
使用足以檢查構圖、走位、遮擋與時機的最簡幾何體。穩定色標對應上游人物,環境只保留相關空間和地標;需要詳細動作再接有權使用的模型。圖片職責、動作職責和鏡頭職責分開,不承諾簡化預演能強制下游模型逐像素跟隨。
製作與修改
- 接收並映射。 沿用上游
formal_id、prompt_version、budget_version、資產 ID、鏡頭 ID 和時間區間。把「景別、機位」「運鏡及拍攝主體」「構圖」「畫面內容」落實為幾何尺度、相機、注視點和絕對時間取樣;未明確的座標標為執行補足,不重新導演。所有鏡頭與動作時間相對當前正式段 0 秒;一鏡到底的階段不拆成切鏡。 - 搭建統一空間。 使用公制、Y 軸向上,註明朝向。建立場景、穩定角色 ID、道具歸屬、門窗等動態結構。角色外形用明確色標區分;提供幾何尺度,避免僅憑畫面猜比例。
- 製作可確定求值的動畫。 任意幀的姿態、位置、鏡頭和門體狀態必須只由
t決定。不得使用累計位移、未固定亂數或上一幀的狀態驅動匯出。動畫素材用AnimationMixer.setTime(t)或同類絕對取樣。瀏覽器播放計時器只能呼叫同一renderAt(t)。 - 檢查與調整。 逐鏡核對母稿、切點和首尾狀態;使用畫面選擇、時間軸、自由觀察、機位/FOV 和路徑關鍵點編輯。範本僅預覽當前鏡頭軌跡,不改鏡數或預算。確認的鏡頭/走位可顯式加鎖;局部撤銷只回退對應目標最近的保留修改。涉及正式攝影事實、故事、時長、台詞或揭示變化時交回上游返修,不能用範本替換已有導演意圖。見 編輯與畫面反饋。
- 檢查並匯出。 做資料與來源檢查、代理空間抽查、實際逐幀匯出,檢查影片規格、首尾和切點。只對明示
framing.requiredActors檢查入畫,空間警告需看畫面確認,不以程式無警告替代媒體驗收。批註包含實際 PNG、段內時碼、物件 ID、座標和來源;來源變化則標過期,已處理與已驗收分開。 - 返回適配產物。 交付乾淨影片、來源專案、來源映射、原母稿的逐字副本、參考素材附加說明與實際檢查回執。上游母稿或已有模型適配稿繼續作為提示詞來源,不用範本自動生成的簡短提示詞替換它。回執只代表本地預演檢查;最終模型提交與生成能力仍由對應模型適配處理。
可複用起點
assets/starter/ 是執行時期範例,包含審片頁、絕對時間取樣、儲存與匯出。走廊、人物、道具、三鏡和開門事件都是示範內容;接收上游時按實際輸入替換幾何與動作,不能自動沿用這些劇情元素。沒有圖片時可按有效文字檔案使用色標佔位,明確只驗證空間和時序。
node <skill-dir>/scripts/create_project.mjs <project-dir>
python -X utf8 <skill-dir>/scripts/intake_storyboard.py --state <上游狀態JSON> --budget <上游預算JSON> --formal-id FORMAL_1 --out <project-dir>/upstream-intake.json
cd <project-dir>
npm install
npm run prepare-libs
讀取完整母稿後,先把真實資產、鏡頭與動作落實為 scene.json 和場景程式碼,寫 assetBindings、sourceAssetIds 和 adaptationMap。再執行以下綁定與檢查,不能跳過綁定讓工程退回示範分支:
npm run bind-upstream
npm run validate
npm run studio
sourceAssetIds.scenes/props 明確列本段實際使用的資產 ID,無使用項寫 []。角色透過 assetBindings 指定 LOOK/STATE 版本與身高。數值、版本和依賴檢查不替代劇情、台詞與攝影語義核對。
studio.html 審片,index.html 乾淨匯出。點擊人物選物件,空白處選畫面點。單鏡/關鍵點儲存不夾帶其他草稿;衝突明確提示。鎖由伺服端強制,局部撤銷保留100條歷史,外部改動衝突時拒絕覆蓋。捕獲先儲存或撤銷機位草稿,切回正式機位,隱藏選框並對齊到影片幀。
npm run lint
npm run spatial-check
npm run snapshot
npm run render
npm run handoff
npm run feedback
node scripts/bundle.mjs --project . --out <專案外的新交付包目錄>
以上指令在範本的 package.json 中定義。依賴固定為已驗證的 HyperFrames 0.9.10 與 Three.js 0.187.0;新環境可更新,但先查當前官方 API,再重複匯出驗證,不能只改版本號。
欄位見 場景契約,來源/返修見 上游適配,鎖/撤銷/批註/空間檢查見 編輯與畫面反饋。按需讀 渲染執行時期、返回包 和 可移動交付。採納與暫緩的外部設計見 設計依據,無需把外部倉庫當製作前驅。
交付判斷
- 敘事動作可辨認,人物/機位/道具在各鏡頭間有連續依據。對軸線、遮擋和穿模要實際檢查;若有意跨軸,說明用什麼鏡頭建立方向。
- 同一時刻在順序播放、直接跳轉和倒序跳轉後得到相同狀態;至少驗證一次非順序取樣,例如
8 → 2 → 8。 - 原台詞與聲音時間完整保留在映射與回執;未合成聲音、未實現口型或複雜動作時明確寫未檢查項。資產提示詞已交付、圖片存在、圖片已讀取、模型已綁定分別記錄。
- 同一正式段預設獨立匯出;拼場或跨段拼接須有相應請求,另存偏移映射。檔案邊界不自動變成切鏡,不重複前段事件,不延長或捨入預算;非整幀尾料需明確記錄源時鐘與成片時鐘映射。
- 匯出使用儲存後的鏡頭資料。首幀已載入完畢,無黑幀、缺資源、誤入畫面的審片介面或切點殘影。
- 匯出先暫存並檢查再發布;失敗保留舊成功影片。加鎖、寫歷史和批註不改變畫面身份,實質機位/路徑/模型/程式碼變化才使舊畫面證據過期。審片仍需四項關聯一致。批註的 VERIFIED 只表示用戶登記了單獨證據,不代替最終模型媒體驗收。
- 模型生成會重新解釋材質、肢體和細節。將「必須保留的構圖與動作意圖」和「允許自然化的表演與質感」寫清楚,不承諾像素級或骨骼級控制。
- 最終報告寫明實際完成與實際驗證的範圍。未提供角色參考或未執行下游模型時,不將色塊人物描述為角色一致性驗證,也不將預演輸出描述為最終生成成片。