Community程式設計與開發github.com

stickman-animation-studio

根據圖片參考,建立流暢的 2D 與 3D 火柴人動畫,並輸出可供 YouTube 使用的 MP4 影片。

stickman-animation-studio 是什麼?

這是一個專門用於製作火柴人動畫的 AI 技能,支援 2D 與 3D 兩種工作流程。它能根據使用者提供的參考圖片,建立完整的、可編輯的動畫專案,並最終渲染成 YouTube 適用的 MP4 影片。此技能強調流暢的動作、清晰的敘事、一致的角色設計與可靠的渲染。在開始製作前,它會優先檢查參考圖片、專案檔案與可用的軟體環境(如 Blender、FFmpeg),並根據實際情況選擇合適的實作方式(例如 2D 使用 HTML5 Canvas 或 Python,3D 使用 Blender Python API)。動畫製作過程包含詳細的動作規劃,確保每個動作都有其目的,並透過腳本進行品質驗證,最後輸出高品質的 MP4 影片與完整的專案原始碼。

相容平台✓Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add https://github.com/eddolintang-eng/stickman-3d-animation-skill/tree/HEAD/.claude/skills/stickman-animation-studio

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

name: stickman-animation-studio description: Build smooth 2D and 3D stickman animations from image references and export finished YouTube-ready MP4 videos. Use when the user asks to create, animate, render, or improve stickman animation projects. Stickman Animation Studio — 2D & 3D MP4

目的

建立完整、可編輯的火柴人動畫專案,並渲染成 YouTube 適用的 MP4 影片。支援 2D 與 3D 工作流程。優先考慮流暢的動作、清晰的敘事、一致的角色設計、場景連貫性以及可靠的渲染。

此技能會建立動畫程式碼與專案檔案。它不會假設一張靜態圖片能自動變成一個完整的角色。首先,檢查參考圖片,然後選擇合適的建構方法。

運作原則

  • 先檢查,再建構。 檢查提供的參考圖片、專案檔案、可用的軟體以及輸出需求。
  • 僅詢問必要的遺漏資訊。 如果使用者未指定格式,預設為 1920×1080,30 fps,橫向 16:9,除非請求明顯是為 Shorts 設計(則使用 1080×1920,30 fps,9:16)。
  • 保留參考。 比對角色的輪廓、頭部形狀、四肢比例、顏色、服裝/配件以及顯著特徵。不要添加與參考衝突的細節。
  • 有目的地動畫。 每個動作都應傳達一個動作或情緒。避免隨機的動作和不必要的鏡頭移動。
  • 使用流暢的時機。 偏好連續曲線、緩和過渡、預備動作、跟隨動作以及受控的停頓。避免突然的位置跳躍。
  • 保持場景連貫性。 保留畫面方向、角色比例、道具、燈光以及相鄰鏡頭之間的空間關係。
  • 渲染並驗證。 在渲染成功且輸出檔案檢查完成之前,不要聲稱 MP4 已完成。
  • 誠實面對限制。 如果缺少 Blender、FFmpeg、字型或其他依賴項,請回報該情況,並提供確切的設定步驟,而不是假裝渲染已發生。

工作流程

第一階段 — 理解請求

確定:

  • 動畫模式:2D、3D 或兩者兼具。
  • 來源:圖片參考、現有專案或文字描述。
  • 場景/動作與情緒基調。
  • 持續時間與長寬比。
  • 輸出:MP4、預覽、可編輯專案或全部。
  • 是否需要旁白、字幕、音效或音樂。

如果缺少詳細資訊,請使用這些預設值:

  • YouTube 長影片:16:9,1920×1080,30 fps。
  • YouTube Shorts:9:16,1080×1920,30 fps。
  • 視訊編碼器:H.264;音訊編碼器:有音訊時使用 AAC。
  • 影格率:固定 30 fps。
  • 背景:使用使用者的參考或一個簡單的、適合場景的背景。

第二階段 — 檢查參考圖片

當提供圖片時:

  1. 開啟並檢查所有相關圖片。
  2. 識別主要角色、輪廓、頭部/身體比例、四肢長度、顏色、配件與視覺風格。
  3. 識別可見的姿勢、面向方向、攝影機角度與場景元素。
  4. 在專案中記錄一份簡潔的角色規格,例如 character_design.md。
  5. 如果參考只是一個單一姿勢,請將其視為設計參考,而非完整的動畫骨架。
  6. 對於 2D,建立乾淨的向量形狀或分層的透明素材,以保留設計。
  7. 對於 3D,建立一個由參考引導的簡單網格/骨架。如果可用,使用正面/側面參考;不要像它們可見一樣憑空發明隱藏的細節。

第三階段 — 選擇管道

2D 管道

偏好實作:

  • 使用 JavaScript 的 HTML5 Canvas,用於程序化/向量動畫,或
  • 使用 Python 與合適的 2D 繪圖庫進行逐格渲染。

選擇能夠可靠產生請求結果的最簡單管道。在有用的情況下,將角色部位分開:頭部、軀幹、上/下臂、手掌、上/下肢以及腳掌。在關節處使用樞紐點。

動畫需求:

  • 使用固定的時間步長或確定性的影格取樣,以便相同的影格編號始終產生相同的姿勢。
  • 使用平滑的緩動函數來插值位置、旋轉與縮放。
  • 使用關節旋轉,而不是獨立移動每個肢體端點。
  • 僅在次要動作有助於支援主要動作時,才添加微妙的次要動作。
  • 除非風格要求,否則避免彈性 overshoot。
  • 保持線條寬度、關節外觀與比例的一致性。

對於 Canvas 實作:

  • 僅將 requestAnimationFrame 用於互動式預覽。
  • 對於最終輸出,透過時間戳記/影格索引來渲染確定性的影格。
  • 將影格匯出為圖片序列,然後使用 FFmpeg 對其進行編碼。不要依賴即時螢幕錄製來保證最終品質。

3D 管道

偏好實作:

  • 使用 Blender Python API 進行場景建立、骨架綁定、動畫、攝影機、燈光與渲染。
  • 使用一個擁有合理骨骼樞紐點的簡易骨架,用於頭部、軀幹、上/下臂與上/下肢。
  • 僅在能夠改善腳/手放置時使用 IK;否則使用明確的 FK 關鍵影格。
  • 保持材質與幾何形狀簡單,除非使用者要求詳細的 3D 風格。

動畫需求:

  • 使用 Blender 關鍵影格與貝茲曲線插值來實現平滑移動。
  • 刻意設定控制柄類型;避免 overshoot 或無意的晃動。
  • 對於走路、跑步、跳躍、轉身與撿起物體等動作,使用預備動作、接觸、跟隨動作與穩定。
  • 在接觸期間保持固定的腳部穩定,以實務上可行的方式防止腳部滑動。
  • 檢查關節彎曲、穿模、地面接觸與輪廓可讀性。
  • 在連續鏡頭中使用穩定的攝影機與一致的燈光。

第四階段 — 規劃動作

在編寫程式碼之前,建立一個簡短的動作計劃:

  1. 起始姿勢。
  2. 主要動作。
  3. 關鍵姿勢與大約時間點。
  4. 接觸時間點(腳接觸地面、手接觸物體、落地)。
  5. 次要動作(頭部轉動、手臂跟隨、身體穩定)。
  6. 結束姿勢與轉場到下一個鏡頭。

使用姿勢分解,而不是一個大型動作。例如,跳躍可能包含準備、起跳、空中姿勢、落地與恢復。確切的時間安排必須符合請求的持續時間與基調。

第五階段 — 流暢度與品質控制

將這些檢查應用於每個場景:

時機與插值

  • 避免位置、旋轉或縮放的突然變化。
  • 為起始與停止使用緩和過渡。
  • 僅對應保持恆定速度的運動使用線性插值。
  • 保持動畫在不同渲染之間具有確定性。
  • 確保為請求的影格率與持續時間提供足夠的影格。

角色一致性

  • 將渲染出來的角色與參考進行比較。
  • 檢查頭部大小、軀幹長度、四肢長度、線條粗細/材質、顏色與配件。
  • 不允許設計在不同鏡頭之間發生偏移。

動作可讀性

  • 確保動作在剪影下是可以理解的。
  • 避免四肢不自然地交叉。
  • 檢查平衡、重量轉移、接觸與間距。
  • 避免過多的動態模糊掩蓋動作。

連貫性

  • 在連接的鏡頭之間匹配角色位置與面向方向。
  • 保留道具位置與場景地理環境。
  • 使用剪輯或有理有據的鏡頭移動;沒有理由就不要移動攝影機。

渲染

  • 首先以較低的解析度渲染一個短預覽。
  • 檢查代表性影格,並在可能的情況下播放預覽以檢查節奏與卡頓。
  • 僅在預覽獲得批准或使用者要求直接進行最終渲染後,才渲染最終輸出。
  • 檢查最終檔案的存在、持續時間、解析度、影格率、視訊編碼器與音訊同步。

第六階段 — 匯出 YouTube 適用的 MP4

當 FFmpeg 可用時使用。典型的 H.264 匯出指令是:

ffmpeg -framerate 30 -i frames/frame_%06d.png \
  -c:v libx264 -pix_fmt yuv420p -r 30 \
  -movflags +faststart output.mp4

如果提供了音訊,請小心地將其混音,並確保其與視訊長度匹配。除非使用者提供或確認他們有使用權限,否則不要添加受版權保護的音樂或音效。

對於 Blender,在需要可靠性時,先將渲染輸出設定為圖片序列,然後使用 FFmpeg 將序列編碼為 MP4。這使得中斷的渲染更容易恢復。

第七階段 — 交付物

在可能的情況下,提供:

  • output.mp4 — 完成的影片。
  • 來源專案/程式碼 — 例如 .blend、.py、.html、.js。
  • character_design.md — 符合參考的角色說明。
  • README.md — 依賴項以及如何重新執行或修改動畫。
  • 預覽渲染或選定的預覽影格。

清楚說明哪些檔案已成功建立。如果渲染無法完成,請提供專案/來源,並清楚說明還需要安裝或執行哪些內容。

建議的專案結構

stickman-project/
├── references/
├── assets/
├── scenes/
├── src/
│   ├── 2d/
│   └── 3d/
├── renders/
│   ├── preview/
│   └── frames/
├── output/
│   └── output.mp4
├── character_design.md
└── README.md

工具與環境檢查

在實作之前,檢查實際安裝了哪些工具:

  • Blender (blender --version)
  • FFmpeg (ffmpeg -version)
  • Python (python --version 或 python3 --version)
  • Node.js(僅在所選的 2D 管道需要時)

不要假設工具已安裝。在僅有 Android 的環境中,說明渲染可能需要雲端電腦、相容的線上環境或配備 Blender/FFmpeg 的電腦。不要暗示行動瀏覽器或 Claude 本身可以在沒有可用的渲染環境的情況下渲染複雜的 3D MP4。

互動風格

  • 用平實的語言解釋技術步驟。
  • 當使用者是初學者時,一次進行一個步驟。
  • 偏好完整、可執行的檔案,而不是零散的程式碼片段。
  • 保持程式碼模組化且可編輯。
  • 當渲染失敗時,診斷實際錯誤並修復它;不要默默地用靜止圖片或模擬圖取代請求的輸出。
  • 不要承諾病毒式傳播、營利批准或演算法表現。

完成檢查清單

在宣告任務完成之前,確認:

  • 使用了正確的 2D/3D 模式。
  • 保留了參考角色的設計。
  • 動作流暢且可讀。
  • 場景連貫性得到維持。
  • 預覽已檢查。
  • MP4 渲染成功。
  • 解析度、長寬比、影格率與持續時間正確。
  • 音訊已同步(如果存在)。
  • 在可能的情況下包含了來源檔案與重新執行說明。

相關技能