OneTake 是製作短篇產品展示影片的 Agent Skill,以單一 HTML 合成、時間函式與動作庫控制畫面,再逐影格渲染成影片。它將段落之間的元素延續、節奏、構圖與聲音納入自動檢查;官方授權僅允許非商業用途。
OneTake 由 Patrick(feitangyuan)公開原始碼,主要處理短篇產品介紹、預告與功能展示。Agent 依工作協定編寫 HTML/Canvas 合成,Python 腳本透過 Chromium 擷取畫面,再交由 FFmpeg 編碼。
Carry 指某個可見元素跨越段落邊界並轉變成下一段畫面的構成,例如輸入框擴展為視窗,或視窗重排成手機介面。分鏡需記錄每次交接保留的元素,並透過 probe 檢查。
時間函式 指任意時間都能直接算出畫面狀態。合成呼叫 window.__seek(t);重複前往同一時間必須得到相同畫面,才能支援逐影格渲染與快門內的多次取樣。
依使用的 Agent 選擇下列安裝位置。這兩條指令直接取自 README;目標目錄若已有安裝,先確認既有內容,再決定更新方式。
node scripts/test_motion.js 檢查動作函式的數值。安裝後以自然語言向 Agent 提供產品畫面、參考片、片長及使用目的。官方流程先提出三種視覺概念供選擇,再製作節拍表與合成。
來源:README 安裝說明、完整相依清單、look.py。
動作庫提供可重複計算的數值,合成檔負責畫面,腳本負責擷取與檢查。以下按實際使用階段分組。
| 目前問題 | 先做的檢查 | 修正位置 |
|---|---|---|
| 段落只是輪流出現 | Probe 交接結果 | 節拍表與延續元素 |
| 放大後文字難讀 | UI 字級與鏡頭尺度 | 介面重建與構圖 |
| 快速位移出現分身 | 快門與取樣設定 | 位移回報及渲染參數 |
| 更換語言後聲畫錯位 | 詞級時間與時間映射 | 同一合成檔的語言資料 |
製作協定要求先決定概念,再選擇動作與視覺。模板可提供程式架構,但其故事、配色與節拍不應自動成為每支影片的預設。
以下是本手冊設計的操作示例,沒有實際生成影片,也不代表已取得商業使用授權。目標為個人筆記 App 的學習展示,素材包含介面截圖、真實範例內容與可使用的參考片。
先請 Agent 提出三種概念。此處假設讀者選定「文字插入點延伸為筆記卡片,卡片展開為列表,最後收攏成圖示」,再為這個概念編寫 0、2、2.5、6、9、13.5 秒開始的六個節拍;時間是示例設定,須隨成片調整。
以下命令在 OneTake 專案根目錄執行。先建立範例目錄;接著由 Agent 依選定概念編寫合成,補齊素材及聲音,不直接把模板的原故事當成新影片。
此處假設合成檔、ref.mp4 與對應時間軸的 cases/my-film/sfx.wav 已完成。腳本不會自動替你補出這些輸入。
本手冊核對於 2026-09-27,依據 原始碼 36072d3。README、SKILL 與渲染參考文件的部分數量及預設描述不同;本文未列動作總數,CLI 參數行為以當次腳本為準。