Communitygithub.com

Ting7770/stickman

通过代码生成电影级的火柴人动画故事视频(MP4),同时提供 ElevenLabs 配音脚本、YouTube 标题和缩略图提示。用于 /stickman 或任何火柴人动画请求。

stickman 是什么?

该技能可以将任意主题转化为完全由代码生成的成品火柴人动画电影:平面 2D 角色、黄昏色调、电影级运镜和真实音效。输出包括四个部分:视频、配音脚本、YouTube 标题和缩略图提示。它能够在 Claude 运行代码的任何地方工作,包括 Claude 免费计划,无需付费工具,也不使用 AI 图像或视频工具。ElevenLabs 是可选的,仅用于配音。技能遵循一系列步骤:理解用户需求、询问细节(风格、长度、配音、音效、背景音乐和分镜)、设置环境、规划影片(包括镜头清单和节拍表)、构建(编写代码、检查静态帧、渲染、混音和审查),最后交付并检查问题。即使无法渲染,它也能生成一个自包含的 HTML 播放器或仅提供脚本和元数据。

兼容平台✓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,保留引擎文件。从 starter film 中的模式开始。
  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。

关于原创性的规则

用户分享的参考视频、标题、缩略图或文字记录仅用于一般模式:长度、措辞、结构、节奏。永远不要复制或保存他人作品中的任何具体内容,并且永远不要重复使用前提、角色、情节、台词或外观。每部影片都有自己的故事。

相关技能