Communitygithub.com

SyedBahjat/stickman-shorts

使用 Remotion 和 2D 动画制作和克隆短视频及 YouTube 视频。内置格式为火柴人“你来决定”故事短片(9:16 的 YouTube Shorts、TikTok、Instagram Reels),观众投票选 A 或 B,下一部分跟随获胜路径。同时还能通过分析示例视频的剪辑、节奏、调色、字幕和音效,重建其格式并生成原创内容。

stickman-shorts 是什么?

该技能是一个基于 Remotion 和 React 的 2D 动画视频生成工具,专为创建火柴人“你来决定”互动故事短片而设计。它支持 9:16 竖屏格式(YouTube Shorts、TikTok、Instagram Reels),每部分约 75-90 秒,以第二人称叙事,结尾提供 A/B 选择,下一部分以“大多数人选择了...”开头并跟随获胜路径。除了内置格式,该技能还能根据用户提供的示例视频(如解说、列表、故事叙述、测验、白板动画等)分析其剪辑、节奏、调色、字幕和音效,然后用原创内容重建相同格式。它覆盖了从脚本编写、火柴人角色绑定、场景设计、字幕生成、自然语音 TTS、无版权合成音效和音乐,到最终混音和渲染为竖屏、横屏或正方形的完整工作流程。该技能适用于 Claude Code 等 AI 代理平台,需要 Node 18+、ffmpeg、Python 3 和本地 TTS 引擎等环境依赖。

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

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Stickman Shorts

使用 Remotion 和 SVG React 组件制作的平面 2D 动画视频,支持任意宽高比。

  • 内置格式: 竖屏(1080×1920,30 fps)火柴人“你来决定”故事短片。每部分约 75–90 秒, 以第二人称(“你…”)叙述,结尾提供一个 A/B 选择供观众投票;下一部分以 “大多数人选择了…”开头,并跟随获胜路径。
  • 其他格式: 给一个示例视频,它就会重建该格式(布局、节奏、字幕、音效) 并用原创内容填充。请参见 references/CLONE-ANY-VIDEO.md 和 references/FORMATS.md。

0. 找到或设置引擎

引擎是来自 https://github.com/SyedBahjat/claude-stickman-shorts 的 Remotion 项目。

  • 如果工作目录包含 src/kit/Stick.tsx,则您已在引擎中。直接使用。
  • 否则询问在哪里创建项目,然后执行: git clone https://github.com/SyedBahjat/claude-stickman-shorts <文件夹> && cd <文件夹> && npm install
  • 需要 Node 18+、PATH 中的 ffmpeg、Python 3 并执行 pip install -r requirements.txt(numpy, scipy)用于音效和 参考分析器,以及一个 TTS(参见 references/AUDIO.md;VoiceStudio 免费且本地运行)。
  • 冒烟测试:npx remotion still src/index.ts FreshCo-P2B out/test.png --frame=300,然后查看生成的 PNG。

1. 选择任务

用户想要…执行操作
根据想法创建新系列提出 3 个梗概 → 在 stories/<story>/script.md 中编写整个分支季节(参见 references/STORY.md)→ 构建第 1 部分
下一部分(“人们选择了 B”)阅读 stories/<story>/script.md + continuity.md,为该路径构建第 N 部分,以 MostOfYouSaid 开头
复制示例视频(任意类型)references/CLONE-ANY-VIDEO.md:分析它,分类它,匹配其外观和音效,编写原创内容
制作其他类型的视频(解说、Top-5、测验、聊天故事、横屏…)references/FORMATS.md → 从 src/templates/Starter.tsx 开始(--props='{"format":"horizontal"}')
更改声音/音效references/AUDIO.md

2. 构建(详细信息见 references/WORKFLOW.md)

  1. 镜头表 + 台词 TSV → 用户批准脚本和 A/B 选项。
  2. 语音:node scripts/voiceover.mjs <名称> "<台词>" --voice <ID> --trim --loud -16(或 --from <wav>)。 转录每一句台词以检查文字。
  3. 复制 src/stories/ 中最近似的一集(从 src/stories/freshco/FreshCoP2B.tsx 开始),替换 时间线(LEN、SHOTS、CAPS、SFX),在 src/Root.tsx 中注册,执行 npm run typecheck。
  4. 在每一个关键节拍处渲染静帧,并渲染每个运动镜头的帧条。在渲染之前查看它们。
  5. npx remotion render src/index.ts <Id> out/raw.mp4 --concurrency=6,然后使用 loudnorm 标准化到 −17 LUFS。
  6. 交付 MP4 以及标题、描述(包含 A/B 问题和“评论 A 或 B”)和标签, 用于 YouTube Shorts / TikTok / Reels。

3. 最重要的规则(针对本工作室风格;克隆格式则遵循参考)

  • 外观: 严格遵循 references/STYLE.md:柔和的暗色调、墨水轮廓、点状眼睛、无嘴巴, 身份 = 身体颜色 + 一个配饰,观众角色 YOU 始终佩戴红色臂章。
  • 故事: 第二人称、短句、编号规则、一次保留的揭秘、一个真正困难的 A/B 选择。
  • 动作: 由距离驱动的平静直立行走(无脚部滑动),手通过 reach 目标触及物体(目标会滑入), 道具使用 holdF/holdB,硬切搭配缓慢推近。
  • 语音: 绝不拉伸或压缩静音段(听起来会破碎),绝不使用“广播”效果, 角色声音必须明显区别于旁白。
  • 混音: 语音 −16 LUFS,背景音使用 makeDuck 闪避,最终 −17 LUFS。所有音效/音乐在 scripts/audio/ 中合成,因此不会被版权索赔。
  • 报告前: 查看静帧和帧条;绝不在用户机器上自动播放音频。
  • 不要将“点赞和订阅”请求嵌入视频;将它们放在描述中。

参考资料

  • references/STYLE.md:调色板、角色、场景、HUD、字幕、卡片、镜头
  • references/STORY.md:部分结构、写作规则、镜头表、分支
  • references/AUDIO.md:TTS 选项、人声语音、音效列表、混音电平
  • references/WORKFLOW.md:代码布局、角色绑定 API、运动规则、渲染 + 最终检查清单
  • references/CLONE-ANY-VIDEO.md:重建任意示例视频的格式
  • references/FORMATS.md:12 种常见视频格式的节拍结构和构建说明

相关技能