品牌宣傳片 (工作室作品集) 是做什麼的?
此技能從單一設定檔 promo.json 製作一支完成的宣傳影片。每個畫面都在無頭 Chrome 中繪製,因此影片是純動態設計,沒有使用範本或素材片段:
- 畫面: 品牌自己的片段、它的標誌動畫、它的文字。
- 配樂: 用程式碼製作的原始合成音軌(128 bpm)。每個剪輯、重拍與節點都落在其小節上。
- 旁白: VoxCPM2,在本地端執行。
- 音效: 每個作品的音訊在自己的聚光燈中播放。
結構固定,適用於任何品牌規模。只有內容會改變。
| 時間 | 段落 |
|---|---|
| 0-3.4 秒 | { 每個故事 } 以打字方式出現,然後「值得 動起來。」 |
| 3.2-7.6 秒 | 一圈 3D 卡片(所有作品的靜止畫面):「這裡有 我們 的五個作品。」 |
| 7.6 秒 (第 4 小節) | 重拍:開場破題,品牌名稱在故障感強調框中,附帶副標題 |
| 9.5 秒 + 各 5.6 秒 | 每個作品一個聚光燈:標題區塊加上傾斜卡片(16:9)或手機(9:16)上的作品,「完整影片 · m:ss」標籤,自身的聲音搭配即時音量條 |
| 過場 | 「你的故事」然後在旁白行最後一個字上出現大大的「接下來。」 |
| 衝刺 | 每個片段以 3D 方式飛過,在旁白的短語上出現三個詞(撰寫 · 配音 · 動畫) |
| 結尾 | 液態標誌落在最後一個重拍上,向左滑開,品牌名稱淡入,然後是標籤與網址 |
長度為:5 個作品 51.5 秒,4 個作品 45.9 秒,3 個作品 40.2 秒。
需求:
- ffmpeg、Node 22+ 以及 Google Chrome 或 Chromium (
CHROME_PATH)。 - 安裝了 numpy 和 scipy 的 Python (
PROMO_PY)。 - 需要旁白時,安裝 VoxCPM2 (
VOX_PY,參見scripts/voices.py)。如果沒有它,宣傳片就沒有旁白,或者你可以將自己的錄音檔放入build/vox/<id>.wav。
工作流程
1. 收集宣傳片所需素材
-
3-5 個作品: 品牌已完成作品的影片,長度不限。直式影片在手機上播放,橫式影片在卡片上播放。注意:
- 每個作品要找一個 好的音效時刻,例如一句話的開頭或一個妙語:聚光燈中會播放其中 4 秒。將它的開始時間設定為
sound,或者不設定,系統會自動在影片約 35% 處的安靜間隙開始處選取。 - 對於不該播放聲音的作品,設定
"mute": true。
- 每個作品要找一個 好的音效時刻,例如一句話的開頭或一個妙語:聚光燈中會播放其中 4 秒。將它的開始時間設定為
-
標誌動畫: 需要透明背景。最佳來源是使用液態風格執行
/generate-logo:generate-logo/scripts/animate.sh logo.png --styles liquid --prores這會產生
<name>-5s-liquid-alpha.mov及其-sfx.wav。透明的-alpha.webm或透明 PNG 也可接受。 -
品牌資訊:
- 品牌名稱,分成兩個顏色部分(例如
["KumNit", " Studio"])。 - 顏色:名稱使用兩個漸層、一個強調色、第二強調色和一個暖強調色。從標誌中讀取這些顏色。
- 網站。
- 品牌的業務內容:四個標籤。
- 品牌名稱,分成兩個顏色部分(例如
-
語言:
"lang": "en"或"km"。對於高棉文,所有文字和旁白行都請使用自然的高棉文書寫。Kantumruy Pro 和 Koulen 字型已內含。
2. 撰寫專案
為專案建立一個資料夾,並將 examples/kumnit-showreel.json 複製到其中,命名為 promo.json,然後編輯它。每個鍵的說明都在 references/config.md 中。保持文字簡短:標題一到三個詞,每行最多六個詞。長行會自動縮小以適應,但閱讀效果較差。
在 voice.lines 中撰寫旁白,每個時刻一個簡短的句子:
next的最後一個字應該是要顯示大字的那個詞。例如,「你的故事可能 接下來。」rush需要三個用逗點分隔的短語,分別對應三個衝刺詞(例如「我們撰寫它、配音它、並動畫化每個畫面。」)。
3. 預覽 (約 30 秒)
<skill>/scripts/promo.sh <project>/promo.json --preview
這會裁切素材、規劃時間點並渲染 12 張靜止畫面到 out/<name>-preview.png。仔細閱讀並檢查:
- 卡片是否顯示正確的時刻。
- 沒有擁擠的標題。
- 標誌的構圖是否恰當(其標記應佔據其方框約 60% 的面積)。
- 聚光燈是否交替出現。
若要修正某個畫面,請更改該作品的 sound 開始時間。然後刪除 assets/clips/p<k>、assets/bites/p<k>.wav 和 assets/manifest.json,再次執行預覽。
4. 渲染 (第一次約 10 分鐘)
<skill>/scripts/promo.sh <project>/promo.json # 在背景執行
階段依序執行:素材、聲音、規劃、音樂、混音、渲染、編碼。
- 聲音: 第一次執行會載入模型(約 2 分鐘),然後每行需要 10-60 秒。已存在的聲音行會被保留,因此若要重做,請刪除
build/vox/<id>.wav。 - 渲染: 使用 2 個 Chrome 程序,約 4 分鐘。
- 恢復: 使用
--from mix(或render、encode)可從該階段開始重新執行。
輸出:out/<name>-1080p60.mp4 和 out/<name>-contact.png(每秒一張畫面)。
5. 交付前檢查
- 閱讀聯絡單。
- 使用
ffprobe確認影片長度符合預期(5 個作品應為 51.5 秒)。 - 混音已標準化至 -14 LUFS。
- 你無法直接聽到結果,因此請告知使用者你已檢查過哪些項目(時間點、音量等級、畫面),並請他們聆聽。特別注意旁白與每個作品自身音效之間的比例。
調校
- 音效: 將
sfxDir設定為使用者自備音效的資料夾路徑,scripts/audio.py(SFX) 中的檔案名稱會優先嘗試使用該資料夾內的檔案。缺少的音效會自動合成,因此此技能在沒有音效庫的情況下也能運作。 - 時間點: 時間點是根據
scripts/plan.py中的旁白來測量的。每個作品的聲音會在其旁白行之後開始,並在下一個聚光燈之前停止。若要更改規則,請編輯plan.py,而不是場景本身。 - 外觀: 顏色來自
brand,所有動畫在scripts/scene.mjs中,配樂則在scripts/music.py中,其小節佈局在檔案頂部有說明。