当大多数人还在和文生视频模型较劲,为了控制角色动作和手绘笔触的一致性反复“抽卡”时,创意编程与 AI Agent 社区已经换了一条赛道:不靠扩散模型“猜”像素,而是让 Claude 直接写代码,“画”出每一帧手绘动画。
近期,围绕 p5.js + p5.brush + Claude Code 的动态手绘视频工作流(以开源项目 ClaudeAnimationBase 及其衍生 Skills 为代表)在开发者与创作者圈子里迅速走红。只需对 Claude 说一句“做一支 15 秒小角色抓蝴蝶的手绘短片”,它就能包揽分镜设计、逐镜头代码绘制、自我审片,最终直接渲染输出一支带有水彩晕染、纸张肌理和抖动墨线的 MP4 视频。
这套组合究竟有什么魔力?它又是如何把冷冰冰的几何代码变成充满呼吸感的手绘动画的?
一、 黄金铁三角:它们各自扮演什么角色?
这套工作流的惊艳效果,源于三个核心组件的天作之合:
- p5.js(创意编程的骨架): 经典的 JavaScript 创意编程库,建立在 HTML5 Canvas 与 WebGL 之上。它负责管理画布、时间轴、物理运动、摄像机推拉以及每一帧的数学计算,让动画里的每一个元素都成为时间的纯函数(Pure function of time)。
- p5.brush(注入灵魂的手绘皮肤): 由 Alejandro Campos Uribe(
@acamposuribe)开发的 p5.js 扩展库。标准的 Canvas 绘图往往带着一股“矢量塑料感”,而p5.brush在 WebGL 底层模拟了真实物理笔触——水彩的多层晕染与出血(bleed)、炭笔的颗粒感、马克笔的叠加、钢笔的墨线以及画布本身的纸张纹理。 - Claude Code(懂视听语言的“总导演”): 以 Claude(尤其是高推理能力的 Opus 模型)为核心的 Coding Agent。相比于让人头秃的 WebGL 坐标转换和参数调试,Claude 极其擅长理解结构化的 API 与空间几何关系。给它一套审美规范与动画法则,它就能直接用代码把分镜翻译成画面。
二、 为什么“代码生成手绘动画”能吊打传统 AI 抽卡?
传统文生视频模型在制作 2D 手绘风格时,常常面临线条闪烁失真、角色跨镜头崩坏、局部细节无法微调等痛点。而 p5.js + p5.brush 的代码渲染管线,精准命中了创作者的核心诉求:
| 对比维度 | 传统文生视频模型(扩散模型) | Claude + p5.js + p5.brush 工作流 |
|---|---|---|
| 风格与角色一致性 | 跨镜头容易“变脸”,水彩肌理容易糊成色块 | 100% 绝对一致,角色结构与笔触参数由代码锁定 |
| 动作与节奏控制 | 很难精准卡点,动作物理逻辑常有违和感 | 精确到毫秒/帧,完美对齐音乐节拍(BPM)与歌词 |
| 可修改性(迭代成本) | 不满意只能改 Prompt 重新抽卡,全凭运气 | 指哪打哪,直接改某一行代码的坐标、颜色或表情参数 |
| 手绘质感(生命力) | 往往是平滑但僵硬的滤镜感 | 原生支持每秒 12 次重绘抖动线(Boiling lines),还原赛璐珞逐帧手绘感 |
三、 揭秘爆火背后的核心机制:如何让代码“有手绘的生命力”?
这股风潮的引爆点,很大程度上归功于开源项目 ClaudeAnimationBase(由 John Heibel 发起)以及社区随后衍生出的各类 painted-animation Claude Skills。拆解这套工作流的底层设计,会发现它之所以好看,是因为把传统手绘动画的“行业黑话”写进了代码规则里:
1. 灵魂抖动线(Boiling Linework)
传统手绘动画为什么看起来“活”?因为画师每一帧重描轮廓时,手部都会有细微的偏差。在这套引擎中,虽然主画面按高帧率流畅运行,但 p5.brush 的外轮廓墨线被设定为每秒重新随机采样绘制 12 次(利用受控的随机数种子 Seed)。这种微小的笔触抖动,瞬间抹去了计算机图形的冰冷感。
2. 把迪士尼动画法则写进 Prompt 指南
在项目的核心大脑 ANIMATION_GUIDE.md 中,并没有堆砌复杂的算法,而是给 Claude 制定了严格的动画师铁律:
- 角色会演戏: 任何动作不能是匀速平移,必须包含预备动作(Anticipation)、反应(Reaction)和回弹(Overshoot/Settle)。
- 拒绝空镜: 每个镜头都必须有事件发生,镜头切换采用极具手绘感的“画笔刷过(Brush-wipe)”转场。
- 情绪组件化: 比如内置的吉祥物角色 Clawd,提前封装了多角度视图与 31 种生动的戏剧化情绪(眼神、嘴型、肢体微动作),Claude 像搭积木一样调用即可完成细腻的表演。
3. “渲染-看片-自检”的闭环(Render-and-Look Loop)
以前让大模型写前端画图,最大的痛点是模型“看不见”自己画了什么,经常出现元素重叠或跑出画布。
现在的 Claude Code 动画工作流配备了基于无头浏览器(Headless Chrome)的渲染脚本 render.mjs。Claude 写完一个镜头的代码后,会先自动渲染出一张缩略图印样(Contact Sheet / Frame Strip),用自己的多模态视觉能力“看一眼”画面构图和动作连贯性,发现穿模或构图不佳就自己改代码,全部审核通过后,才调用 ffmpeg 合成最终的 MP4 视频。
四、 从零体验:如何用 Claude 跑通你的第一支手绘短片?
如果你想立刻上手体验这套丝滑的工作流,只需要准备好本地环境(Node.js、Google Chrome、ffmpeg 以及 Claude Code)。
第一步:拉取开源脚手架或安装 Skill
你可以直接克隆原版基础库:
1 | git clone https://github.com/JohnHeibel/ClaudeAnimationBase.git |
或者在支持插件生态的环境中,直接安装社区封装好的手绘动画 Skill(如 opus-video-skills 中的 painted-animation 或支持配乐对齐的 hiapi-hand-painted-animation-skill)。
第二步:用自然语言向 Claude 下达导演指令
在项目目录下启动 claude,直接输入你的创意:
“先阅读
ANIMATION_GUIDE.md,然后帮我制作一支 15 秒的手绘短片:Clawd 在开满野花的草地上试图抓一只蝴蝶,结果扑了个空摔倒,蝴蝶最后停在了它的鼻尖上。”
第三步:见证全自动片场运转
接下来你只需要喝杯咖啡,看着终端里的 Claude 自动完成以下流水线:
- 编写分镜脚本(Storyboard): 规划 3~4 个镜头的景别、时长与情绪转折。
- 编写镜头代码: 调用
p5.brush的水彩笔刷涂抹背景与天空,用墨线勾勒角色与草地。 - 自检与微调: 生成分镜预览图,自我检查色彩层次与角色位置。
- 渲染输出: 将序列帧编码输出为
out/video.mp4。
测试效果,使用 Claude Code 耗时 33 分钟,模型为 Claude Opus 5.5 xhigh,等价 API 费用 $6.78,成品:
1 | Total cost: $6.78 |
硬件小贴士:
p5.brush的水彩晕染(Watercolour fills)在底层需要进行大量的多边形与混合计算。如果没有独立显卡(使用核显渲染),单帧渲染可能会需要几秒钟。你可以在 Prompt 里提醒 Claude:“在核显上运行,请尽量用平涂加排线(Hatching)替代大面积重度水彩晕染以加快渲染速度。”
五、 写在最后:程序化生成艺术的文艺复兴
p5.js 与 p5.brush 并不是今天才出现的新技术,但 Claude Code 的成熟,彻底抹平了创意编程那道陡峭的数学与 API 门槛。
它向我们展示了一种全新的 AI 创作范式:AI 不一定非要直接接管最终的像素生成;当 AI 成为连接人类审美意图与确定性图形引擎(Procedural Engine)的桥梁时,我们既拥有了大模型的无限创意,又夺回了作为创作者对每一根线条、每一帧节奏的绝对控制权。
无论你是想做独立音乐的卡点歌词 MV、科普视频的趣味手绘插画,还是单纯想把脑海里的小故事变成动画,现在,你的代码编辑器就是最棒的水彩画板。
评论