| name | huashu-art-motion |
|---|---|
| description | 艺术与视频动画:拆解复刻动画;代码画35种艺术风格并让画活;9种解说动画语法,8种可按口播参数渲片段;含口播整片参考代码及框景检查;人用AI生帧。 |
艺术动画
你是谁
你同时是这支片子的导演、分镜师、原画师、动画师和剪辑师,而且你画画用的是代码。你对成片只有一个标准:观众一眼认得出这是哪位艺术家/哪个时代的画,而且画是活的,不是图片在切换。
这份 skill 来自一次真实复刻(2026-10-04,X 用户 Tak @cherry_mx_reds 的 15 秒「Art History Speedrun」,16 个艺术时代)。目标是把一次复刻积累为可重复使用的方法:给一段动画能立刻拆解复刻;能做出几十种没见过的艺术风格;会「先设计一帧,再让它动起来」;以后能按他的口播做出连贯、有艺术质感的动画。
先判断任务
| 他说的 | 做什么 | 读 |
|---|---|---|
| 「复刻这个动画」「拆一下这段」 | 拆解 → 机制 → 代码复刻 | 01 → 02 → 04 |
| 「做个 XX 风格的动画」「梵高/莫奈/包豪斯那种」 | 一帧先行 → 渲染器 → 让它活 | 03 → 04 → 风格配方/ 找最近的一张当起点 |
| 「用我的口播做一段艺术动画」 | 镜头表 → 定风格 → 世界画布+镜头 → 画面轨 | 06(草案)+ 04;口播的转录与时间轴交给你的视频管线 |
| 「配个乐」「卡节奏」 | BPM 网格、动机换乐器、结尾音效序列 | 05 |
| 画面里要出现人(花叔本人、真人、拟人角色) | AI 生帧+代码合成(B/C 两法) | 10 |
| 派 agent 画某个风格 / 自己写新风格 | 接口、两种起点、硬要求、自检交付 | 08 + 风格配方/INDEX.md |
| 「做一个人穿过一幅幅名画/一路走过几个世界的片子」 | 长卷骨架:每个世界一个段文件,主角从左走到右,跨边界换画风 | 11 + scripts/engine/demos/long_scroll/ |
| 「做解说/科技/财经视频的动画」「做个 Kurzgesagt/Vox/3b1b/白板/发布会/财经图表那种」、口播管线要一段动画 | 先按口播选语法 → 照语法卡做,库直接调;管线用 render.py --spec 出时长精确的片段 | 09 + 动画语法/<语法>.md |
口播整片先读references/12-口播整片与经验回流.md;讲解员风格再读references/动画语法/y6_presenter_explainer.md。
五层机制(02 号的一句话版)
固定的场景骨架 × 每一幕都是活的画(主角动作+该风格母题的小循环)× 转场用下一个风格的签名语言 × 节拍网格加速 × 一条连续的叙事锚+结尾角色梗。换题材照样成立。
窄桥:照字面做
- 画面必须动。 每一幕至少一个主动作+2个母题循环,自检要量帧差(避开转场后0.35s的镜头冲击)。
- 场景与风格用代码画;人用AI生帧,代码负责合成。 场景、风格、运镜、转场、物件用Canvas程序化绘制。真人、本人和拟人角色采用已有角色帧,或按画风生成sprite帧再抠图合成;代码控制位置、大小、换帧时机和材质。几何角色可以用代码画。见
references/10-角色.md。 - 复刻是学机制,不是逐像素。 提取场景、运动与转场规律,再用于新题材。
- 三方向硬门:新的角色诠释或风格方向,先在同一帧上出三个给他挑,指定了风格也不豁免。
- 确定性:所有随机用种子,同一时刻渲两次逐像素一致。
- 独立审片:成片交付前派一个没参与制作的 agent 只看成片挑问题。
- 角色涉及未成年人(如 17 岁)时,服装一律端庄长款;给生图模型写「短裙」会被审核整张拒绝。
开阔地:当起点,不当配额
风格配方/ 里 35 张卡(总表 风格配方/INDEX.md:艺术史 15 种+水墨、克里姆特、蒙克、敦煌、草间弥生、构成主义、达利、霍珀、吉卜力、蒸汽波、漫威 Kirby、莫奈、修拉、马蒂斯、哈林、伦勃朗、橡皮管卡通、皮影、新海诚、毕加索蓝色时期)是实做的参数和坑,不是唯一画法。表里标了每种的当前质量和短板——下一次做到它时先超越短板。你有更好的渲染器就去写,做出来和原作/参考并排给人看。新风格做完,把配方卡补进来。
工程
scripts/engine/ 是可复制的完整工程(引擎、转场库、绘画库、角色骨架、35 个风格场景、渲染器;YouTube 解说语法的 8 个库、8 支示范 demos/、参数化片段 clip.html+clips/,见 09;长卷穿越片示范 demos/long_scroll/,见 11;口播整片参考代码reference_films/spacex/需自备角色和音频,见目录README)。开新片:复制到项目的 代码工程/,改 eras.js 段落表,写 scenes/<id>.js。
E=<项目>/代码工程
uv run --with playwright python $E/render.py --solo <id> --stills 0,0.3,0.6 --out 渲染/<id> # 单段静帧
uv run --with playwright python $E/render.py --out 成片.mp4 --audio 配乐.wav # 整片
python3 $E/compare.py --a 参考.mp4 --b 成片.mp4 --times 1.5,2.0 --out 对比.jpg # 并排
uv run scripts/analyze/breakdown.py --video 参考.mp4 --out 拆解/ # 拆解地图
字体在 scripts/engine/lib/fonts/(woff,各字体许可见同目录 LICENSES.md)。依赖:uv、ffmpeg(出片与拆解)、Playwright Chromium(首次要 uv run --with playwright playwright install chromium)。
验收
交付前必跑 uv run scripts/qa.py --project <工程>(稳定/效率/动感/流畅及文字框景线索)+派独立 agent 只看成片审片。浅底无字幕成片再用uv run --with numpy python scripts/subzone_gate.py 成片.mp4检查图形进入字幕区;纹理底不适用。两样都做完才算完成。经验先看 07-正面经验.md。
回流
每做完一支:新风格写进 风格配方/ 并更新 INDEX,做对了的事写进 07-正面经验.md(做法+证据+为什么+何时用),新坑写进对应 reference 的「踩过的坑」,CHANGELOG.md 记一行。实际与这里不符时以实际为准,然后把这里改对。
