Communitygithub.com

aguspranyoto/2d-animation-hyperframes

根據使用者提供的情緒標註旁白腳本(script.txt,含 [excited]、[curious] 等標籤)及其配音,配合專案視覺參考,在 HyperFrames 中製作一致的 2D 教育動畫。風格:2D 平面、以白色背景為主搭配淡色草稿線條,僅主體與文字全彩呈現。除非明確要求,否則不撰寫旁白。也涵蓋音效:放置位置、如何取得或合成,以及如何將提示嵌入時間軸。

2d-animation-hyperframes 是什麼?

此技能專為在 HyperFrames 中建立一致的 2D 教育動畫而設計。它能自動處理使用者提供的旁白腳本(含情緒標籤)與對應的配音檔案 (vo.mp3),將其轉換為視覺動畫。技能會優先使用專案中的視覺參考(位於 references/visual-style/overall/)來定義統一的 2D 平面美術風格,特點是白色背景搭配淡色草稿線條,僅重點主體與文字使用全彩色。它嚴格遵循腳本與音訊,不會擅自修改旁白或合成替代配音。此外,技能也涵蓋音效的規劃與嵌入,包括從 CC0 素材庫取得或使用 Python 程式碼合成音效,以及將其精確地放置於時間軸上,確保不覆蓋主要敘述。支援的平台為 HyperFrames CLI 工作流程,可透過 npx hyperframes preview 進行預覽與迭代。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aguspranyoto/2d-animation-hyperframes/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

2D 動畫 HyperFrames

使用此技能,根據使用者已批准的旁白腳本和時間來源製作動畫影片。一般輸入為 vo.mp3 加上 script.txt(情緒標註旁白),視覺參考則位於 references/visual-style/overall/。

觸發範例:

/2d-animation-hyperframes 使用 vo.mp3 和 script.txt 製作一部 2D 動畫影片。請遵循 references/visual-style/overall/ 中的視覺參考。

使用者的腳本和音訊是最終依據。除非使用者明確要求,否則不要花費資源撰寫新腳本、重寫旁白或產生替代配音。情緒標籤是表達指令,而非口語詞彙:請原樣保留,切勿將其朗讀或製作成字幕。如果要求的檔案遺失或不明確,請詢問其位置;不要使用新撰寫的腳本代替。

預設觀眾為印尼兒童(TK 至 SD 階段)。確保視覺故事清晰、溫馨且符合年齡。保持所有動畫為 2D 風格。

輸入、腳本格式與時間

在請求或當前專案中尋找附加的檔案。若指定路徑,請使用提供的路徑。如果檔案不在專案中,請在開始製作前詢問其位置。來源檔案位於 references/multi-video.md 描述的工作區佈局中:旁白和配音位於 inputs/<slug>/,HyperFrames 專案生成於 videos/<slug>/,共享的視覺參考則位於工作區根目錄(references/visual-style/overall/)。

script.txt 格式:僅包含方括號內情緒標籤的一行(例如 [excited]、[curious]、[playfully])用於設定其後旁白區塊的表達方式,直到遇到下一個標籤。空行僅為提高可讀性而用以分隔區塊,不表示停頓。範例:

[excited]
Adik-adik, pernah nggak sih kalian melihat jerapah?

[curious]
Wah, lehernya panjang sekali, ya!

標籤規則:

  • 一個標籤適用於其後的整個旁白區塊。用它來驅動場景節奏、角色表情、步調和視覺重點。
  • 切勿朗讀、加上字幕或渲染顯示這些標籤。在產生畫面上文字前,請先將其移除。
  • 嚴格保持標籤原樣。如果配音是由 ElevenLabs 生成的,這些標籤本身就是表達指令;請勿將其標準化或創造新的標籤。
  • 無法識別的標籤仍然是表達提示;請保留它們而非丟棄。

時間來源,優先順序如下:

  1. 如果使用者也提供了同一音訊的字詞/片段時間戳匯出(ElevenLabs JSON),請使用它;這是選項,非必要。
  2. 否則,從 vo.mp3 推導字詞級時間:將提供的音訊與 script.txt 文字進行轉錄/對齊(例如 ElevenLabs Scribe 字詞時間戳,或 TTS 生成音訊時回傳的時間戳載荷)。
  3. 如果缺少 vo.mp3,請索取。除非使用者要求,否則不要合成替代配音。

開始動畫製作前:

  1. 檢查每個腳本區塊是否對應到音訊中的一段時間,並且時間來源涵蓋了 vo.mp3 的完整時長,包括任何初始偏移或暫停。
  2. 確認腳本文字與提供的音訊相符。請不要編輯旁白。如果文字、音訊和時間點衝突,請解釋不符之處並要求提供修正後的檔案。
  3. 使用情緒標籤區塊(以及若有提供時間戳匯出時的片段邊界)作為故事節拍和場景變換的依據。使用字詞時間戳來製作字幕、強調重點和微小的視覺提示。將單詞組合成有意義的短語,而不是讓每個單詞都成為一個單獨的場景。

建立 2D 視覺風格

每個場景的預設風格關鍵字:

2D 平面,以白色背景為主搭配淡色草稿線條。僅主體和文字使用全彩。

在設計場景前,請一同檢視 references/visual-style/overall/ 中所有可用的圖片。將它們視為此專案視覺識別的唯一來源。提取一份簡潔的風格指南,涵蓋:

  • 調色盤、飽和度、對比度、照明和發光;
  • 造型語言、線條粗細、紋理和細節密度;
  • 角色比例、表情和重複出現的設計特徵;
  • 構圖以及平面 2D 藝術如何暗示深度;
  • 排版、文字動畫、步調、轉場和視覺元素。

對每個場景和新素材套用統一的風格指南。如果參考資料有衝突,請遵循最常出現或最近被核准的方向;僅在衝突會實質改變結果時才提出詢問。保持結果為 2D:使用圖層、視差、重疊、縮放、陰影和漸層來表現深度。除非使用者要求,否則不要將其變成 3D 模型或 3D 渲染風格。

HyperFrames 製作流程

  1. 使用 HyperFrames 作為動畫和渲染框架。在使用者當前的視訊專案資料夾中工作,並保留其素材和參考資料。
  2. 圍繞已批准的旁白、情緒標籤區塊和字詞時間點來規劃場景。保持旁白不變;將視覺動作和字幕與音訊時間軸對齊。將音樂和音效放在暫停處或不會掩蓋語音的音量等級。
  3. 使用實際的 vo.mp3、script.txt 和視覺參考建立一個簡短的 2D 測試場景。預覽它,並檢查風格一致性、可讀性以及在語音開始、暫停、轉場和結尾處的同步性。
  4. 根據預覽結果進行有針對性的修改,然後將已核准的視覺語言擴展到整個影片。在測試場景被審查之前,不要建立完整的動畫。
  5. 從專案資料夾執行 HyperFrames 預覽(npx hyperframes preview)。它會打開基於瀏覽器的 HyperFrames Studio 並熱重載檔案變更。(獨立的桌面 Studio 應用程式對此 CLI 工作流程是可選的)。
  6. 使用當前的 HyperFrames CLI 工作流程將核准的專案渲染為 MP4 格式。報告輸出路徑和任何製作上的限制。不要將預覽說成是最終渲染的影片。

如果有的話,請使用已安裝的 HyperFrames 編寫說明。如果缺少設定或依賴項,請解釋確切的缺失步驟。未經使用者授權,請勿安裝軟體或更改全域設定。

開始新影片

從工作區根目錄生成 HyperFrames 專案,而不是手動搭建;每個影片一個專案。

python tools/new-video.py <slug>                    # 搭建 + 轉錄 + 區塊對應
python tools/new-video.py <slug> --force            # 重建已存在的 videos/<slug>
python tools/new-video.py <slug> --no-transcribe    # 僅搭建

它會讀取 inputs/<slug>/(vo.mp3 + script.txt)並寫入 videos/<slug>/,然後為每個帶標籤的區塊輸出一行,包含絕對和相對的開始時間/時長。完整佈局、輸出和生成後步驟請參閱 references/multi-video.md。

音效

音效位於旁白之下,絕不能覆蓋它。在每個視覺重點(元素出現、切換、關鍵台詞、揭露)上放置一個音效 — 而不是每個字幕都放。在提示之間保留靜默。

  • 預設方式:透過 media-use 技能(Openverse,或該技能中 audio/assets/sfx/ 內捆綁的 21 個檔案庫)取得 CC0/CC BY 音效。當有現成音效可匹配時,切勿自行生成。
  • 自訂方式:使用 Python(numpy + 標準庫 wave,44.1 kHz 單聲道 16-bit,峰值歸一化 0.7,帶種子噪音)合成一個風格一致的音效系列。pop、boing、whoosh、chime、stamp 和 sparkle 的配方在 references/sfx.md 中。
  • 將每個提示作為一個計時的 <audio> 元素放置在根合成上:唯一的 id、以絕對秒為單位的 data-start、等於檔案長度的 data-duration、0.22–0.38 的 data-volume,以及一個不與其他可聽片段重疊的 data-track-index。
  • 渲染前,npm run check 必須報告 0 個錯誤,且沒有 clip_ends_past_root_duration 或 duplicate_audio_track 警告。

範圍

此技能從提供的媒體素材建立動畫;它通常不建立或修改旁白。如果使用者僅要求故事板或視覺計畫,請根據相同的音訊和 script.txt 提供這些內容,而不要撰寫腳本。如果使用者明確要求編寫腳本,請處理該獨立請求,並在生成新配音或替換現有音訊之前獲得核准。

相關技能