Communitygithub.com

Ting7770/stickman

將主題轉化為電影級火柴人動畫 MP4 影片,完全透過程式碼生成,同時產出 ElevenLabs 旁白腳本、YouTube 標題與縮圖提示。

stickman 是什麼?

這個技能可以將任何主題轉化為一部完整的火柴人動畫電影,完全透過程式碼渲染,無需任何付費工具或 AI 圖片/影片生成服務。它支援 Claude Code、Cursor 或任何 Claude 可以執行程式碼的平台,包括 Claude 免費方案。技能會產出 MP4 影片、旁白腳本(可選 ElevenLabs)、YouTube 標題與縮圖提示。其工作流程高度結構化:首先釐清使用者的需求(完整套件或單一項目),然後執行環境檢查、閱讀風格指南與參考資料,接著規劃劇本、步驟與鏡頭表,最後渲染、混音、合併並檢查成果。技能內建了從參考影片中學習一般模式但禁止複製具體內容的原創性規則。如果無法直接渲染,它會提供替代方案,例如輸出一個 HTML 播放器來錄製 WebM 檔案,或者提供腳本、標題與縮圖提示等無需渲染的素材。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ting7770/claude-video-skills/tree/HEAD/stickman

在你喜歡的 AI 中提問

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

說明文件

/stickman

將一個主題轉化為完全由程式碼渲染完成的火柴人電影:平面 2D 角色、暮色調色板、電影風格的鏡頭運動與真實音效。這個技能涵蓋四種輸出:影片、旁白腳本、YouTube 標題以及縮圖提示。

它可以在任何 Claude 能夠執行程式碼的地方運作,包括 Claude 免費方案。無需付費工具,也不使用任何 AI 圖片或影片工具。ElevenLabs 是選用項目,僅用於旁白。

以下所有內容均相對於此技能所屬的資料夾(即包含此檔案的資料夾)。請在首次使用時找到其絕對路徑,並在每個腳本中使用該路徑。在 Claude Code 中,它為 ${CLAUDE_SKILL_DIR}。在下列指令中稱之為 SKILL。請使用 python3,在 Windows 上使用 python。

步驟 1:釐清需求的內容

使用者可能想要完整套件,或僅需要其中一部分。只執行被要求的項目:

請求執行
故事點子執行底下的「故事點子」,然後停止
製作影片步驟 2-6
撰寫旁白腳本閱讀 references/script-playbook.md,交付腳本,然後停止
標題或縮圖閱讀 references/packaging-playbook.md,交付配對,然後停止
完整套件先腳本、再影片、最後標題與縮圖提示

故事點子

如果尚未指定長度,請先詢問影片應多長。然後提供 5 個點子,並加以編號,以便使用者可以透過編號選擇。每個點子應包含一個簡短名稱、一句描述發生什麼事的情節,以及結局。每個點子都需符合該長度:20 秒以下表示單一角色和一個簡單轉折。點子必須易於使用 references/engine.md 中的內容來製作動畫,且每個點子都必須是原創的。稍後,「製作點子 3」即指該點子。

步驟 2:在開始建構前先詢問

除非請求中已清楚說明,否則請在一則訊息中一起詢問這些問題,如果有的話,請使用提問工具。跳過任何已經回答過的項目。如果沒有人可以回應,請使用預設值並說明。

  1. 風格: 2D 或 3D?預設 2D。兩者使用相同的外觀。3D 會加入圍繞場景的真實鏡頭移動。
  2. 長度: 多長?預設 30 秒。如果有 MP3,旁白會決定長度。
  3. 旁白: 是或否?如果已附加 MP3,則跳過此項。如果是,使用者需提供 MP3 及其腳本文字,或要求你為 ElevenLabs 撰寫腳本並回傳 MP3。不需要 SRT。
  4. 音效: 是或否?預設是。
  5. 背景音樂: 是或否?預設否。如果是,如果有上傳的曲目則使用它,否則使用程式碼製作的音樂背景。
  6. 故事板: 你想先看看故事板嗎?除非請求中已指定,否則務必詢問此項。如果沒有人可以回答,則跳過。

不要假設音樂、音效或旁白。安靜的房間環境音不是音樂。

步驟 3:設定

python3 SKILL/scripts/doctor.py
python3 SKILL/scripts/new_film.py film        # 加入 --3d 以使用 3D

doctor.py 會安裝任何缺少的套件。如果 Chromium 完全無法執行,請前往「如果無法渲染」。

然後按順序閱讀:

  1. references/style-bible.md:外觀與絕不違反的規則。
  2. references/production.md:快速路徑與已知陷阱。
  3. references/engine.md:工具包,以便重複使用而非重新繪製。
  4. references/film-craft.md:無對白或短片的敘事與鏡頭。

此外,在相關時閱讀:references/script-playbook.md 以撰寫腳本、references/voiceover.md 以處理 MP3、references/sound.md 以進行混音、references/symbolic-beats.md 用於約一分鐘或更長的影片、references/3d.md 用於 3D。

步驟 4:規劃影片

在編寫任何繪圖程式碼之前先完成這些,因為在程式碼內規劃會產生幻燈片,而非影片:

  1. 一句讓分心的觀眾也能理解的話。
  2. 一個節拍表,每個節拍包含動作、感受、鏡頭與音效。
  3. 一個世界: 所有角色和道具的固定位置清單。每個鏡頭只是該世界上的攝影機。
  4. 一個鏡頭清單,使用影格數而非秒數。目標是每 30 秒 8-11 個鏡頭,並包含一個展示地理環境的廣角鏡頭。
  5. 如果被要求製作套件,則需指定縮圖時刻,以便其作為真實場景存在。

如果被要求提供故事板,請在渲染前遵循步驟 5 中的「故事板」。

步驟 5:建構

  1. 替換 film/film.js,保留引擎檔案。從入門影片中的模式開始。
  2. 在最繁忙的時刻檢查靜止畫面,並檢視圖片:python3 SKILL/scripts/stills.py film sheet.jpg 1 4.5 9 ...。通常需要兩輪。
  3. 故事板(如果被要求)。 執行 python3 SKILL/scripts/storyboard.py film。它會寫入 film/storyboard.jpg,每個鏡頭一個編號預覽,由與最終影片相同的程式碼繪製。向使用者展示一個表格,每行對應一個鏡頭(鏡頭、時間、發生什麼事、攝影機、音效),並展示或發送圖片。如果無法在此處顯示圖片,請發送檔案,或僅提供表格並說明。然後停止並等待。根據使用者的要求修改影片,如果改動很大則重新執行故事板,只有在獲得批准後才進行渲染。
  4. 編輯 film/audio_mix.py 中標記的區塊以符合音效簡報。
  5. 使用一個指令渲染、混音、合併與審核:
python3 SKILL/scripts/build.py film --out my-film.mp4

如果環境限制指令執行時間,請在背景執行此指令並進行輪詢。再次執行相同指令會從中斷處繼續,因為每個鏡頭都是獨立的檔案。修正後,使用 --shots 3 7 僅重新處理那些鏡頭,或使用 --audio-only 重新混音。

步驟 6:檢查,然後交付

build.py 會以審核結果結束。修正每個 ISSUE,或說明為何某個被標記的時刻是預期的。然後檢視 film/contact_sheet.jpg,它來自編碼後的檔案。請用肉眼檢查這些項目,因為審核無法做到:

  • 臉部表情應傳達預期的情緒,眉毛不應意外地顯得生氣。
  • 手部應接觸到所持物品,且沒有東西越過臉部。
  • 每次行走時手臂應以正確方式彎曲。
  • 門應先打開,然後角色再走進去。
  • 角色在每個鏡頭中與物體的距離保持一致。
  • 任何地方都沒有裝飾性圓圈。

交付 MP4 並附上簡短說明。坦白告知你無法聽到混音效果:你已經測量過,因此使用者應自行聆聽。不要聲稱你沒有執行過的檢查。如果使用者要求標題和縮圖,請從包裝手冊中新增配對。

如果無法渲染

如果無法執行程式碼或沒有瀏覽器,請在可行時執行 python3 SKILL/scripts/bundle_player.py film,它會寫入一個 HTML 檔案來播放影片並錄製即時 WebM。如果你完全無法執行任何動作,請說明缺少什麼,並提供腳本、標題和縮圖提示(這些無需渲染)。切勿將 WebM 重新命名為 MP4。

原創性規則

使用者分享的參考影片、標題、縮圖或逐字稿僅用於一般模式:長度、措辭、結構、節奏。切勿複製或儲存他人作品中的任何具體內容,也切勿重複使用前提、角色、情節、台詞或外觀。每部影片都應有自己的故事。

相關技能