code-poem-film Skill 技能
说一首诗,做一条水墨手绘 2D 动画的 Agent Skill
技能简介
code-poem-film 是一个开源的 Agent Skill(技能文件遵循通用 SKILL.md 格式,主要在 Claude Code 上开发与实测),把一首古典诗词自动做成 20~80 秒的水墨手绘风格 2D 动画。你只需要说一句"把《静夜思》做成动画",技能就会完成分镜编排、逐帧绘制、诗词朗诵、配乐合成与成片导出的全流程。画面里一个红点落在宣纸上、长出眼睛,把这首诗走一遍;每句诗在题签上随朗诵逐字写出,最后一句由红点提笔书写,念到哪个字写到哪个字,结尾落成一枚红印章。整条片子的每一帧都由代码在画布上现场绘制,配乐与音效用 numpy 合成,全程不使用任何现成图片、视频素材或曲库音乐。
核心功能
- 诗词转分镜:确认题材后先"空跑"一遍,把每句诗的画面与红点的走位、动作编排成完整时间表,再进入正式制作
- 逐帧代码绘制:山水、人物剪影、战船、巨浪等场景全部由引擎函数实时绘制,画法库内置 kit-1 至 kit-4 四组图鉴可直接复用
- 朗诵逐字对位:短诗整首合成一次,长篇逐句合成后按句切开对齐画面;多音字通过同音字替换保证读音正确,末句"边念边写"按实际音频逐字对时
- 智能配乐混音:按诗句情绪编配乐与音效,人声出现时自动压低背景音乐,响度、频段、人声比由脚本量化检查
- 抓帧质检与导出:渲染前抓帧自查红点是否在画面、有无白帧或报错帧,出片后交付成片、10MB 内上传版、720p 小版、封面与每秒一帧总览图
安装配置
- 运行环境:Claude Code 或其他支持加载 SKILL.md 格式的编程助手(Codex 等工具理论兼容,克隆到对应 skills 目录即可)
- 依赖软件:Node.js 20+(调用 HyperFrames 渲染)、Python 3.10+(numpy、Pillow)、ffmpeg
- 安装命令:
git clone https://github.com/bangbuilds/code-poem-film ~/.claude/skills/code-poem-film,随后pip install numpy pillow - 语音可选:默认 provider=auto,装了 edge-tts 就用它,否则 macOS 用系统 say;也可接入自有云端音色命令或 Python 插件
使用步骤
- 新建工程:
python3 scripts/new_project.py qingzhou-demo --example qingzhou,或直接对助手说"把《登鹳雀楼》做成动画" - 合成朗诵:
film.py voice按标题、作者、诗句切分合成(不需朗诵时加--dry) - 构建与检查:
film.py build生成笔画数据、时间表与配乐混音,film.py qa抓帧检查 - 渲染出片:
film.py render完成渲染、核对与打包,约 1 分钟出片,交付成片与配套素材
适用场景
- 古诗词教学:语文课堂把诗词变成可反复观看的动画,帮助学生理解意象与节奏
- 文化内容创作:为公众号、视频号、B 站批量产出水墨风诗词短视频
- 亲子启蒙:家长和孩子一起选诗出片,把背诗变成有画面的体验
- 传统文化活动:诗词大会、汉服活动、博物馆展陈的开场短片与循环播放素材
适用人群
语文与国学教师、中小学教研人员、文化类自媒体创作者、短视频 UP 主、想陪孩子读诗的家长,以及对"代码生成艺术内容"感兴趣的编程爱好者。只要会用 Claude Code 这类助手并能跑命令行,无需动画与视频剪辑经验即可上手。
工作原理
一条片子由四份文件驱动:poem.json(文字)、film/timing.js(何时发生)、film/scenes.js(画什么)、film/score.py(响什么)。引擎读取汉字笔画数据(hanzi-writer-data,源自 Make Me A Hanzi 项目)实现题签与末句的逐字书写,用 HyperFrames 逐帧渲染画布、GSAP 控制时间轴;朗诵时刻、题签、末句书写与总时长都按配音实际长度推算,因此换音色、改语速无需手工重排。项目目前为早期版本,已在 macOS Apple Silicon 上完成两次干净安装实测,回归测试中重生成影片与原片 13 帧抽样 12 帧逐像素一致。
官方链接
GitHub 仓库:https://github.com/bangbuilds/code-poem-film (MIT 协议开源)
评论与建议
登录 后参与评论或提建议