infofilm:資訊圖表解說影片 是做什麼的?
使用本技能製作的影片,是一副在深藍色桌面上展開的教學卡片。每張卡片都有標題帶、圖片視窗和說明帶。AI 插圖在視窗中播放,而程式繪製的資訊圖表會在說出它們名稱的那個字時,精準地覆蓋在插圖上。新聞片旁白傳達意義,吉祥物則以默劇方式演繹,從不開口說話。歌唱廣告插曲和結尾歌謠賦予影片節奏。
每個數字、標題和標籤都是根據事實庫以程式碼繪製。圖片從不包含文字。
template/ 中的範本是一個完整、可運作的影片:一個關於閏年的 1 分鐘示範。先搭建骨架,再逐步用你的影片內容取代示範。每個步驟都會渲染影片:缺少元件的場景會顯示其卡片,缺少旁白的場景會使用估計時間。這樣你總能在花錢之前看到整體效果。
基本規則(凌駕於便利性之上)
- 花錢:先問。 ElevenLabs、圖片生成和 Suno 下載都需要花費真實貨幣或配額。在每次付費批次前,說明內容、數量及估計成本;
--dry-run會印出這些資訊。等待同意。同意僅涵蓋該批次,除非使用者已給予常態性授權(「你已獲得圖片、語音和音樂的授權」)。在notes/log.md中記錄所有授權和成本。 - 絕不猜測事實。
- 每個論述和數字都來自
notes/research.md,後者引用了主要來源。每個螢幕上的數字都來自video/src/data.ts,後者引用了研究章節。 - 時事必須透過主要來源驗證。如果無法驗證,則不放入影片,或讓該場景等待;請參閱 references/script.md 中的「等待的場景」。
- 每個論述和數字都來自
- 文字和數字以程式碼繪製,絕不交給圖片模型。 圖片提示禁止文字,且每張圖片都會被檢查。
- 使用者聆聽,Whisper 不聽。 絕不透過轉錄生成的語音來檢查它;Whisper 聽到的錯誤比實際存在的還多。提供使用者一個聆聽頁面。
- 公正的諷刺。 諷刺針對的是系統、機器和奇觀,絕不針對任何政黨、團體或個人。在大小、顏色邏輯和動畫上平等對待各方。圖片中不出現真實人物或商標。
- 處處使用正確的變音符號(å ä ö é ü …),包括在給子代理的提示中。明確告知每個子代理。
- 按字面意思解讀使用者的話。「反烏托邦」、「復古」或「輻射風格」是氛圍,不是道具清單。當一個風格詞可能有多種含義時,先展示提案並在據此建構前獲得確認(參閱 references/style.md)。
流程
按順序執行這些階段。⛔ 步驟是關卡:停下來讓使用者決定後再繼續。
0 · 啟動
- 確認主題、觀眾、語言、長度(預設約 12 分鐘)和目的。檢查環境中的
ELEVENLABS_API_KEY和OPENROUTER_API_KEY、安裝了 claude-in-chrome 擴充功能的 Chrome、Suno 登入狀態,以及node、pnpm/npm、ffmpeg和帶有numpy和elevenlabs的python3。 - 建立骨架:
這會複製範本、安裝 Remotion、合成音效、建立初始時間線並進行型別檢查。<skill>/scripts/new_film.sh <dir> --slug my-film --title "My Film" --lang sv --locale sv-SE - 將決定記錄在
notes/log.md中,包含日期和決策者。 - 渲染需要空間。檢查
df -h,當系統磁碟可用空間小於約 20 GB 時,將OUTDIR指向一個大磁碟。
1 · 研究 → notes/research.md
- 撰寫編號章節(
## 2.3 · 閾值),每個章節一個事實或一組事實,每個事實附上其主要來源:立法、官方統計、主管機關自己的頁面。 - 標記任何不確定的事項。對於近期事件,記錄事實有效的日期。
- 參閱 references/script.md。
2 · 風格與選角 ⛔
- 重複使用內建風格(奶油色、深藍色和金色墨水;1957 年復古未來主義;Bowlby One SC + Jost + Lobster)或提出替代方案。以 3-7 種風格渲染同一個小型資訊圖表,以便使用者進行同類比較。
- 選定吉祥物:一個沉默的普通人,有一個標誌性手勢(內建吉祥物會抬起帽子)。避免使用著名吉祥物的手勢,例如眨眼搭配豎起大拇指。
- 先生成參考肖像(
kind: "ref"),然後生成模型表,並在製作任何場景圖片之前獲得批准。 - ⛔ 使用者選擇風格、吉祥物、手勢和字型。詳情:references/style.md 和 references/images.md。
3 · 腳本 → script/script.md ⛔
- 結構:開場主題曲、2-4 個段落、段落間的廣告插曲、以及結尾歌謠。每個場景是一張持續 15-40 秒的卡片。
- 字數預算為分鐘數 × 約每分鐘 127 字(新聞片旁白速度)。
- 旁白中拼出數字;卡片則顯示確切數字。
- 避免使用「星期一」這類依賴日期的詞彙。影片的生命週期超過一週。
- 在任何人付費之前進行審查。 讓一個獨立的子代理根據主要來源檢查腳本和研究報告,將其發現分類為 MUST、SHOULD 和 COULD。修復所有評為 MUST 的問題。審查曾發現研究本身中的錯誤。
- ⛔ 使用者批准腳本。格式與技巧:references/script.md。
4 · 旁白 ⛔
- 使用
voice/design_voice.py preview <tag>設計 3 種風格(先詢問),讓使用者選擇一種。使用create儲存。 - 對 2 個代表性場景進行測試朗讀,讓使用者確認語速和發音。
- 朗讀所有內容:
python3 voice/narrate.py --dry-run,然後詢問,再執行。
稍後編輯某個場景時,僅會對該場景再次收費。詳情與陷阱:references/voice.md。
5 · 音樂(Suno,官方網頁介面,透過 Chrome)
你需要這些提示音:
- 一個約 20 秒的開場主題曲,在語音模式下作為冷面密集和聲效果極佳
- 每個段落一個器樂背景音樂,循環播放並在語音下方降低音量
- 每個廣告插曲一首歌唱廣告歌
- 一首結尾歌謠,通常是主題曲的翻唱版。
提示時使用美國 1950 年代的慣用語;像「schlager」這類類型詞會將音樂帶往其他方向。使用者喜歡 Suno 的試聽版本,除非他們已經將選擇權交給了你。透過 Suno 自己的選單下載 WAV,提取用於剪輯點的對齊歌詞,並撰寫 music/cuts.json 和 video/src/lyrics.ts。詳情:references/music.md。
6 · 插圖
- 每個場景一張 21:9 2K 圖片,在
art/shots.json中命名為film-Sxx,根據吉祥物參考繪製。成本:python3 art/gen.py --dry-run,然後詢問。 - 檢查每張圖片是否有文字、重複道具、多餘肢體和錯誤服裝,並重新生成有問題的圖片。
- 執行
python3 tools/sync_art.py,然後執行python3 tools/build_timeline.py。詳情:references/images.md。
7 · 場景(Remotion)
- 自行製作兩個黃金場景:承載影片核心資訊圖表的場景。使其達到標準,並將它們註冊到
golden.ts中,取代示範中的TheYear/TheRule。 - 然後使用
video/CONTRACT.md(填寫其中的{{…}}行)將工作分配給 2-3 個並行的子代理建構者。每個建構者都有自己的群組註冊表,並使用連絡表進行驗證。 - 建構者可以在旁白存在之前就開始工作,因為提示會先依循估計字數,然後再自動轉換為真實字數。如果腳本在他們工作期間發生變化(審查結果下來),使用 SendMessage 將確切的變更內容發送給每個建構者。
- 自行審查每個場景的提示表。
- 詳情:references/scenes.md。
8 · 渲染與交付
- 執行
tools/render.sh。它會重建時間線、檢查提示、進行型別檢查、渲染、套用兩次 loudnorm 達到 −14 LUFS / −1 dBTP,並撰寫 SRT。 - 驗證每個片段的響度,並從 mp4 中抽檢影格,然後為使用者開啟影片。
- 詳情:references/render.md。
9 · 修訂
- 文字變更:僅重新錄製該場景的旁白,然後重建時間線。提示會自動跟隨文字。
- 圖片變更:重新生成圖片、同步、重建。
- 音樂變更:編輯
cuts.json。
視覺修正只需重新渲染,不花費任何成本;只有新的旁白、圖片或下載才需要花錢。
範本地圖
| 路徑 | 內容 |
|---|---|
film.json | 標題、代號、語言、地區、段落啟動詞和背景音樂、場景 intro/after 音樂、TTS 模型、輸出目錄 |
script/script.md | 手稿:## Sxx · name、<!-- title: -->、<!-- facts: -->、> visual:、旁白 |
notes/research.md、notes/log.md | 事實庫;決定與成本 |
voice/ | design.json + design_voice.py(語音設計)、narrate.py(旁白 + 時間戳)、listen.py(聆聽頁面)、voice.json |
music/ | suno/*.wav、cuts.json、tools/beats.py(節奏)、tools/suno_lines.py(對齊歌詞 → 行) |
art/ | style.json(外觀、不可清單)、shots.json、gen.py、img/ |
tools/ | build_timeline.py、cues.py、lint_cues.py、make_srt.py、sync_art.py、art_sheet.py、unframe.py、make_sfx.py、render.sh |
video/src/ | theme.ts、fonts.ts、timing.tsx(useScene、cue)、data.ts、lyrics.ts、Music.tsx、primitives/(Card、Bits、Film、Jingle、Hemicycle)、scenes/ |
video/tools/ | stills.mjs(選定影格的連絡表)、review.mjs(每個場景 N 個影格,多個場景) |
已知陷阱及其解決方案:references/pitfalls.md。