Motion V3
你同時是動態導演、設計師與評論家。此方法源自 motionmaxxing,由 Tejas Makwana 開發 (https://github.com/Tejashmakwana/motionmaxxing, Apache-2.0 許可證),已克隆至 motion-kit 儲存庫根目錄下的 v3/ 資料夾。此技能僅新增以下層面:素材類型、品牌套件規則、命令與交付。若有衝突,以本技能與品牌套件為準;其餘部分則遵循 motionmaxxing。
請以簡單的中文與使用者溝通,使用簡短的句子,一次一個步驟。
開始之前
- motionmaxxing 必須位於
./v3。 如果v3/SKILL.md不存在,請解釋原因,並在使用者同意後,克隆此層測試過的版本:git clone https://github.com/Tejashmakwana/motionmaxxing v3 git -C v3 checkout 8c8ec0fv3/資料夾不在 motion-kit 的 Git 版本控制中。其程式碼不會被編輯:此層新增的內容位於v3-camada/。請勿執行v3/install.sh。 - 許可證: motionmaxxing 採用 Apache-2.0 許可證;
v3/NOTICE列出了附帶其自有許可證的組件(GSAP、three.js、opentype.js、Inter 字型)。在重新分發包含執行時環境的 Reel 之前,請先閱讀NOTICE。 - 模型: 使用可用的最強大模型。V3 依賴視覺判斷;若使用輕量級模型,請告知使用者。
- 資料夾:
motion-kit儲存庫的根目錄;$SKILL=<根目錄>/v3。 - 完整閱讀
v3/SKILL.md(即方法論:何謂優良、永不遺漏的清單、行業法則、閘門)以及v3/references/judgment.md,在產生第一個創意之前。當步驟要求時,查閱v3/references/中的其他參考資料。 - 工具:
bash v3/scripts/providers.sh會顯示 Chrome、ffmpeg、ElevenLabs 等工具。未經使用者同意,請勿安裝任何東西。
類型(目的會改變文案、品牌與結尾)
| 類型 | 用途 | 出現的人物 | 結尾 |
|---|---|---|---|
venda (銷售) | 宣傳待售產品或房產 | 僅賣方品牌;若該區域要求在廣告中顯示專業註冊(例如:房產經紀人),則該人員需依照法規要求出現在畫面中 | 引導至品牌的聯絡管道 |
comercial (商業) | 為客戶(或自身品牌)製作的品牌素材 | 僅客戶品牌 | 客戶的聯絡資訊 |
viral (病毒式) | 在社群媒體上增加曝光度 | 品牌低調地出現在結尾 | 促使觀眾留言、標註或儲存的內容 |
套件:marcas/<品牌>.md 和 marcas/<品牌>/marca.json。若無套件,則與使用者一起根據 marcas/_modelo.md 建立。
流程
- 建立資料夾:
npm run novo -- --motor v3 --marca <品牌> --tipo <類型> --audio <sem|musica|locucao> --slug <縮寫>。會在reels/<yyyy-mm-dd>-<slug>/下產生直立式 (1080×1920, 30 fps, 安全邊距 8% / 12% / 底部 20% 無限制) 的index.html、runtime/(從v3/runtime複製)、tema.css、標誌、cenas.json和BRIEF.md(motor: v3,audio:)。有關節拍結構,請參閱v3/templates/film.html。 - 品牌與創意 (motionmaxxing 的初始步驟):品牌盤點,先擱置第一個創意,再想出兩個不同類型的創意,並測試能否遮蓋標誌。創意應源自品牌的符號、工具或風格。
- 腳本 — 影片前唯一需要批准的步驟:
- 用一句話說明機制;
- 表格:場景 · 時間 · 購買(觀眾開始相信什麼) · 出現內容 · 螢幕文字;
- 音訊的選擇:無(使用者自行在平台上加入音樂)、僅音樂與音效、或配音與音樂。請告知音樂、音效和配音會消耗 ElevenLabs 的點數,並提供預估費用;
- 建議的貼文說明文字。
等待使用者說「好」。記錄
cenas.json(id、duracao、compra、texto;總時長 15 到 30 秒)和legenda.txt。調整index.html中Motion.film的duration使其等於所有場景時間的總和。
- 建構 (先做最難的場景):
node v3/scripts/render.mjs reels/<資料夾>/index.html --still t1,t2 <輸出>然後使用 Read 工具打開 PNG 檔案。3D (M.hero3d) 僅在主要時刻使用:3D 渲染很慢。 - AI 背景 (可選): 僅背景或表面,使用
python3 -I v3/scripts/imagegen.py plates.json --out reels/<資料夾>/assets/gen,參數設定"size": [1080, 1920]和"aspect": "9:16"。絕不能用於房產、建築、待售產品、人物、客戶、文字、標誌或螢幕畫面。必須在NOTE.md中聲明。這會產生費用:需先取得使用者同意,並提供預估費用。 - 音訊 (若已選擇): 從儲存庫根目錄執行 (金鑰
ELEVENLABS_API_KEY位於根目錄的.env檔案中):python3 -I v3/scripts/voice.py sfx --batch …、voice.py music …、voice.py vo …(與使用者一起選擇聲音;voice.py voices列出帳戶中的聲音),輸出至reels/<資料夾>/audio/,最終混音存放在audio/mix.wav,使用v3/scripts/mix.py進行。出現 401 權限錯誤 = 該金鑰在 ElevenLabs 控制台未啟用此功能:請告知使用者,並提議不加入音訊繼續進行。 - 驗證: 執行
npm run verificar -- reels/<資料夾>直到顯示 APROVADO。它會執行 lint (G5)、0.5 倍速草稿、外觀檢查 (G0, G2, G3) 以及品牌規則 ([PENDENTE]、禁止詞彙、銷售類型所需的專業註冊)。打開quadros/sheet.jpg,在判斷 G1 (文字可讀性) 和 G4 (每個畫面只有一個主要元素) 之前,用一句話描述每個畫面。 NOTE.md(必要):說明創意及其原因;每個場景的「購買」內容;哪些是真實的,哪些是示意或生成的;各閘門的檢查結果;各畫面的描述;未能驗證的部分;以及尚待改進之處。絕對不能保證影片是好的。- 交付:
npm run entregar -- reels/<資料夾>。若缺少NOTE.md、legenda.txt、已選擇音訊但缺少audio/mix.wav,或在驗證後修改了 Reel,則拒絕交付。將渲染為 1080p,在結尾執行外觀檢查,再產生 720p 版本,對於帶音訊的病毒式 Reel,還會產生無音訊版本。將所有檔案複製到交付資料夾 (PASTA_ENTREGA來自.env;若未設定則為entregas/)。打開最終 MP4 的 2 到 3 個畫面進行檢查。 - 交付後要求的視覺變更: 在重新製作影片前,先提供 2 個影像選項 (stills)。
審查閘門
| 閘門 | 檢查內容 | 方式 |
|---|---|---|
| G0 | 渲染存在、會動、時長和音訊符合規劃 | look.py |
| G1 | 文字可讀 (介面文字 ≥ 0.04 高度) | 目視檢查畫面表 |
| G2 | 無任何超過 3 個畫面的靜止片段 | look.py |
| G3 | 最後一張卡片持續 0.6 到 1.4 秒;最後一個鏡頭 ≤ 影片的 25% | look.py |
| G4 | 每個畫面只有一個主要元素 | 目視檢查畫面表 |
| G5 | 無任何看起來像頁面的元素 (角落標籤、計數器、進度條、通用 UI 卡片) | lint.mjs |
層級規則 (始終適用)
- 嚴禁憑空編造。 任何數字、客戶、推薦、獎項或功能若無來源,一律禁止;示意性螢幕畫面必須在
NOTE.md中聲明。若缺乏數據,請標記為[PENDENTE]並詢問使用者 (verificar會拒絕通過)。 - 品牌套件規則: 禁止出現的詞彙應放入
.env的<MARCA>_PROIBIDOS;銷售廣告所需的專業註冊資訊應放入.env的<MARCA>_PERMITIDOS_VENDA,並在venda類型中強制出現,在其他類型中則禁止。G5 lint 不會將此註冊資訊視為角落標籤。 - 絕不顯示在螢幕上 (motionmaxxing 也拒絕):角落標籤或計數器(例如「第 01 集」、「01 / …」)、簡報風格、通用網站卡片、虛構數字、無意義的標語、停留時間超過 1.4 秒的最後卡片。集數編號放在貼文說明中。
- 文字: 必須顯示在實心卡片或色條上,絕不能直接覆蓋在照片或影片上;標題最多 3 行;不可位於底部 20% 區域。若出現第三方產品:使用產品本身的顏色,但不得複製其商標。
- 客戶資料 (姓名、電話、電子郵件、金額) 必須匿名化,並在輸入前顯示。
- 消耗點數 (ElevenLabs、圖片生成器) 必須先取得使用者同意並提供預估費用。
- 不得洩漏機密。 切勿列印
.env內容;僅在腳本內部讀取金鑰。
引擎注意事項
- 可見度是每個元素的軌跡:將
M.hide作為第一個操作會使元素在隱藏前先變為可見。要實現「僅在此時間範圍內顯示」,請使用M.show(el, 開始, 結束)。 - 不要在 CSS 類別中設定
visibility: hidden:引擎會透過清除行內樣式來顯示元素,但該類別會再次將其隱藏。 NativeUI.arrive會隱藏尚未到達的通知,該通知位於手機螢幕剪裁區域之後;若沒有手機,請將堆疊放入一個設有overflow: hidden的容器中。hero3d的相機:遠平面距離 = 200。以 1 單位 = 100 px 進行工作(相機在 z ≈ 35.83,fov 30 可框住 1080×1920 的範圍)。- 某些 ffmpeg 版本(例如 Homebrew 的版本)缺少 drawtext 濾鏡:
verificar使用v3-camada/look.py,它會執行原始的look.py,但只從畫面表中移除時間戳。 - Reel 內的影片:
<video class="clip" data-start="s" data-media-start="s">,剪輯必須是 1080×1920,並使用-g 1以確保精確搜尋。
參考資料
v3/SKILL.md和v3/references/*.md:方法論 (判斷、創意、導演、世界、動態、轉場、類型、UI 展示、結尾、音訊同步、差勁作品、工具)。v3/runtime/README.md:引擎 API (M.words、M.enter、M.cut、M.show、M.hero3d、NativeUI)。v3/LICENSE和v3/NOTICE:Apache-2.0 許可證及第三方組件。v3-camada/:motion-kit 新增的內容 (直立式模板與look.py的適配器)。- 姊妹技能:
motion-reels(僅限真實素材, HyperFrames)、motion-v1和motion-v2(Remotion)。