Motion Reel Studio
製作可編輯的動畫專案與驗證過的影片,而非僅是提示或HTML預覽。改編自 Movez 的課程;實作與修正記錄於 出處。適用於任何有能力的編碼代理;無需特定模型、付費服務或外部技能。
範圍與起始決策
閱讀使用者的簡報及現有專案指示。保留要求的引擎、外觀、音樂與格式。若專案已使用 Remotion 或 HyperFrames,則擴展之;查閱該框架的已安裝指示/當前文件。否則使用內建的 Canvas + Playwright + FFmpeg 入門套件。以下指令僅適用於此預設路徑。
建立主體/產品 URL、目的、時長、長寬比、參考資料、品牌資產與音效。推斷已提供的答案;僅針對重要的遺漏輸入提問。對於開放式的展示影片,選擇並陳述一個概念、15 秒、1080×1920、60 fps 及原創合成音訊。請勿虛構產品宣稱或螢幕截圖。若無實際產品資產,請收集它們或明確標示為授權概念展示。
在使用者的成品存放位置內建立製作。在 X 儲存庫中,為新影片使用 posts/<slug>/,並將所有資產保留於該處。請勿在儲存庫根目錄安裝專案檔案。技能本身應保留在個人技能目錄中。預設在本地工作,無 API 花費;若要求特定提供者,則需具備可用的工具、憑證及授權預算。發布是另一個獨立動作。
製作工作流程
- 參考資料與資產。 檢查提供的圖片。對於影片參考資料,每 0.5–1 秒擷取影格並檢查剪輯點附近的運動。使用瀏覽器工具擷取實際產品狀態;在
docs/assets.md中保留原始 URL 與擷取日期。將字型/圖片下載至本地,並等待解碼完成。撰寫docs/style-guide.md:色板、字體排版、空間層級、鏡頭節奏、轉場語言、攝影機、紋理、需借用與需避免的內容。若無參考資料,則明確定義一個原創視覺方向。 - 導演摘要。 閱讀 direction 以了解要求的模式。撰寫
docs/brief.md與docs/shotlist.md;每個鏡頭都有目的、起始/結束影格、精確文案、視覺狀態、攝影機、轉場、音效提示與資產。為畫面與音訊使用單一時間軸。展示簡潔的計劃,並在授權請求範圍內進行。僅在使用者要求計劃/審核關卡時才等待;靜默從不提供該審核。 - 音效與節拍。 閱讀 audio and execution。分析提供的音樂或合成配樂;儲存
beats.json與cues.json。節拍檢測器無法確定小節的正拍。標記估算值,並在設計小節層級動作前確認第一個正拍。保持不變的曲目請求不變;未經許可,請勿拉伸或標準化該音源。 - 靜態畫面與動態腳本。 在細化動作之前,建立主要構圖並取樣每個鏡頭。以相同長寬比渲染低解析度的動態腳本,並帶有預期的節拍網格。檢查其節奏與手機可讀性。對於長片,在實作各章節之前,維護角色聖經與章節時間合約。除非獲得獨立授權,否則請勿委派。
- 動畫。 實作
window.seek(t)作為純時間到影格的映射。使用閉合形式的彈簧軌跡;為每個影格設定種子並重設程序性隨機性,或從時間與元素身份推導雜訊。在渲染模式下,不得使用持續積分、計時器、CSS 轉場或時脈取樣。本機資產就緒狀態應屬於window.ready。為每個長寬比做出響應式構圖決策;請勿將寬版的最終成果裁剪為直向。 - 評論與修正。 閱讀 review。檢查連絡表、快速移動周圍的連續影格,以及實際播放(若有播放工具可用)。每輪修正最多三個影響最大的缺陷,並重新渲染受影響的範圍。預設使用最多三輪重點修正;當滿足簡報且無重大問題時停止,或回報具體阻礙。切勿提高自我評分以偽造通過。靜態畫面無法驗證音訊或動態播放。
- 最終與交付。 渲染要求的解析度、混音、建立 QA 表單,並驗證串流中繼資料、時長、影格計數與完整解碼。交付
out/final.mp4、海報、連絡表、原始碼、可重現的指令以及簡潔的剩餘限制。僅在要求循環播放時包含out/loop-check.mp4。公開副本應遵循專案的寫作規則,並在有可用時進行最終的人性化處理。
內附可運作工具鏈
在執行前先閱讀 execution。將 <skill> 替換為此 SKILL.md 的目錄,將 <project> 替換為所選的影片目錄。
python3 <skill>/scripts/init_project.py <project>
cd <project>
npm install
npx playwright install chromium
node render.mjs --width 360 --height 640 --fps 30 --out out/animatic.mp4
python3 audio.py synth --duration 15 --bpm 120 --out out/score.wav --beats beats.json
python3 audio.py sfx --duration 15 --cues cues.json --out out/sfx.wav
node render.mjs --width 1080 --height 1920 --fps 60 --sub 4 --out out/silent.mp4
python3 finish.py mix --video out/silent.mp4 --music out/score.wav --sfx out/sfx.wav --out out/final.mp4
python3 finish.py qa --video out/final.mp4 --out out/qa --expected-duration 15 --expected-width 1080 --expected-height 1920 --expected-fps 60 --require-audio
入門套件是一個完整的抽象測試動畫,並非創意交付物。請根據簡報替換其場景、文案、配樂與提示。motion.mjs 提供了正確的欠阻尼、臨界阻尼與過阻尼彈簧、多目標軌跡、文字切換不透明度與種子雜訊。render.mjs 提供了範圍渲染、子影格模糊、本機 HTTP 服務、就緒檢查與非順序確定性檢查。audio.py 提供了確定性配樂、音效與可選的音樂分析。finish.py 提供了雙通道響度混音、全片分頁連絡表、手機連絡表、動作條、循環副本與技術檢查。
品質不變量
- 內容在沒有聲音的情況下仍必須易於理解;聲音應強化真實的運動事件。
- 除非被要求,否則避免使用通用的居中標題/漸層/淡入淡出範本。偏好具體的構圖與可見的轉換;「每 2–4 秒新內容」是短格式節奏的啟發式方法,並非每部影片的規則。
- 彈簧表現質量;為材質選擇阻尼。請勿讓每個標籤都彈跳,或將刻意的線性/週期性運動替換為彈簧。
- 文字應在容器開始變化後進入,並在不相容內容到來前退出。在最終比例下保持字形清晰,並在 360 像素寬度下測試。
- 模除時間無法使接縫連續。匹配接近結束與起始的位置、速度、可見度與聲音;檢查接合的播放內容。
- 將軟體/影格確定性與美學品質分開。一個可重現的壞影格仍然是一個壞影格。