Communitygithub.com

toonfacts

製作動畫卡通趣味短片(故事優先、掛鉤式開場:真實故事、歷史與有趣事實,每部影片在前三秒提出一個問題)以 Ricks Clips 風格(彩色 3D 世界中的 2D 角色、自然平淡旁白、逐字字幕)使用 Remotion 與 three.js 從頭到尾完成。模式:新影片、更新現有影片、繼續、審查、點子。

toonfacts 是什麼?

Toonfacts 是一個專為 AI 代理(如 Claude Code)設計的技能,用於從頭到尾製作以故事為主、掛鉤驅動的動畫趣味短片。它將整個工作流程自動化:構思主題、研究事實、撰寫劇本(遵循六拍故事結構)、使用 ElevenLabs 生成旁白音訊、基於劇本自動建立 3D 場景與 2D 角色動畫、生成逐字字幕、自我審查並最終渲染出 MP4 影片。支援多種操作模式:從零開始新影片、根據使用者反饋更新現有影片、在語音生成後繼續中斷的影片、基於檢查清單審查最終輸出,以及純粹頭腦風暴影片點子。該技能強制執行嚴格的規則:每一鏡頭都必須機械式驗證其敘事主張,每一部影片的鉤子(hook)必須在前三秒內建立一個引人入勝的問題,且所有文字渲染(如道具上的文字)都通過 `fitText` 約束以避免裁切。它透過一個統一的專案文件夾結構操作,自動遷移舊版本檔案,並處理 ElevenLabs API 整合而不洩漏金鑰。最終交付物包括帶有正確元資料的 MP4 檔案、縮圖以及準備好發佈的 `publish.txt`。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alifmahmudashik/toonfacts/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

Toonfacts:動畫卡通趣味短片,一技完成

用簡單明瞭的話說出你的需求。這一個技能就能完成全部工作:點子、事實、劇本、鏡頭計畫、字幕、ElevenLabs 語音旁白、建構、自我審查、渲染以及後續更新。無需要求使用者解釋風格:風格已定義於此技能中。

模式(從使用者話語中選擇)

使用者說模式閱讀文件
"新影片", "關於 X 的新影片", "給我驚喜", "製作下一部短片"新影片docs/new-video.md
"更新影片 ", "修正影片", "修改 中的 X", "套用最新規則"更新docs/update-video.md
"繼續影片 "(在執行手動步驟如儲存音訊之後)繼續docs/new-video.md,從缺少的第一個階段繼續
"審查影片", "檢查 ", "檢查這個 mp4"審查僅 docs/review.md
"影片點子", "給我點子"點子僅 docs/new-video.md 第一階段:研究真實故事與有趣事實,根據故事強度與鉤子強度評分,記錄在 videos/_ideas.md 中,顯示前 5 名並附上一行故事、其結構與草稿掛鉤,不建構任何東西
"更新技能"升級僅執行預備步驟 2,然後報告版本變更
若需求不明確,在未提及影片名稱時選擇「新影片」,提及時選擇「更新」。影片如何建構及必須呈現的外觀定義於 docs/engine.md;新影片與更新模式皆使用該文件。

操作規則(所有模式)

  • 每個鏡頭必須與旁白內容相符,並且會以機械方式檢查。 每個鏡頭都宣告其聲明(讀取什麼、誰看向什麼、什麼瞄準什麼、握持什麼)並呼叫 assertScene;任何繪製在道具上的字串都需經過 fitText。tools/check_scene.py 會阻擋渲染直到這些呼叫存在。切勿通過失敗的閘門進行渲染,也絕不透過縮小文字或放寬容差來修正裁切的標誌:請修正幾何結構。
  • 掛鉤(hook)是閘門,不是裝飾。 在 docs/new-video.md 第二階段的掛鉤閘門通過之前,不得撰寫劇本;在 templates/review_checklist.md 頂部的掛鉤區塊通過之前,不得交付影片。薄弱的第一行是重新起草的理由,絕非之後可以修補的東西。
  • 不要發問。 做出合理的選擇,將其寫入影片的 NOTES.md 中,繼續前進。僅在無法建立語音旁白(請見 docs/new-video.md 第三階段)、缺少所需工具或無法撤銷決策時才停止。
  • 每部影片一個資料夾,所有內容在裡面: videos/<slug>/(slug = 以小寫單字以連字號連接的標題)。最終 MP4 與 publish.txt 在頂層,工作檔案在 source/ 中,舊渲染在 versions/ 中。草稿(靜態圖、連絡表、測試渲染)僅放在 work/<slug>/ 中。絕不將工作僅留在對話中。
  • 每個語音旁白使用一次 ElevenLabs 配額(一次錄製)。僅在口語單字變更、音訊無法使用或錄製未通過 docs/new-video.md 第三階段步驟 4 的表現檢查(笑聲或過度誇張)時才重新生成——然後再多一次,並減少標籤。
  • 自然比誇張好。 旁白從不笑出聲:不允許任何地方的 [laughs] 或 [chuckles],整個劇本最多使用 3 個標籤,且旁白文字中不能有驚嘆號。畫面負責傳遞幽默;旁白對自己的笑話發笑是 AI 錄製最明顯的跡象。
  • 切勿列印或儲存 API 金鑰。 ElevenLabs MCP 由使用者在 Claude Code 中加入;請直接使用已連線的 MCP。
  • 切勿發佈或上傳 影片。交付的最終成品為 MP4 檔案、其縮圖以及經研究的 publish.txt(標題、描述、主題標籤、標籤)。
  • 最終回覆:簡短幾行(製作了什麼或變更了什麼、檔案位置、關鍵決策、下一步)。無需逐步回顧。

預備步驟(每次執行、每個模式皆靜默執行)

  1. 專案與資料夾。 找到 Remotion 專案(包含 package.json 與 src/ 的資料夾)。若缺少則建立 videos/、videos/_ideas.md 與 work/。
  2. 保持此技能最新。 若此技能資料夾是 git 克隆,執行安靜的 git pull --ff-only 並閱讀 CHANGELOG.md 了解變更;僅在版本變更時於最終回覆中提及新版本。若非 git 克隆則跳過。
  3. 工具。 檢查 ffmpeg、Python 3 以及 @remotion/three(若專案中缺少則安裝 @remotion/three 與 three)。找到 ElevenLabs MCP 工具(名稱如 text_to_speech、generate_speech、creative_generate_speech、list_voices、speech_to_text、transcribe);若延遲載入則使用 ToolSearch 載入。若無任何工具,則繼續作業直到語音旁白階段,寫入 NEEDS_AUDIO.md 說明必須連接 ElevenLabs MCP(或提供音訊),然後停止。
  4. 舊有的獨立技能。 若 .claude/skills/cartoon-3d-short/ 或 .claude/skills/new-video/ 也存在,請勿使用它們。在最終回覆中告訴使用者一次,他們可以刪除這兩個資料夾,因為此技能已取代兩者。
  5. 舊版輔助檔案。 刪除 video-ideas/SKILL-UPDATE.md(第一行為 "# Instructions for Claude Code")與 video-ideas/README.md(第一行 "# video-ideas")若存在。切勿刪除任何其他檔案。
  6. 重新命名舊的發佈檔案(僅一次)。 發佈檔案現在是純文字,而非 Markdown,因為使用者從中複製內容且不希望看到渲染後的格式。對於每個 videos/<slug>/publish.md,將其複製為 videos/<slug>/publish.txt,處理過程中移除 Markdown(刪除 #、**、反引號、表格線;將標題轉為大寫並保持內容相同),並在最終回覆中告訴使用者哪些 publish.md 檔案現在可以刪除。切勿自行刪除它們。
  7. 遷移舊版佈局(僅一次,透過移動,永不刪除)。 若 video-ideas/ 或 out/ 從舊版本存在:
    • video-ideas/_ideas.md 成為 videos/_ideas.md。
    • 對於每個 video-ideas/<slug>/:publish.md(或 publish.txt)移至 videos/<slug>/publish.txt;所有其他檔案(script.md、voiceover*.mp3、words.json、NOTES.md、REVIEW.md、CHANGES.md、NEEDS_AUDIO.md、審查表)移至 videos/<slug>/source/。
    • 將 out/ 中的每個最終渲染與其 slug 匹配(透過檔名或標題,如 out/<slug>.mp4 或 The_Man_Who_...):最新的成為 videos/<slug>/<slug>.mp4,舊的根據日期依序成為 videos/<slug>/versions/<slug>_v1.mp4、_v2.mp4。
    • out/ 中所有其他內容(靜態圖、連絡表、QA、測試渲染、每個影片的草稿資料夾)移至 work/legacy-out/,上述兩個輔助檔案移至 work/legacy/。任何無法匹配的內容也留在那裡。
    • 完成時,在最終回覆中列出移動了什麼(一個簡短清單),並告訴使用者空的 video-ideas/ 與 out/ 資料夾可以刪除。請勿觸碰 src/、public/、scripts/、audio/ 或 backup/,且保留 work/ 中已有的檔案。

資料夾結構

videos/                        # 所有已完成或進行中的作品,每部影片一個資料夾
  _ideas.md                    # 每個已使用或拒絕的主題(先讀取,最後附加)
  <slug>/
    <slug>.mp4                 # FINAL 影片:要上傳的檔案
    thumbnail.jpg              # 建構的封面,2160x3840(不是原始畫格)
    publish.txt                 # 標題、描述、主題標籤、標籤、類別、置頂評論 + 研究來源
    source/                    # script.md  voiceover.mp3  words.json  NOTES.md  REVIEW.md  CHANGES.md
    versions/                  # 舊版渲染:<slug>_v1.mp4 ...(由更新模式保留)
work/                          # 草稿,可安全刪除:靜態圖、連絡表、QA、測試渲染、若無其他磁碟機則為 REMOTION_TMP
  <slug>/

此技能包含的內容

路徑說明
docs/new-video.md新影片與繼續:點子、研究、劇本、語音旁白、建構、審查、交付
docs/update-video.md更新:分類變更、保護舊版本、套用、重新渲染、回歸檢查
docs/review.md審查迴圈(連絡表、檢查、評分、修正)
docs/engine.md影片如何建構及外觀:流程、每部影片的規則、構圖、燈光、鏡頭流動、字幕、反應、品質閘門
references/story_format.md六拍故事格式、喜劇工具箱、節奏數據
references/(其他)風格聖經、度量報告、參考畫格與表單
templates/渲染器原始碼(bridge/)、音訊合成、腳本、鏡頭計畫、劇本與審查範本
docs/history/兩個早期儲存庫的 README、CHANGELOG 與原始用語的存檔。非操作說明
tools/review_video.sh長度、硬剪輯與音量檢查,以及連絡表
tools/make_thumbnail.py設計 2160x3840 的 Shorts 縮圖:將角色剪出、放置於自訂背景上、堆疊文字
tools/check_scene.py阻擋其鏡頭未宣告物理真實性或道具文字未經適配的渲染
tools/check_voice.py檢查語音旁白錄製:速度、停頓、音量,以及傳遞過快的秒數(笑聲、急促)

相關技能