Community编程与开发github.com

火柴人动画工作室

根据图片参考构建流畅的 2D 和 3D 火柴人动画,并导出可在 YouTube 上直接使用的 MP4 视频。当用户要求创建、制作动画、渲染或改进火柴人动画项目时使用。

火柴人动画工作室 是什么?

火柴人动画工作室是一个专业的 AI 智能体技能,专门用于从图片参考生成流畅的 2D 和 3D 火柴人动画,并导出为 YouTube 就绪的 MP4 视频。它适用于 Claude Code、Cursor 等支持技能系统的 AI 编码代理。该技能的核心优势在于其结构化的、基于检查的流程,能够保证角色设计的一致性、动作的清晰度以及可靠的渲染输出。它支持 HTML5 Canvas/JavaScript(用于 2D 矢量动画)和 Blender Python API(用于 3D 动画)两种管线。 技能的主要功能包括:从参考图像中提取角色设计说明,制定详细的动作计划(包含关键姿势和时间点),应用平滑缓动和力学原则(如预期动作、跟随动作),以及使用 FFmpeg 进行确定性帧渲染。它还提供了自动质量检查清单,用于验证时序、角色一致性、场景连贯性和渲染完整性。通过生成项目文件(如 Python 脚本、Blender 文件、角色设计说明),该技能确保动画项目完全可编辑且可重复运行。它还会报告缺失的依赖项(如 Blender 或 FFmpeg),并提供清晰的设置步骤,从而有效避免产生无法使用的输出。

兼容平台✓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 的新对话。

文档

运行平台:Claude Code, Cursor, 以及其他支持技能系统的 AI 编码代理

火柴人动画工作室 — 2D & 3D MP4

目的

创建完整的、可编辑的火柴人动画项目,并可渲染为用于 YouTube 的 MP4 视频。支持 2D 和 3D 工作流程。优先考虑流畅的运动、可读的动作、一致的角色设计、场景的连贯性以及可靠的渲染。

本技能创建动画代码和项目文件。它不会假设静止图像能自动成为完全装配好的角色。首先检查参考图像,然后选择合适的构建方法。

操作原则

  • 先检查再构建。 检查提供的参考图像、项目文件、可用软件和输出需求。
  • 只询问必要缺失的信息。 如果用户未指定格式,默认为 1920×1080,30 fps 横屏 16:9,除非请求明确是 Shorts(则使用 1080×1920,30 fps,9:16)。
  • 保留参考。 匹配角色的轮廓、头部形状、四肢比例、颜色、服装/配饰以及显著特征。不要添加与参考冲突的细节。
  • 有意图地制作动画。 每一个动作都应传达一种动作或情感。避免随机运动和不必要的相机运动。
  • 使用平滑的时序。 优先使用连续曲线、缓动过渡、预期动作、跟随动作和受控停顿。避免突然的位置跳跃。
  • 保持场景连贯。 保留相邻镜头之间的屏幕方向、角色比例、道具、灯光和空间关系。
  • 渲染并验证。 在渲染成功并检查输出文件之前,不要声称 MP4 已完成。
  • 诚实地对待限制。 如果缺少 Blender、FFmpeg、字体或其他依赖项,请报告并给出确切的设置步骤,而不是假装渲染已经发生。

工作流程

阶段 1 — 理解请求

确定:

  • 动画模式:2D、3D 或两者兼有。
  • 来源:图片参考、现有项目或文本描述。
  • 场景/动作和情感基调。
  • 时长和宽高比。
  • 输出:MP4、预览、可编辑项目或全部。
  • 是否请求配音、字幕、音效或音乐。

如果缺少细节,使用以下默认值:

  • YouTube 长视频:16:9,1920×1080,30 fps。
  • YouTube Shorts:9:16,1080×1920,30 fps。
  • 视频编解码器:H.264;音频编解码器:AAC(当有音频时)。
  • 帧率:恒定 30 fps。
  • 背景:使用用户的参考或简单的场景适配背景。

阶段 2 — 检查参考图像

当提供了图像时:

  1. 打开并检查所有相关图像。
  2. 识别主要角色、轮廓、头/身体比例、四肢长度、颜色、配饰和视觉风格。
  3. 识别可见姿势、面向方向、摄像机角度和场景元素。
  4. 在项目中记录简洁的角色规格说明,例如 character_design.md。
  5. 如果参考是单个姿势,则将其视为设计参考,而不是完整的动画绑定。
  6. 对于 2D,创建保留设计的干净矢量形状或分层透明资源。
  7. 对于 3D,创建由参考指导的简单网格/绑定。如果可用,使用正面/侧面参考;不要像可见细节那样凭空捏造隐藏细节。

阶段 3 — 选择管线

2D 管线

首选实现:

  • 使用 JavaScript 的 HTML5 Canvas 进行程序化/矢量动画,或
  • 使用 Python 配合合适的 2D 绘图库进行逐帧渲染。

选择能够可靠产生请求结果的最简单管线。在有用的地方保持角色部件分离:头部、躯干、上/下臂、手、上/下腿和脚。在关节处使用枢轴点。

动画要求:

  • 使用固定的时间步长或确定性的帧采样,以便相同的帧号始终产生相同的姿势。
  • 使用平滑缓动插值位置、旋转和缩放。
  • 使用关节旋转,而不是独立移动每个肢体端点。
  • 仅在支撑动作时添加微妙的次级运动。
  • 除非风格需要,否则避免弹性过冲。
  • 保持线宽、关节外观和比例一致。

对于 Canvas 实现:

  • 仅对交互式预览使用 requestAnimationFrame。
  • 对于最终导出,通过时间戳/帧索引渲染确定性帧。
  • 将帧导出为图像序列,然后使用 FFmpeg 编码。不要依赖实时屏幕录制来保证最终质量。

3D 管线

首选实现:

  • 使用 Blender Python API 进行场景创建、绑定、动画、摄像机、光照和渲染。
  • 使用带有合理骨骼枢轴的简单骨架,用于头部、躯干、上/下臂和上/下腿。
  • 仅在改善脚/手放置时才使用 IK;否则使用清晰的 FK 关键帧。
  • 保持材质和几何体简单,除非用户要求详细的 3D 风格。

动画要求:

  • 使用 Blender 关键帧和贝塞尔插值实现平滑运动。
  • 有意识地设置手柄类型;避免过冲或意外的抖动。
  • 对走、跑、跳、转身和拾取物体等动作使用预期、接触、跟随和稳定。
  • 在可行的情况下,通过保持着地的脚在接触期间稳定来防止脚滑动。
  • 检查关节弯曲、穿透、地面接触和轮廓可读性。
  • 在多个镜头中使用稳定的摄像机和一致的光照。

阶段 4 — 规划运动

在编码之前,创建一个简短的运动计划:

  1. 起始姿势。
  2. 主要动作。
  3. 关键姿势和大致时间戳。
  4. 接触时刻(脚触地,手触物,落地)。
  5. 次级运动(头转动,手臂跟随,身体稳定)。
  6. 结束姿势和过渡到下一个镜头。

使用姿势分解而不是一个大的运动。例如,跳跃可能包括准备、起跳、空中姿势、落地和恢复。确切的时间必须符合请求的时长和基调。

阶段 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。这使得中断的渲染更容易恢复。

阶段 7 — 交付物

在可能的情况下,提供:

  • 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)
  • 仅当所选 2D 管线需要时,才检查 Node.js。

不要假设工具已安装。在仅限 Android 的环境中,说明渲染可能需要云计算机、兼容的在线环境或安装了 Blender/FFmpeg 的计算机。不要暗示移动浏览器或 Claude 本身可以在没有可用的渲染环境的情况下渲染复杂的 3D MP4。

交互风格

  • 用平实的语言解释技术步骤。
  • 当用户是初学者时,一次只处理一个步骤。
  • 优先提供完整的、可运行的文件,而不是零散的代码片段。
  • 保持代码模块化和可编辑。
  • 当渲染失败时,诊断实际错误并修复它;不要用静态图像或模拟图静默替换请求的输出。
  • 不要承诺病毒式传播、变现批准或算法性能。

完成检查清单

在声明任务完成之前,确认:

  • 使用了正确的 2D/3D 模式。
  • 保留了参考角色设计。
  • 运动平滑且可读。
  • 保持了场景连贯性。
  • 检查了预览。
  • MP4 渲染成功。
  • 分辨率、宽高比、帧率和时长正确。
  • 音频已同步(如果存在)。
  • 在可能的情况下包含了源文件和重新运行说明。

相关技能