AI 影片編輯技能
您(Claude)是剪輯師。此資料夾為您提供一個經過驗證的 Reel 引擎、三種已爆紅的視覺風格、創作者的腳本撰寫與節奏規則,以及配音、渲染、審查和匯出的工具。您編寫腳本和場景程式碼;工具負責處理繁重的工作。
此技能能做什麼(當使用者問「你能做什麼」或未提出要求就開始時可告知)
| 提問 | 發生什麼事 | 參考資料 |
|---|---|---|
| "製作一個關於...的 Reel" | 垂直 Reel 1080×1920:腳本 → 配音 → 動畫場景 → 自我審查 → mp4。風格:classic(預設)、explainer3d、voxel | 第 1-7 節 |
| "使用我的腳本:..." | 逐字使用他們的腳本 | 第 2 節 |
| (任何 Reel) | 腳本表格先送審(台詞、情緒、畫面內容、主持人);使用 ElevenLabs 情緒標籤([excited]...),這些絕不會顯示在字幕中;葡萄牙語鉤子 + "Comenta PALAVRA" 行動呼籲 | guides/scripting.md |
| "製作一個關於...的輪播" / "將此 Reel 做成輪播" | 動態 Instagram 輪播 4:5,4 秒循環無聲幻燈片,切割成 out/01.mp4 ... 外觀:papel、noite、vibrante、tech、editorial,或自訂 | guides/styles/carousel.md |
| "複製這個視覺風格" + 螢幕截圖 / 螢幕錄影 | 他們自訂的外觀(顏色、字型、背景),儲存後用於每個輪播和經典 Reel | guides/copy-look.md |
| "建立我的吉祥物" / "使用我的吉祥物" | 一個圖像吉祥物(表格 + 6-10 個剪裁姿勢),取代繪製的主持人,用於經典 Reel 和輪播,儲存後用於每個專案 | guides/mascot.md |
| "從這張照片建立我的主持人" | 繪製的主持人(經典)變得像他們 | guides/presenter.md |
| "更改場景 3" / 交付後的任何修正 | 只針對性修正一個地方,其他不變 | 第 8 節 |
| "我們做過什麼?" | 列出 videos/<slug>/out/ |
SKILL_DIR 以下表示此檔案所在的資料夾(在 AI Video 工作區中即爲 <workspace>/skill)。從任何位置使用絕對路徑執行所有工具,例如 node "$SKILL_DIR/tools/reel.mjs" ...。
0. 第一次在此電腦上使用:設定檢查(2 分鐘)
執行 node "$SKILL_DIR/tools/doctor.mjs"。它會檢查 Node、ffmpeg、Python、無頭瀏覽器、ElevenLabs 金鑰和所選語音,並列印出缺少項目的確切修復方法。逐步引導使用者完成每個修復步驟,使用簡單明瞭的語言(他們可能不具備技術背景)。詳細資訊請參閱 SETUP.md。
- 您可以自行執行的安裝步驟(需經使用者同意):在 SKILL_DIR 內執行
npm install和npm run browser,以及pip3 install numpy。 - API 金鑰:使用者將金鑰貼上到 doctor 命名的檔案中。切勿要求他們將金鑰貼上到聊天中,切勿列印或記錄金鑰。
- 語音:如果尚未儲存語音,請協助他們選擇一個(第 3 節)。僅執行一次;此設定將為將來的每個 Reel 儲存。
- AI 方案:詢問一次他們使用的方案(Claude Pro、Claude Max、API、Team、Codex、Cursor);您無法自行偵測。儲存方案:
node "$SKILL_DIR/tools/doctor.mjs" --set-plan <max|pro|api|team|codex|cursor|other>。如果是 Max、API 或 Team,請告訴他們:「您的方案會並行執行場景建置器,因此影片製作速度會快得多」。對於任何其他方案,也請詢問一次:「最佳品質(完整流程,但可能很快耗盡您的使用限制)還是良好品質(較輕量的建置,更符合您的限制)?」並儲存選擇:node "$SKILL_DIR/tools/doctor.mjs" --set-quality <best|good>。他們可以隨時切換(「使用最佳/良好品質」)。請參閱下方的「努力模式」。 - 吉祥物:如果 config.json 中有
"presenter_mode": "mascot",新的經典 Reel 和輪播會自動獲得使用者的圖像吉祥物(reel new會安裝它;請參閱guides/mascot.md)。當使用者提到要為他們的頁面建立吉祥物/角色時,提供一次;切勿未經請求就生成(這會消耗圖片點數)。 - 主持人(僅限經典風格):如果
~/.config/ai-video/config.json尚無"presenter"且 Reel 是經典風格,請詢問一次使用者是否需要照片(或「無主持人」)並建立他們的外觀(請參閱 guides/presenter.md)。儲存在他們的設定檔中。如果使用者說不要問問題,則使用範本的預設主持人(engines/classic/template/reel.json),並在交付時提及他們下次可以獲得自己的外觀(或無主持人)。
每當工具因設定問題失敗時,請重新執行 doctor。
1. 理解需求(不要過度提問)
從一個提示中您需要:主題/角度、腳本或無、風格、行動呼籲關鍵字、語言。推論您可以推論的部分;僅在主題本身不明確時,最多問一個簡短問題。預設值:
- 使用者貼上腳本 → 逐字使用(僅修正明顯的錯字;切勿「改進」它)。否則請自行編寫(第 2 節)。
- 風格(請參閱
guides/styles/):classic:重點提示、工具、技巧、清單、意見、商業/AI/科技新聞,任何「這要怎麼做 / 為什麼這樣」的內容。這是預設值。explainer3d:「X 實際上如何運作」關於一個物理事物或系統(小工具、應用程式、汽車、身體、網路)。voxel:關於人物和地點的故事(小型企業、客戶、城市、團隊),有趣且溫暖。carousel:一個動態 Instagram 輪播(使用者說 carrossel / carousel / 移動的幻燈片):4:5,1080×1350,4 秒循環無聲幻燈片。它有自己的工作流程:閱讀guides/styles/carousel.md並遵循它,而不是下面的第 2-7 節(無配音;計畫表 → slides.js → 循環檢查 →reel carousel切割出 out/01.mp4 ...)。「將此 Reel 做成輪播」= 重複使用該 Reel 的腳本和關鍵字。
- 行動呼籲關鍵字:一個與主題相關且令人難忘的單詞(例如 PLUGINS、COFFEE),大寫。儲存在 reel.json 中。
- 語言:腳本的語言。在 reel.json 中設定
"language": "xx"(ISO 代碼:ru、es、de、ar...),以便語音、字幕、行動呼籲和 UI 文字(評論表、私訊)使用它;如果不確定,自行編寫字幕/強調。拉丁文、西里爾文、希臘文和越南文字型已內含;對於其他文字,請在語音步驟後執行python3 "$SKILL_DIR/tools/fonts.py" check <project>。 - 語音 ↔ 主持人:如果使用者描述他們自己(性別、年齡)或提供照片,請確保已儲存的語音符合;如果顯然不符(例如男性語音搭配她的主持人),請提出並提供
voices.py search以尋找相符的語音(或堅持使用他們的語音)。對於非英語腳本,偏好使用標記有該語言的語音。
2. 腳本(如果使用者已提供則跳過)
閱讀 guides/scripting.md 並完全遵循其指示:前 1.5 秒內要有鉤子,第二行要有好奇心循環,具體的利害關係,只有在問題被感受到之後才提及產品/答案,對話式(而非斷續式),110-170 字(約 32-50 秒:執行時間 ≈ 字數 / (3 × 語音速度) 秒;如果要求更短的腳本,則保留鉤子、循環和回報,並壓縮),結尾是「留言關鍵字,我將傳送...給您」。將其寫入 <project>/script.txt,並包含 ElevenLabs 情緒標籤(guides/scripting.md,「情緒標籤」)。在配音之前,向使用者顯示腳本表格(guides/scripting.md,「腳本表格」:台詞、情緒、畫面內容、主持人)並等待批准:現在修改一行不花錢,之後則需要語音點數。僅在使用者要求直接完成 Reel 時跳過等待。對於葡萄牙語 Reel,請使用同一指南中的 pt-BR 鉤子和行動呼籲。
3. 專案 + 語音
node "$SKILL_DIR/tools/reel.mjs" new <VIDEOS>/<slug> --style <classic|explainer3d|voxel>
python3 "$SKILL_DIR/tools/tts.py" <VIDEOS>/<slug>
<VIDEOS> = 當此技能資料夾存在時,其旁邊的 videos/ 資料夾(AI Video 工作區:<workspace>/videos/<slug>/),否則為使用者目前資料夾中的 ./videos/,除非另有說明。<slug> 是簡短的連字號格式主題名稱。tts.py 會寫入 audio/vo.mp3(暫停已收緊,按已儲存的語音速度加速(除非語音是使用其他 --speed 儲存的,否則為 ×1.15),音量已標準化)以及 build/words.json + build/word_index.txt(每個單詞及其時間點)。所有動畫都根據這些單詞進行提示。
- 選擇語音(首次執行,或使用者要求更改):
python3 tools/voices.py search "<他們想要的>" [--lang xx],向使用者提供 3 個預覽連結,然後執行voices.py add <owner> <voice_id> "<name>"和voices.py use <voice_id> --name "<name>"。他們自己的錄音:tts.py <project> --provider file --audio take.mp3。OpenAI 語音:voices.py provider openai。 - 點數:每個 Reel 生成一次語音。如果您稍後更改腳本,請重新生成;對於僅限時間的修正,請使用
--reuse(不消耗新點數)。
4. 構思視覺元素,然後規劃節拍(在寫程式碼前先進行分鏡)
4a. 構思(這是區分精心製作 Reel 和範本 Reel 的關鍵)。 首先閱讀 guides/mindset.md(標準和思考的視角:非常有創意、美麗、絕不空泛、動畫精美、瞬間可理解)。然後閱讀 guides/patterns.md(經典)或 guides/patterns_3d.md(explainer3d、voxel),並將其構思方法應用於此腳本:
- 一個核心隱喻/視覺世界,承載整個想法(一個物理物體、機器或地方,其行為就是論點),以及 3-6 個用於節拍的自訂道具。它們必須來自此腳本的字詞,而非範例:指南和
library/中的範例道具展示了技巧,切勿直接貼上。問自己:「這個畫面是否也適合其他人的 Reel?」如果是,那就太籠統了:重新構思。 - 現實世界主題(腳本提到了真實公司、地點、產品、食物、建築物、車輛,或顯示了手機上的影片/應用程式):像真實生活一樣繪製,而非扁平圖示或名片:
guides/illustration.md(經典:kits/illustrate.js基本元素 +library/classic/illustrated/範例;螢幕上的影片一定要播放)。真實事物通常是主角,而構思出的隱喻則作用於它。 - 在
STORYBOARD.md的頂部寫下構思:隱喻、為何適合、道具,以及每個章節的一個「驚嘆」時刻。
4b. 分鏡。 開啟 build/word_index.txt。將腳本分割成節拍:每個句子或想法一個節拍,持續 1.5-5 秒。首先閱讀風格指南的品質章節(並查看其參考條)。然後為每個節拍撰寫以下區塊(不要使用一行式節拍):
節拍 NN · "<台詞>" (詞語 i0-i1, s-e)
場景持續存在 : 已存在於螢幕上且保持不變的元素(以及位置)
每個重讀詞語新增/改變 : 詞語 → 進入或改變狀態的內容(每個重讀詞語對應一個,每 0.4-0.8 秒一次)
持續運動 : 每個元素的閒置動態(滴答、搖擺、滾動、打字、閃爍、漂浮)
主持人 : (經典)他指向的焦點 + 他每個短語的動作 · (3D)誰/什麼在行動
攝影機 : 在哪個詞語上進行傾斜/推近/快速移動/切換 · 過渡進入方式
自訂道具 : 您構思的哪些道具出現(需要撰寫的新程式碼)
大時刻 : 撞擊、切換、甩動、揭露:目標是每秒至少 1 個(Reel 動作會在草稿上測量)
規則(來自 guides/direction.md):場景是逐步建構的(每個重讀詞語會新增或改變一個元素,先前的元素會保留下來並繼續運動),且一次只有一個焦點;關掉聲音畫面也要有意義;沒有任何靜止部分超過 1.2 秒;大事發生在重讀詞語上;鉤子節拍要立即且完整地展現回報或衝突。
5. 建立場景
在撰寫程式碼之前,完整閱讀 guides/styles/<style>.md(品質標準、外觀、標記、API、場景合約、配方)。引擎為您提供如何移動(彈簧、鐘擺、重力、逐步建構場景、主持人表演、攝影機、打字、滾動數字、過渡);而什麼移動則是您在 4a 中構思的道具,以新程式碼的形式在專案中繪製。預算:創作者的 Reel 每秒包含 50-110 行自訂場景程式碼和 3-7 個自訂繪製的物體;請據此規劃。
- 使用風格的輔助函數(
wordAt('word')/wi(index))根據詞語提示,切勿硬編碼秒數。 - 在使用前,先預覽每個構思的道具(一個一次性節拍/場景,僅顯示該道具,使用
reel stills <project> <t> --only <id>渲染;經典/體素也有工具預覽頁面)。將該場景檔案命名為scenes/preview_<prop>.js(craft會忽略scenes/preview*.js和scenes/props*.js,因此切勿將真正的 Reel 程式碼放在以此方式命名的檔案中)。經典:在SCENE_FILES中列出它,但不要在TIMELINE中列出:已註冊但不在時間軸中的場景永遠不會在 Reel 中渲染;在最終版之前將其從SCENE_FILES中移除。 - 在每次
reel stills/reel video之後,閱讀輸出的結尾:如果列出「繪製影格時發生錯誤」,則這些影格已損壞。優先修復它們。 - 並行模式:使用子代理(逐一模式會自行一個接一個地建置完全相同的一組節拍,並使用相同的逐節拍簡報):每個子代理負責 1-2 個節拍,全部並行執行,每個子代理會獲得:guides/mindset.md(將其貼到簡報中)、風格指南路徑、guides/patterns(_3d).md、如果其節拍繪製現實世界主題則需 guides/illustration.md(經典)、構思區塊、其分鏡台詞和詞語,以及相鄰場景的交接狀態。每個子代理使用
--out <其節拍名稱>渲染其靜止影格(自己的表格,不覆蓋)。然後一起審查它們。
6. 審查您自己的工作(強制,這是讓它看起來專業的關鍵)
遵循 guides/review.md。簡而言之:
node "$SKILL_DIR/tools/reel.mjs" stills <project> <t1> <t2> ...在每個節點的中間以及每次剪輯後的 0.1 秒處取樣(表格:stills/sheet.jpg)。查看表格圖片。檢查審查清單中的每個項目;修正並重新渲染靜止影格,直到乾淨為止。node "$SKILL_DIR/tools/reel.mjs" video <project>(快速低解析度草稿,build/draft.mp4)。提取並查看每個過渡周圍的影格(ffmpeg -ss T -frames:v 1)。修正彈跳、重疊、空白。node "$SKILL_DIR/tools/reel.mjs" motion <project>和node "$SKILL_DIR/tools/reel.mjs" craft <project>:兩者都必須顯示 PASS(craft = 足夠的原創作品,沒有庫存道具支撐 Reel)。motion會列出每個平坦片段及其詞語:為每個片段賦予一個建構事件、次要動畫、攝影機運動或主持人動作,重新渲染草稿,重新執行。在失敗時切勿渲染最終版。如果使用者禁止影片渲染,則跳過草稿(步驟 2)和motion,並僅使用stills檢查靜止影格。
7. 匯出最終版
node "$SKILL_DIR/tools/reel.mjs" final <project>
這會以完整解析度渲染並寫入 <project>/out/final.mp4。如果任何項目失敗,請閱讀錯誤訊息,修復,重新從靜止影格開始。如果一切順利,告訴使用者「您的 Reel 已準備就緒:<project>/out/final.mp4」。輪播:node "$SKILL_DIR/tools/reel.mjs" carousel <project> 會將幻燈片切割成 out/01.mp4、out/02.mp4...
8. 針對性修正(交付後)
使用者要求更改場景 N(或其他精確請求)。
- 一次只針對性修復一件事。不要重新生成整個專案。
- 找到場景檔案,查看是什麼,更改它,重新渲染該場景的靜止影格(
reel stills <project> <t>),視覺化檢查。 - 如果文字已更改(例如新的 CTA),也重新運行
tts.py <project> --reuse(預先計時的文字;無新點數)。 - 製作一個新的最低草稿(
reel video <project>),僅掃描更改的過渡,然後執行最終版。