Skip to main content

huashu-art-motion

艺术与视频动画:拆解复刻动画;代码画35种艺术风格并让画活;9种解说动画语法,8种可按口播参数渲片段;含口播整片参考代码及框景检查;人用AI生帧;可选已有录音、系统声音与语音复刻,按需配置。

Quellinformationen

Repository
alchaincyf/huashu-art-motion
Letzte Quellaktivität
10. Oktober 2026 um 10:03
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
3.373
Forks
379

huashu-art-motion: Animate art with code

Builds art-history style animations in code: dozens of art-style recipes and explainer animation grammars so frames stay alive—not slideshows—optionally tied to narration.

Examples

Creator correction post links the Skill after it passed 1000 stars within a day of launch.

Uses

Use to recreate an animation, make a named art-style motion piece, or produce explainer/tech/finance-style animated segments from narration.

Prerequisites

Optional voice and image capabilities are configured only when the task needs them; silent animation skips voice setup.

How to use

Choose the task path (recreate, style animation, narration-driven, explainer grammar), then follow the matching references for style recipes and animation grammars.

Limitations

Each scene should actually move; private voice models and credentials stay outside the install; do not invent features beyond the Skill’s documented paths.

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
huashu-art-motion
description
艺术与视频动画:拆解复刻动画;代码画35种艺术风格并让画活;9种解说动画语法,8种可按口播参数渲片段;含口播整片参考代码及框景检查;人用AI生帧;可选已有录音、系统声音与语音复刻,按需配置。
# 艺术动画 ## 先分档:你按哪一档读 - **开阔档**:你是 Claude Opus 5.5 或更强的模型。全文都适用:路由表、窄桥、开阔地;库可以自己组合,渲染器可以自己写;交付同样走 `scripts/deliver.py`,红灯不交付。开工前也建议先写一张镜头表(`references/镜头表模板.md`),lint 可跑可不跑。 - **轨道档**:其它模型,或判断不出自己是谁。只走下面这一条路,先镜头表,再动手;只读这条路点名的文件,其余 reference 先不读: 1. **写镜头表**:照 `references/镜头表模板.md` 写 `<项目>/镜头表.md`。表前先锁画风,三行:画风(一句话,全片只用这一种)、色板(`references/色板.md` 里的一套或 3–6 个色值,不落蓝紫)、角色(无/只出手和背影/帧库 <路径>,先读 `references/角色精细度.md`)。表里每行一镜:时间段|画面里的物(名词)|它在做什么(动词)|镜头(停/快推/横移/砸入/切)|屏上字(≤8 字,可空)|做法。开头 3 秒是一个具体的小场景(一双手或一个物在做一件和题目有关的事),不是标题;全片用一个具体例子贯穿;一镜 2–6 秒;文字主导的镜头 ≤30%;相邻两镜换构图,不换画风。 2. **过 lint**:`uv run <skill>/scripts/storyboard_lint.py <项目>/镜头表.md`(有口播稿加 `--script <项目>/文稿.txt`,查屏上数字和口播是不是同一个数)。有红灯就改镜头表、重跑,红灯没清不许开始写代码。 3. **按镜头表逐镜做**:`cp -R <skill>/scripts/engine <项目>/代码工程`,每一镜出一个 `镜NN.mp4`,所有镜同宽高、同 fps(默认 1920×1080@30)。 - 参数化片段:读 `references/09-视频动画语法.md` 第二节选型表和用到的 `references/动画语法/<语法>.md`「起手必查」,从 `examples/<语法>.json` 抄结构不抄内容,屏上字照镜头表那一格,`uv run --with playwright python <项目>/代码工程/render.py --spec 镜NN.json --out 镜NN.mp4`。**单个参数化片段最多撑 8 秒**,超了拆成几镜。 - scenes:艺术风格画面(梵高、像素……)或片段语法画不出的物,读 `references/风格配方/INDEX.md` 和一张风格卡,写 `scenes/<id>.js` 并登记进 `eras.js`,`render.py --solo <id> --from 0 --to <秒> --fps 30 --no-counter --out 镜NN.mp4`。 - 全片一套画风:所有片段 spec 写同一个 `"theme"`(镜头表色板那一行,写法见 `references/色板.md`),最多 2 种片段语法;scenes 也只用这套色板。每镜加 `--stills 0.5,2 --out 静帧/镜NN` 抽帧,排成一排对着镜头表看:哪一镜像从别的片子里拿来的,就按画风重做。 4. **拼接**:镜与镜硬切,在放 `镜NN.mp4` 的目录里: ```sh for f in 镜*.mp4; do printf "file '%s'\n" "$f"; done > 镜头列表.txt ffmpeg -y -f concat -safe 0 -i 镜头列表.txt -r 30 -c:v libx264 -crf 16 -pix_fmt yuv420p -an 成片.mp4 ``` 有口播再混音:`ffmpeg -i 成片.mp4 -i 口播.wav -map 0:v -map 1:a -c:v copy -c:a aac -shortest 成片_口播.mp4`。要转场就全用 scenes,把各镜按顺序写进 `eras.js` 段落表(段写 `dur` 秒、`transition`),整片模式 `render.py --out 成片.mp4` 一次出片。 5. **qa**:每个片段 `uv run <skill>/scripts/qa.py --spec 镜NN.json --out <项目>/qa/镜NN`;有 scenes 再跑 `qa.py --project <项目>/代码工程 --ids <id,…> --out <项目>/qa/scenes`。再拿抽帧逐条对下面「六种做坏方式」。 6. **交付**:`uv run <skill>/scripts/deliver.py 成片.mp4 --root <项目> --qa <项目>/qa/<跳变最多的那一镜> --out output/`。红灯不交付:脚本不复制成片,照它打印的修法改完重渲、重跑。绿灯、黄灯它复制成片并写 `output/交付说明.md`,时长、门禁、qa、有没有审片由脚本写;你只在「制作说明」段补用了哪些语法和做法、其余各镜的 qa 结论(每镜一行)、黄灯项逐条理由、六种做坏方式自查,事实段不许改。派了独立审片的,先让审片人把结论写进 `<项目>/审片/*.md` 再跑。 ## 你是谁 你同时是这支片子的导演、分镜师、原画师、动画师和剪辑师,画画用的是代码。你对成片的标准:观众看得懂每一镜在讲什么,愿意看下去;用艺术风格时一眼认得出是谁的画,画是活的,不是图片在切换。 ## 最常见的六种做坏方式(开工前、交付前各对一遍) 1. **翻页式 PPT**:固定页眉、页码,要点逐条淡入,每镜匀速慢推,结尾落回一张居中金句卡。→ 去掉页框,一镜一个画面事件,镜头按窄桥第一条的脉冲节奏动;结尾落在主角或主物的一个动作上(放进口袋、合上书、拉远看全貌),字可以写在画里的物上。storyboard_lint 查最后一镜是不是字卡;deliver.py 会量出来:整片几乎没有镜头内快动作就红灯,不出片。 2. **照搬示范**:示范片、样例 spec、风格样片里的构图、角色、素材直接进了成片。→ 只学做法,构图和物按题材重新设计。 3. **没有具体的物**:抽象概念只写成字和图标。→ 镜头表每行写出一个具体的物和它的动作,写不出物的那一行先别做。 4. **死背景、空画面**:大面积纯色或星空底一直不变,只有中间一小块在动;或者整帧只剩纯色、黑场、空景,主角不在画里。→ 主体放大到占画面一半以上,背景跟着内容换,每一镜主角或主物都在画里;图表镜头的底和前后镜头同色系(t3 的 `theme`)。storyboard_lint 查物列是不是空镜、纯色、黑场;film_gate(deliver.py 先跑它)查成片中段连续 0.3 秒以上的空画面,红灯不出片。 5. **有真实素材却用代码去画**。→ 截图、照片、录像、原文直接满幅放,代码只负责解释、标注和运镜。 6. **一眼 AI 味**:蓝紫渐变底、深紫星空底、霓虹青紫光;每镜换一种画风的拼贴(卡通人→暗色代码屏→星空图标→白底柱状图→网页截图);代码画的 Q 版小人和白壳机器人;长了脸的金币、小球、离子。→ 表前锁一种画风、一套色板(`references/色板.md`),所有片段写同一个 `theme`;角色要么 AI 生帧过交付线,要么只出手和背影(`references/角色精细度.md`)。storyboard_lint 查画风锁、色板色值和角色行;deliver.py 量蓝紫底,蓝紫帧占全片 30% 以上红灯,不出片。干净统一但略像幻灯片的片子,胜过花哨的拼贴。 ## 先判断任务 | 用户说的 | 做什么 | 读 | |---|---|---| | 「复刻这个动画」「拆一下这段」 | 拆解 → 机制 → 代码复刻 | 01 → 02 → 04 | | 「做个 XX 风格的动画」「梵高/莫奈/包豪斯那种」 | 先为题材定构图 → 一帧先行 → 渲染器 → 让它活 | 03 → 04 → `风格配方/INDEX.md` 找最近的材料当起点 | | 「用我的口播做一段艺术动画」 | 镜头表 → 定风格 → 世界画布+镜头 → 画面轨 | 06(草案)+ 04;口播的转录与时间轴交给你的视频管线 | | 「配个乐」「卡节奏」 | BPM 网格、动机换乐器、结尾音效序列 | 05 | | 画面里要出现人(用户本人、真人、拟人角色、吉祥物) | AI 生帧+代码合成(B/C 两法),过交付线;没有生图能力就只出手和背影 | 10 + `角色精细度.md` | | 派 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 号(五层机制),只用于这类片子。 ## 可选口播:按需配置 任务需要新配音时,先读[语音能力指南](references/capabilities.md),运行`scripts/capabilities.py status --explain`。已有录音直接沿用;无声动画不启动配置。未选择时只询问当前需要的声音方式,可本次跳过或长期手动启用;用户已明确选择时直接应用。私人音色、参数和凭证引用保存在安装目录外,公共默认不绑定作者声音。 `scripts/koubo.py say/train/voices`保留旧调用,使用同一套配置。仅音频任务不启动画面设计或成片审片。 ## 可选图片:当前工具与现有素材 需要图片时读[图片能力指南](references/images.md)。已有图片直接导入;生成图片按当前会话实际工具和用户许可选择,脚本输出调用计划,Agent执行工具后验收并复制到项目。无图片任务跳过配置;禁止生成时不换供应商绕过。语音和图片分别配置,新增能力不会自动获准。 ## 窄桥:照字面做 - **动在事件上。** 解说类片子用脉冲节奏:停住 → 快推、横移或砸入 → 停住。快推 0.28 秒推近 18–32% 后停;同倍率横移 0.30 秒;砸入 0.17 秒(1.55→0.94→1.0);停多久按口播。砸入的数字和大字落在世界里的物上(手机屏幕、电量条、价签、黑板),不单独起一张纯色底字卡。不用匀速慢推、全员呼吸循环来凑运动。引擎现成:`CAM.track`(镜头动作表)、`MO.slam`(砸入)。艺术风格画面仍要「画一直是活的」:每幕一个主动作+2 个母题循环,自检量帧差(避开转场后 0.35s 的镜头冲击)。 - **有真实素材就让它当主画面。** 截图、照片、录像、原文、产品本身的产出,满幅放,代码负责解释、标注和运镜(`MD.cover` 满幅+焦点推近、`MD.print` 冲印件、`MD.label` 黑底撕边标签;缺图直接报错)。「场景与风格用代码画」只适用于艺术风格画面。人用 AI 生帧、代码合成,见`references/10-角色.md`;代码不画人脸、不画机器人,也不给物加脸(`references/角色精细度.md`)。 - **一片一套画风、一套色板。** 表前锁定的画风和色板管到最后一帧;所有参数化片段写同一个 `theme`,scenes 也只用这几个色。不用蓝紫渐变、深紫星空、霓虹青紫(作者原话:「这种非常ai slop」);用户点名要蓝紫才例外,交付时 `--allow-blue-purple "理由"`。 - **示范只用来理解做法。** 示范片、样例 spec、风格样片里的构图、角色和素材,不许原样放进成片。 - **复刻是学机制,不是逐像素。** 提取场景、运动与转场规律,再用于新题材。 - **三方向硬门**:新的角色诠释或风格方向,先出三个给用户挑,三个方向的构图要不同,不能只换调色。指定了风格也不豁免。 - **确定性**:所有随机用种子,同一时刻渲两次逐像素一致。 - **独立审片**:成片交付前派一个没参与制作的 agent 只看成片挑问题,结论写进 `<项目>/审片/*.md`(deliver.py 只认这里)。 - 角色涉及未成年人(如 17 岁)时,服装一律端庄长款;给生图模型写「短裙」会被审核整张拒绝。 ## 开阔地:当起点,不当配额 `风格配方/` 里 35 张卡(总表 `风格配方/INDEX.md`,分「材料层」和「时代标本」两张表)是实做的参数和坑,不是唯一画法。35 张样片和 `assets/全风格总览.jpg` 用的是同一个房间构图,那是艺术史速通片的机制,不是这些风格的构图;做新题材要为题材重新构图。表里标了每种的当前质量和短板,下一次做到它时先超越短板。你有更好的渲染器就去写,做出来和原作或参考并排给人看。新风格做完,把配方卡补进来。 ## 工程 `scripts/engine/` 是可复制的完整工程(引擎、转场库、绘画库、角色骨架、35 个风格场景、渲染器;YouTube 解说语法的 8 个库、8 支示范 `demos/`、参数化片段 `clip.html`+`clips/`,见 09;长卷穿越片示范 `demos/long_scroll/`,见 11;口播整片参考代码`reference_films/spacex/`需自备角色和音频,见目录README)。开新片:复制到项目的 `代码工程/`,改 `eras.js` 段落表,写 `scenes/<id>.js`。 ```sh 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 # 整片 uv run --with playwright python $E/render.py --spec 片段.json --out 片段.mp4 # 参数化片段 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](https://docs.astral.sh/uv/)、ffmpeg(出片与拆解)、Playwright Chromium(首次要 `uv run --with playwright playwright install chromium`)。 ## 验收 交付前三样,按顺序:①`uv run scripts/qa.py --project <工程>`(参数化片段用 `--spec`;稳定/效率/动感/流畅及文字框景线索;短于 0.35 秒的单调快推、横移记作镜头事件,不算跳变);②派独立 agent 只看成片审片,结论写进 `<项目>/审片/`;③`uv run scripts/deliver.py 成片.mp4 --project <工程>(或 --spec)--out output/`。deliver.py 先过门禁 `film_gate.py`:快速运动帧占比 < 0.035 红灯,不复制成片、非零退出;< 0.06 黄灯。过了才复制成片、写交付说明,时长、门禁各项、最差 30 秒窗口、qa 结果、有没有审片记录都由脚本写,没审片就写「没派审片」;事实段带指纹,`deliver.py --verify` 查得出改动。门禁另外两条:成片中段连续 0.3 秒以上近乎纯色、整帧几乎没有边缘的空画面,红灯并给时间码;蓝紫底画面占全片 30% 以上红灯(题材本身要蓝紫时 `--allow-blue-purple "理由"` 降黄,理由写进交付说明)。门禁只拦这三样,页框、米底小图、前紧后松、每镜换画风的拼贴拦不住,所以抽帧还要对一遍「六种做坏方式」;静止多不是病,脉冲节奏的片子本来就有大段停住,静止类数字别拿来判。浅底无字幕成片再用`uv run --with numpy python scripts/subzone_gate.py 成片.mp4`检查图形进入字幕区;纹理底不适用。经验先看 `07-正面经验.md`。 ## 回流 每做完一支:新风格写进 `风格配方/` 并更新 INDEX,**做对了的事写进 `07-正面经验.md`(做法+证据+为什么+何时用)**,新坑写进对应 reference 的「踩过的坑」,`CHANGELOG.md` 记一行。实际与这里不符时以实际为准,然后把这里改对。 这份 skill 起于一次真实复刻(2026-10-04,X 用户 Tak @cherry_mx_reds 的 15 秒「Art History Speedrun」,16 个艺术时代),后来扩展到解说动画语法和口播整片。
Auf GitHub ansehen