/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 步:构建前先提问
除非请求已经明确说明,否则在一条消息中一起提问,如果有一个提问工具的话就使用它。跳过任何已经回答的内容。如果没有人回答,使用默认值并说明。
- 风格: 2D 还是 3D?默认 2D。两者使用相同的外观。3D 增加了围绕场景的真实摄像机运动。
- 时长: 多长?默认 30 秒。如果有 MP3,配音设置时长。
- 配音: 是或否?如果附加了 MP3,跳过此项。如果是,他们提供 MP3 和其脚本文本,或者让你为 ElevenLabs 编写脚本并返回 MP3。不需要 SRT。
- 音效: 是或否?默认是。
- 背景音乐: 是或否?默认否。如果是,如果有他们上传的音轨则使用它,否则使用代码生成的音乐背景。
- 分镜: 你想先看分镜板吗?除非请求已经说明,否则总是问这个。如果没有人回答,跳过它。
不要假设音乐、音效或配音。安静的房间氛围不是音乐。
第 3 步:设置
python3 SKILL/scripts/doctor.py
python3 SKILL/scripts/new_film.py film # 添加 --3d 用于 3D
doctor.py 会安装任何缺失的东西。如果 Chromium 根本无法运行,请转到“如果无法渲染”。
然后按顺序阅读:
references/style-bible.md:外观和不可打破的规则。references/production.md:快速路径和已知陷阱。references/engine.md:工具包,以便重复使用而不是重绘。references/film-craft.md:无声或短片的叙事和镜头。
相关时也阅读:references/script-playbook.md 用于编写脚本,references/voiceover.md 用于 MP3,references/sound.md 用于混音,references/symbolic-beats.md 用于大约一分钟或更长的影片,references/3d.md 用于 3D。
第 4 步:规划影片
在任何绘图代码之前编写这些,因为在代码内部进行规划会产生幻灯片,而不是影片:
- 一位分心的观众能理解的一句话。
- 一个节拍表,每个节拍都有一个动作、一种感觉、一个摄像头和一种声音。
- 一个世界: 每个角色和道具的固定位置列表。每个镜头只是该世界上的一个摄像机。
- 一个带有剪辑帧的镜头列表,而不是秒。目标为每 30 秒 8-11 个镜头,并包括一个展示地理环境的广角镜头。
- 缩略图时刻,如果要求了包,以便它作为一个真实场景存在。
如果要求了分镜板,在渲染之前按照第 5 步中的“分镜板”进行操作。
第 5 步:构建
- 替换
film/film.js,保留引擎文件。从 starter film 中的模式开始。 - 在最繁忙的时刻检查静态帧,并查看图像:
python3 SKILL/scripts/stills.py film sheet.jpg 1 4.5 9 ...。通常需要两轮。 - 分镜板,如果要求的话。 运行
python3 SKILL/scripts/storyboard.py film。它会写入film/storyboard.jpg,每个镜头一个编号预览,由与最终影片相同的代码绘制。向用户展示一个表格,每行一个镜头(镜头、时间、发生了什么、摄像机、声音),并展示或发送图像。如果这里无法展示图像,则发送文件,或者只提供表格并说明。然后停止并等待。根据他们的要求更改影片,如果变化很大则重新运行分镜板,并且只有在他们批准后才进行渲染。 - 编辑
film/audio_mix.py的标记块以匹配声音简介。 - 使用一个命令进行渲染、混音、连接和审计:
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。
关于原创性的规则
用户分享的参考视频、标题、缩略图或文字记录仅用于一般模式:长度、措辞、结构、节奏。永远不要复制或保存他人作品中的任何具体内容,并且永远不要重复使用前提、角色、情节、台词或外观。每部影片都有自己的故事。