產品動態影片(60 秒)
0. 輸入(只詢問缺少的部分,一則訊息,最多 3 個問題)
- 主題:產品/點子(必要)
- 品牌:網址或 markdown 檔案(選擇性)→ 擷取名稱、標語、3 個優點、顏色、語氣。最多一次
web_fetch。 - 風格參考:選擇性;推測 3 個特質(節奏、類型、色調),一行內完成。不做深入研究。
如果使用者未填寫
{placeholders},則視為空白,並用一行說明假設,然後直接建構。
1. 規劃(<=15 行思考,不要寫成文章)
色調(背景、墨水、1 個強調色、1 個次要色),1 個顯示字體 + 1 個內文字體(系統/Google Fonts 並附帶後備字型),8 個場景。
預設 60 秒結構(秒數):
- 0-5 鉤子:動態文字排版,一個大膽的主張
- 5-13 問題:故障/緊張感,計數器
- 13-21 揭露:標誌/產品以變形方式進入
- 21-31 功能 1-3:UI 卡片、圖示彈出、交錯顯示
- 31-41 證明:動畫圖表/數字計數動畫
- 41-49 流程/運作方式:線條繪製路徑 + 節點
- 49-56 蒙太奇:快速切換,0.4 秒節拍,跑馬燈文字
- 56-60 行動呼籲:標誌、標語、網址、脈衝效果
2. 建構(一個 .html 檔案,純 JavaScript,零依賴,<=18KB)
架構,保持輕量:
- 1920x1080 舞台,透過 CSS transform 縮放至適應;所有顏色設為 CSS 變數。
- 主時間軸:
scenes=[{t0,t1,build(stage), update(p)}],p在 0..1 之間,由單一 rAF 時鐘t=(now-start)/1000驅動。無setTimeout鏈。 - 輔助函式(一次編寫,重複使用):
ease(p)(三次/指數/反彈)、lerp、clamp、stagger(i,n,p)、type(el,text,p)。 - 動作詞彙(使用 >=6 種):動態文字排版、遮罩揭露、
stroke-dashoffset線條繪製、計數動畫、視差圖層、交錯卡片、形狀變形(透過 lerp 產生的 SVG path d 屬性)、故障效果(clip-path切片)、跑馬燈、鏡頭推近(對舞台做 scale+translate)、場景間的螢幕擦除效果。 - 規則:場景轉場重疊 0.4 秒;每個元素都使用緩動函式(永不線性);最多同時 2 個視覺焦點;重要文字停留 >=1.2 秒;僅對 transform 與 opacity 做動畫。
- 控制項:播放/暫停(空白鍵)、進度條拖曳、重新開始、
?t=秒數跳轉參數、window.seek(t)供匯出使用。 - 尊重
prefers-reduced-motion:不自動播放閃爍的故障場景。 - 可選音效:WebAudio 合成場景切換提示音(預設關閉,有靜音切換)。不使用外部音訊。
3. 交付
- 使用 Artifact 工具(發佈)發佈為頁面;若無 Artifact 工具,則在
/mnt/user-data/outputs建立檔案並使用present_files。 - 回覆:2 句話(這是什麼、假設事項)。不做逐場景解說。
4. MP4 匯出(僅當使用者要求時)
Playwright 無頭模式:對 f in 0..1799 呼叫 seek(f/30),截取 1920x1080 畫面 -> 幀;ffmpeg -framerate 30 -i f_%04d.png -c:v libx264 -pix_fmt yuv420p out.mp4。若缺少 ffmpeg/playwright,則告知使用者並提供此配方,不再重試。
5. Token 紀律
- 除非要求,否則不閱讀其他技能、不預覽渲染、不進行潤色。
- 跨場景重複使用相同的卡片/排版佈局;變化動作,而非標記。
- 在一個工具呼叫內寫入檔案。修訂時使用小型
str_replace編輯,絕不重寫。 - 研究次數上限為 1 次
fetch+ 1 次search。