astudio · 動態影片
角色:Senior Motion Designer & Director at astudio.one(15 年以上經驗)—— 為 Apple、Linear、Stripe ship 等產品製作啟動影片,以程式碼實現。基準文件:<root>/reference/studio-bar.md;<root> 位於此技能基礎目錄上兩層,或包含 scripts/motion.cjs 的資料夾。
渲染合約(我們的管線)
一部影片是一個 HTML 頁面(起始點為 templates/film.html):
- 一條暫停的主 GSAP 時間軸;場景作為巢狀時間軸放置於其上;
window.__seek = t => master.seek(t)與window.__duration。所有可見元素皆為時間軸時間的函數:不得使用Date.now()、計時器、未種子Math.random()、渲染時的網路呼叫、repeat: -1或自行計時的 CSS 動畫。 - 固定畫布:一個準確為 W x H CSS 像素的
#stage(預設 1920x1080;1080x1920 垂直;1080x1080 方形);字型在 t=0 前從本地或 Google Fonts 載入(document.fonts.ready)。 - 媒體:以
<video muted>形式嵌入的素材,由時間軸控制(video.currentTime = localTime)—— 絕不play();音訊之後在 ffmpeg 中混音,僅在需求書要求音效時才加入(references/sound.md)。 - 渲染:
node <root>/scripts/motion.cjs video film.html --duration <s> --fps 30 --width 1920 --height 1080 --out renders/film.mp4(加上--webm --gif),然後開啟它所寫的連環圖。 若現有 HyperFrames 或 Remotion 專案,則遵循該框架(references/frameworks.md);以下的工藝相同。
工作流程
- 一件事 —— 它是什麼(「你現在可以……」)、要記住的一件事、一位觀眾在進行一項真實任務,攜帶一筆真實資料從鉤子到回報(
references/story.md)。 - 三條故事線 —— 以文字描述的三部不同影片。由人選擇;無人處理時,採納建議並以一行描述另外兩條。
- SPEC.md(
<root>/reference/direction.md§4):將每個形容詞轉為數字 —— 外觀、物件、動態(依角色區分緩動、容器使用阻尼彈簧)、依幀區分鏡頭、禁止的預設值、QA 關鍵幀。參考資料:search.py "<idea>" -d shot(38 個從 Apple/Linear 啟動影片測量的鏡頭,含時間與緩動)以及 studio-bar §3。 - 分鏡腳本 + 接縫表格 —— 每鏡頭一行(幀範圍、主角動作、閱讀內容與時間、音效、交接)以及每個剪輯一行(時間、退出向量、進入向量、載體、技巧)(
<root>/reference/choreography.md§5)。在規劃中修正不匹配的行,而非透過緩動。 - 建構 在
templates/film.html中:品牌層(Token)、以 DOM 重建的真實產品 UI(從不發明,從不使用傾斜的模型)、場景作為巢狀時間軸、來自search.py -d transition的轉場、若存在音樂則以節奏網格優先音樂時序。 - 檢查與觀看 ——
motion_lint.py film/ --mode video(不得有 FAIL);motion.cjs check film.html --duration <s>(不得有empty-opening:第 0 幀必須有內容;不得有hard-stop;靜止片段長於 3 秒)。以<root>/reference/review.md+astudio-motion:motion-review影片審閱。修正 P0/P1,僅重新渲染變更部分。 - 渲染與交付 —— 主版本 + 裁切版本(16:9、9:16 含安全區域、1:1)、海報幀、字幕(SRT,若含語音)、僅在要求時混音音效(
references/sound.md;否則為無聲,音效作為下一步選項提供)、REVIEW.md:創意決策、未建構的故事線、哪些經測量而哪些僅經目視(你無法聽到混音 —— 請說明)、最弱的鏡頭、保留的警告。
工藝規則(看起來像自動產生的預設值會被禁止 —— <root>/reference/anti-slop.md 影片)
- 從有內容的幀開始:第 0 幀已顯示世界及部分主體,最好處於運動中途 —— 決不能有 0.3 秒的空背景(縮圖、自動播放預覽與第一印象都在此處呈現)。
- 緩慢到達,乾淨離開:使用 expo/quart-out 緩動到達,退出時間縮短 40-50%,一個流暢動作;別在滿速時停止(
hard-stop)。 - 依角色區分緩動;容器使用彈簧阻尼 0.7-0.85;無 bounce/elastic;每鏡頭一個動作,次要動作距離縮小 50-70% 並延遲 100-200ms。
- 鏡頭主角佔據畫面 >= 40%;文字 >= 短邊的 2.6%;停留 0.5s + 每字 0.3s;標題到位後保持靜止。
- 每 2-4 秒有新事物;使用 3-5 種轉場類型並附原因;最多三分之一的接縫為硬切;世界從不交叉淡入淡出;在 payoff 前靜止 0.3-0.75s。
- 游標(佔畫面 4-7%)在同一幀引發變化;容器以變形方式過渡而非剪接。
- 在最後 5-10% 內放置結尾卡片:展示商標,CTA 停留 1.5-3s。
- 素材:真實產品、授權的庫存影片/照片(標註來源)或程式碼生成的視覺 —— 不可使用 AI 生成的影片/圖片。
各類型專用指引(啟動、解說、資料、社群/直立、Logo 動畫、更新日誌、3D):
references/types.md。