Finance Video Script
代理(你)負責撰寫腳本。腳本 scripts/vengine_cli.py 負責建立節拍框架、接收逐節拍的場景,並根據風格指南執行檢查。
涵蓋範圍
- 包含:創作簡報(含視覺
style選擇)→ 節拍表 → 逐節拍腳本(scenes.json)→ 檢查 → 視覺頁面映射(map-pages)→ 匯出(naskah.md、prompts.json、naskah.srt)→ 生成 全螢幕 AI 圖像資產(generate-images)→ 渲染完整的電影級 MP4 影片,附帶印尼語 TTS(render)。 - 不包含:自動上傳到平台。
準備事項
- Python 3.10+ 並執行
pip install pydantic pyyaml pillow edge-tts imageio-ffmpeg,或透過uv run執行(自動處理依賴)。 <skill-dir>= 存放此SKILL.md的資料夾。所有指令:python <skill-dir>/scripts/vengine_cli.py <指令> ...(在 Windows 上可使用py取代python)。- 請在使用者的工作目錄中執行,而非在技能資料夾內。專案儲存在
./video-projects/<slug>/中(可使用--home DIR或VENGINE_HOME環境變數更改)。
工作流程
- 收集創作簡報。 詢問不清楚的部分:主題、格式(A = 故事、B = 步驟指南、S = 30–60 秒短格式)、時長、視覺
style(預設:claymation、flat-vector、3d-pixar、anime-ghibli、cinematic-realistic、watercolor、comic-book、dark-moody,或自訂描述)、目標觀眾、關鍵數字,以及僅對格式 A 的角色(主角、對比角色、配角)。也詢問留言/訂閱呼籲以及可提及的金融工具。不要憑空捏造關鍵數字;數字必須來自使用者,或由你撰寫公式計算得出。 - 在撰寫任何內容之前,先閱讀
references/panduan-naskah.md。 那是風格、技巧以及數字/宣稱規則的權威來源。 - 建立專案。 執行
init <slug> --topic "..." --format A|B|S --minutes N --style <style>,與使用者一起填寫brief.yaml,然後執行build <slug>(建立故事聖經和節拍表)。 - 逐節拍撰寫(重複直到所有節拍完成):
- 執行
beat <slug>顯示下一個節拍的任務:簡報、角色、前三個場景、內容要點、目標字數/場景以及標籤要求。 - 將場景 JSON 寫入
video-projects/<slug>/draft/<beat>.json。為每個場景填入英文的image_prompt(因為所有場景都以全螢幕渲染)。 - 執行
add <slug> --beat <id> --file video-projects/<slug>/draft/<id>.json。 - 如果有錯誤,節拍不會被儲存。根據錯誤訊息修正 JSON 後再次執行
add。如果節拍在儲存後需要重寫,加上--replace。除非使用者要求,否則不要使用--force。
- 執行
- 檢查。 執行
status <slug>查看進度,lint <slug>進行完整檢查。錯誤必須為零才能將腳本標記為最終版;警告則需與使用者一起閱讀並決定處理方式。 - 映射視覺頁面。 執行
map-pages <slug>以自動按照references/design-video.md目錄映射page_type和props。 - 匯出。 執行
export <slug>產生:video-projects/<slug>/out/naskah.md(按幕編排的規範腳本)video-projects/<slug>/out/prompts.json(準備生成的所有場景全螢幕插圖提示,包含角色與風格)video-projects/<slug>/out/naskah.srt(附時間戳的字幕)
- 生成全螢幕 AI 圖像資產。 執行
generate-images <slug>(可加--style <style>、--scene <編號>以重新生成單一場景,或--force覆蓋所有)來下載全螢幕 AI 圖像(Pollinations Flux)到video-projects/<slug>/out/images/scene_XXX.png。 - 渲染 MP4 影片(可選/按需求)。 執行
render <slug>(可加--voice id-ID-ArdiNeural或id-ID-GadisNeural,以及--fps 12用於claymation風格的定格動畫)來組合全螢幕背景圖片(含定格動畫/Ken Burns 效果、暈影、數字/重點句的玻璃形態疊加層、以及卡拉 OK 字幕)、印尼語語音旁白,產生video-projects/<slug>/out/video.mp4。
場景 JSON 格式
{"scenes": [
{"narration": "策略一:錢必須在一開始就分開。",
"tags": ["SECTION"], "image_prompt": "clean modern workspace with warm morning sunlight beams", "characters": [], "mood": "warm", "notes": ""},
{"narration": "如果你每天存兩萬印尼盾,一個月就能累積六十萬印尼盾。",
"tags": ["CALC"], "image_prompt": "neatly stacked glass savings jars with glowing coins on wooden desk",
"motion_prompt": "Stop-motion claymation, slow subtle push-in camera, soft ambient light flicker", "characters": [], "mood": "neutral",
"notes": "20.000 x 30 = 600.000"}
]}
narration:準備好朗讀,15–35 個字。PUNCH和SECTION場景最多 14 個字且應獨立成句。tags:PUNCH、BRIDGE、SECTION、CTA、NUMBER、CALC。每個節拍的標籤要求來自beat的任務。image_prompt:英文,圖中不應包含文字或數字;建議每個場景都填寫,以確保全螢幕背景符合上下文(若為null,引擎會自動合成背景提示)。end_image_prompt(可選):英文,用於場景有物件/光線變化轉場時的結束幀(例如按下燈開關從暗到亮;使用相同種子生成)。motion_prompt(可選):每個場景的動態指令(例如zoom_flicker、bobbing、switch_light用於定格黏土動畫)。characters:故事聖經中的角色 ID(例如主角),而非名稱。mood:tense、neutral、warm、uplift、melancholy。notes:對於CALC/NUMBER場景,必須包含公式A x B = C;同時寫明宣稱的來源。
不可違反的規則
- 原創撰寫。不得複製或改寫參考影片或轉錄稿;僅可使用其結構和技巧。
- 所有數字必須重新計算。通往目標數字的時間線必須明確且誠實。
- 不得使用無來源的統計數據(「90% 的人...」),不得承諾結果。金融工具僅作為範例,且必須附帶免責聲明。
- 虛構內容(格式 A)必須標示為「故事插圖」。
- 不要手動修改
beats.json或scenes.json;請使用add指令,以確保驗證和場景重新編號正常運作。
問題排除
模組 'pydantic' 未安裝→ 執行pip install pydantic pyyaml或使用uv run。專案 ... 未找到→ 檢查工作目錄;專案位於執行指令的資料夾下的./video-projects/,或--home指定的位置。- 檢查
mirip_referensi→ 將參考轉錄稿作為.txt檔案放在./references/中(或使用--refs DIR);用你自己的話改寫被報告的部分。 - 檢查
total_kata→ 在偏離目標過多的節拍中增加或減少場景(參考status),然後執行add --replace。