Communitygithub.com

紙偶分鏡 (motion-storyboard)

在撰寫任何程式碼之前,先為紙偶腳本建立分鏡。此工具會產生攝影機/切換表,每個場景一個區塊,包含每個加重音的影格事件、音效計畫以及證明節拍。用於「為此腳本建立分鏡」或「規劃攝影機運鏡與切換」。

紙偶分鏡 (motion-storyboard) 是什麼?

這個 AI 技能「motion-storyboard」旨在為紙偶動畫專案建立詳細的分鏡計畫。它的核心功能是讓使用者能夠在開始任何程式碼工作之前,先視覺化並規劃每個場景的攝影機運鏡與切換方式,確保場景代理不會自行發明不協調的運鏡。此技能支援的輸出格式包含一個明確的「攝影機/切換表」,其中列出每個場景使用的攝影機元件(來自 `paper/camera.tsx`)和切換種類(來自 `paper/transitions.tsx`),以及詳細的場景區塊,這些區塊會將旁白中的每個加重音對應到精確的影格事件、動作規範、環境動態和音效計畫。此外,它還強制加入了「證明節拍」與「回呼」等關鍵結構性元素,以提升故事的可信度與連貫性。此技能主要作為 `motion-build` 等後續建置流程的前置作業,它所產生的 `STORYBOARD.md` 檔案會與 `narration/script.json` 一同被讀取,以生成最終的 `episode.json` 配置。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/boytegar/motion-skills/tree/HEAD/skills/motion-storyboard

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

紙偶分鏡

分鏡是每個場景建構的藍圖。它為每個場景指定了攝影機運鏡和切換方式,以免場景代理自行發明不連貫的運鏡。一份指令中若只寫「CameraPush 或你自訂的變換」,則每個場景都會得到一個平淡的推鏡或手動縮放,而工具組中的攝影機運鏡將被閒置。

前置準備

  • 安裝:最小安裝即可。若使用函式庫,請檢查 style/$MOTION_STYLE/remotion/CATALOG.md(「paper/camera.tsx」和「paper/transitions.tsx」章節)以了解每個運鏡的屬性和適用時機。如果該檔案遺失或過時,請執行 python3 $MOTION_LIB/core/tools/catalog.py。請從環境變數中解析 $MOTION_LIB,否則從 ~/.config/motion-explainer/config.env 中的 MOTION_LIB= 行讀取,再不然就詢問使用者。
  • 需要 narration/script.json 和 video/STORYBOARD.md,後者需包含 HOOK 區塊與舞台表(每行分別為:橫幅、佈景、道具、UI 時刻、吉祥物、笑點)。若缺少,請執行 motion-hook 和 motion-script。
  • 背景板用於選擇佈景:style/$MOTION_STYLE/remotion/public/bg/backdrops/_sheet.jpg。只開啟步驟所需的內容。

1. 全域規則

將這些規則放在 STORYBOARD.md 頂部、HOOK 區塊下方。依據角色設定色板(依佈景輪換背景顏色):參見 $MOTION_LIB/style/$MOTION_STYLE/docs/style-guide.md 第 5 節。字型:第 6 節。畫布與區域:第 4 節。若需要一個適合單一延伸隱喻的功能解鎖,可使用第 12 節。

  • 解析度 1080x1920,30 fps。橫幅位於高度 14-21%,標題區塊位於 68-80%(它會隨場景移動以避開人臉),底部 20% 保持清晰。
  • 光線來自左上角。僅對角色、標題和訊號使用飽和度。

2. 攝影機 / 切換表

在場景區塊之前,每個場景一行。每一行都指定一個來自工具組 paper/camera.tsx 的元件,以及用於切入該場景的 CutSeries 種類(來自 paper/transitions.tsx)。

場景攝影機 (paper/camera.tsx)切入方式 (CutSeries 種類)
S01HookOrbitCamera + Depth, SnapZoom 在「<詞語>」上無
S04NameCrane 上升至 <焦點道具>tearAway
S09PeakCrabTrack 沿著 <排列>whip
S10CTARackFocus <道具> 至手機tapePull
  • 攝影機選項:OrbitCamera + Depth、SnapZoom、Crane、CrabTrack、DollyZoom、RackFocus、ForegroundPass、DutchTilt、FocusPulse、FreezeFrame、PullBack、PovMask、TimeRamp、TiltShift、FocusHunt、Handheld 和 CameraPush(來自 paper/kit.tsx)。目錄的 paper/camera.tsx 章節會說明每個運鏡的適用時機。
  • 切換選項:hard、whip、zoomThrough、pageTurn、tearAway、tapePull、stampCut、infiniteZoom、popUpBook、keyhole、burnAway。
  • 純 CameraPush 最多只能在三分之一場景中使用。
  • 將表中每一行的攝影機複製到其場景區塊的標頭中。切換欄位會作為 "cuts": {"S04Name": {"kind": "tearAway"}} 填入 episode.json(無條目表示硬切),motion-build 會負責填入。

3. 場景區塊

每個場景一個區塊,持續 1.5-5 秒,在句子邊界切換:

## S03:<節拍>  (5.6-8.2 秒, 78 影格)   橫幅:<大寫的關鍵訊息>
位置/背景:<世界位置 + 背景顏色>     攝影機:<camera.tsx 元件 + 參數,來自表格>   切入方式:<種類>
角色:<誰,配件>                       標題區塊:y=0.76
| 旁白詞語 (加重音) | 影格 | 事件                                    | 動作規範                   |
| "<詞語>"          | +6    | <道具進入 / 狀態切換 / 動作>       | <spring/slide/swap + 影格>  |
環境:<LED 閃爍, 閒置搖擺, 星星, 螢幕波形>
搖晃:橫幅 + 標籤,每 2 影格 ±1.5 像素
音效:<跳躍聲, 叮噹聲, 點擊聲...>
  • 將舞台表的每一行擴展為影格級事件:每個加重音旁白對應一個事件(每 0.4-0.8 秒一個),環境動畫始終開啟。影格是相對於該詞語的偏移量,稍後會透過 cueOf(ID)(word, n) 讀取。
  • 產品 UI 是在紙製顯示器或筆記型電腦螢幕上的粗略重建,包含偽造的互動(游標點擊、打字、進度條、波形、列表滾動)。
  • 證明: 每個片段一次,將來源頁面的真實截圖(透過 $MOTION_LIB/core/tools/capture.mjs 進行瀏覽器截圖,非重新繪製)貼在一張紙卡上,並用一支紅色麥克筆在關鍵句子周圍畫出一個自動繪製的圓圈。其他所有內容保持粗略的紙偶重建。
  • 在號召性用語 (CTA) 之前,有一次對先前佈景的回呼。

4. 攝影機與切換規則

  • 每個場景只有一個運鏡。緩慢推鏡是基線。在明亮的佈景上加入視差環繞以增加深度,在加重音的詞語上(用於數字和笑點)加入推進或快照縮放,加入前景穿越(一個模糊的紙製物體經過鏡頭)或拉焦,加入拉遠鏡頭以揭示規模,並在掙扎的吉祥物節拍處加入帶有標籤的定格畫面。
  • 大部分在橫幅變換時使用硬切。在 2-3 個主題變換時使用帶有動態模糊的甩鏡,在「進入」螢幕、門或鏡子內部時使用穿越縮放,每個片段最多一次翻頁或撕紙(用於接住或前後對比),以及用於進入 CTA 的膠帶拉開(一個樸素的牛皮紙條,可選用 label 屬性來印上一個詞)。
  • 從鉤子場景切出時需帶著動作延續。將 motion-hook 的規則應用於 S01 和 S02。
  • 轉場持續 6-12 影格,每個轉場帶有其音效(甩動、縮放、翻頁、撕裂、剝膠帶)。
  • 在函式庫專案中,使用工具組的轉場系列來串聯場景,這可以確保每個場景的起始點都落在其 plan.json 的影格上,使語音保持同步。

5. 音效計畫

  • 空氣音(呼嘯聲、滑動聲、甩動聲、縮放聲)合計:在每 2.5 秒的片段中最多一個。cues.py 會在超出限制時印出提示。例如,在 33 秒內有 12 個是可以接受的,但 26 秒內有 24 個就會分散注意力。
  • 進場使用接觸音(爆裂聲、重擊聲、戳印聲)或靜音。在音訊渲染之前,將它們計入 tools/cues.json。
  • 從 $MOTION_LIB/core/audio/CATALOG.md 中選取音效名稱,放在每個區塊的 音效: 行中。場景代理會將實際的資料行寫入 tools/cue_sheet.d/<Scene>.json。
  • 選擇背景音樂預設 (episode.json 中的 "bed"),並設定 cutSfx 以匹配切換種類:tearAway 對應撕裂聲,tapePull 對應剝膠帶聲。

檢查清單

  • 每個場景都有攝影機和切入方式,且純 CameraPush 最多使用在三分之一場景中。

  • 每個加重音詞語都有一個事件;環境動畫已列出。

  • 包含一個證明節拍、一個回呼,以及進入 CTA 的膠帶拉開或甩鏡。

  • 最多一次翻頁或撕紙;空氣音在預算內。

  • 在每個場景區塊的事件表中,標記出期待感以及一個誇張的節拍。12 項動畫原則(映射至工具組元件)請參閱 $MOTION_LIB/style/$MOTION_STYLE/docs/motion-principles.md。

交接

下一步是 motion-build,它會建立專案架構,並將攝影機/切換表和場景邊界轉換為 episode.json。它會讀取 STORYBOARD.md 和 narration/script.json。STORYBOARD.md 的時間部分會在之後(語音處理完成後)才生成,因此請將其留空。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能