agentvfx
您指導;引擎負責渲染。您永遠不需要為短片撰寫著色器程式碼。您只需選擇一個模板、一個預設和幾個類型化參數,將它們寫入一個 FX 樂譜(JSON),引擎便會在無頭 Chrome(WebGL2)中渲染,使用 ffmpeg 編碼 H.264,並進行閃光審計。
所有指令都從此資料夾(技能根目錄)執行。樂譜內的路徑會相對於當前目錄解析。
1. 檢查機器
node scripts/vfx.mjs doctor
ok: true 表示找到了支援 GPU WebGL2 的 Chrome 和 ffmpeg。否則請閱讀 blockers 並告訴使用者需要安裝什麼(CHROME_PATH、FFMPEG_PATH)。Blender 5.x 僅在需要背景底版時才需要(BLENDER_PATH)。
2. 挑選外觀
node scripts/vfx.mjs list # 系列、模板 ID、輸入類型、預設
node scripts/vfx.mjs list --json # 含說明
input 表示模板需要什麼:generative(不需要輸入)、footage(需要 input.video)或 either。從一個預設開始;每次最多更改兩到三個參數。在發明更多內容之前,先向使用者展示結果。
3. 撰寫樂譜
結構定義:schemas/fx-score.schema.json。最小範例:
{ "version": 1, "template": "lattice", "preset": "vermilion-fine",
"input": { "video": "test-media/clip-01.mp4", "audio": "test-media/beat-132.mp3" },
"durationSec": 4, "seed": 47, "out": "my-lattice" }
durationSec為 3–5。seed使渲染可重複。params可覆蓋預設(名稱和範圍來自模板的fx.json)。bindings將參數綁定到音訊特徵(bass、onset、beat、bands.N等),包含gain、offset、attackMs、releaseMs。將 attack 保持在 onset 幀上,release 保持在較短(約 60 ms):乾脆的反應顯得專業,過度平滑則顯得像 demo。hits在 onset 或 beat 上觸發一個額外模板;cuts在 beat 上硬切堆疊;stack可以在基礎上疊加最多兩個模板。labels和textStyle設定引擎的文字圖層(依名稱使用已安裝字型;字型缺失時使用通用後備字型)。
無需渲染即可檢查:
node scripts/vfx.mjs validate my-score.json
4. 渲染與檢視
node scripts/vfx.mjs render my-score.json --out out/my-lattice --width 640 --height 360
先以小尺寸(640x360)預覽,然後在最終輸出時提高解析度。該指令會輸出包含影片路徑、閃光結果和靜止幀的 JSON。在向任何人描述短片之前,請先打開 stills/sheet.png 和每個 strip。未經檢視的渲染不算完成。
5. 閃光安全
每次渲染都附帶閃光審計(每秒一般閃光和紅色閃光次數,WCAG 2.3.1 風格)。預設模式 stage 保持完整強度,並在超過限制時寫入 SAFETY.txt。"safety": { "mode": "broadcast-safe" } 會強制執行限制;"safeVariant": true 會在全版本旁添加 film.safe.mp4。當短片超過限制時,應清楚告知使用者。
6. 背景底版(可選,Blender)
node scripts/plate.mjs --scene terminalcore --shot gallery --out out/plate --width 640 --height 360 --seconds 4
程序化場景,無需下載素材。使用底版的 film.mp4 作為 input.video。--quality final 速度較慢(每 1080p 幀約需 2 分鐘);開始前請先詢問。詳見 references/plates.md。
7. 無聲循環
node scripts/loop.mjs out/my-lattice/film.mp4 reels/my-lattice.mp4 --preview reels/preview/my-lattice.webp --audit out/my-lattice/loop-flash.json
將短片向前播放然後向後播放(無接縫、無音軌),並對播放兩次的循環進行閃光審計。退出碼 3 表示循環超過閃光限制。反向播放可能會在轉折處使閃光加倍;--hold 6 在每次轉折處暫停六幀,通常能將此類循環帶回限制內。反向播放時,原本的紅色變化變為紅色閃光的情況無法以此方式修復——請如實告知,讓使用者決定。
8. 在網頁上即時使用
node scripts/export-web.mjs lattice collage --out out/web
寫出一個自包含的執行環境、所選模板和一個示範頁面。會遵循 prefers-reduced-motion 設定。詳見 references/web.md。
規則
- 切勿發布或提交您沒有重新散佈權利的音樂。短片的動態可能來自某首曲目,但發布的循環保持靜音。
- 參考資料用於啟發,而非複製。請勿重製他人作品中的任何影格、標誌、商標或字型檔案。
- 請勿捆綁字型檔案。請依名稱使用已安裝字型;字型缺失時會使用後備字型。
更多資訊
references/template-format.md— 模板建構方式(fx.json、pass、預設、文字圖層)。references/plates.md— Blender 背景底版。references/web.md— 網頁執行環境 API。