Communitygithub.com

z1fex/3D-卡通动画

制作关于任意主题的纵向3D卡通解说短片(30-60秒,9:16)。大头卡通角色向“你”讲述故事;通过眨眼切换绘画面容;摄像机永不停止;每个说出的数字变成一个物理对象;带有编辑风格字幕(粗体无衬线大写 + 品牌红色斜体衬线词,包含字体);顶部显示主题问题;每个动作都有设计好的音效。适用于历史、科学、技术、“运作原理”和“如果……会发生什么”等解说。

3D-卡通动画 是什么?

这是一个完整的、可复用的3D卡通动画制作系统,专为创建简短、快速、温馨的纵向解说视频而设计,适用于任意主题。该技能定义了一套从创意到成片的14步标准化流水线(技能),包括:将主题转化为电影创意、撰写脚本、录制配音与时间码、绘制故事板并获得所有者批准、设置视觉风格与品牌色、构建角色与场景、编排动作与摄像机运动、将每个数字转化为物理对象、添加屏幕文字、设计音效、渲染与质量检查,以及最终审核与复盘。核心创新包括:角色通过眨眼切换表情以口型同步、每个陈述的数字都对应一个物理道具(如计数器、卷尺)、摄像机持续运动并伴有6帧溶解过渡,以及独特的分层字幕系统(顶部主题问题+底部编辑标题)。系统基于Three.js渲染引擎,支持WebGL2,包含完整的工具链(渲染器、配音工具、音效合成器、跳帧扫描仪等),并强调“故事板优先”的工作流程——在所有细节制作前必须获得所有者批准。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/z1fex/3D-Cartoon-Style-Animation-Claude-Skill/tree/HEAD

在你喜欢的 AI 中提问

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

文档

3D 卡通动画

版本 1.0.1(公开版)· 方法和外观已由所有者在第一轮(“引力是如何发现的”,v3,2026年10月26日)批准。1.0.1 使工具可在任何计算机上运行;影片渲染结果与 1.0.0 完全相同。

“所有者” 在这些文件中是指影片为其制作的人:即要求制作影片并批准它的人。

故事板优先(所有者的规则,2026年10月27日)。每部影片及每个新版本,都从所有者框架中的故事板开始。在所有者批准之前(技能 4),不进行配音、详细构建或渲染。

此软件包是一个完整的、可复用的方式,用于制作一种特定类型的视频:简短、快速、温暖的 3D 卡通解说片。它适用于任何主题。工作示例是关于引力的,但方法本身不依赖于此:技能说明了如何找到切入点、分配角色、构建场景、将每个数字转化为对象、为每个手势匹配语音时间、设计音效并检查每一帧,无论下一个主题是什么。

完成视频的形态

  • 格式: 1080×1920,30 fps,30–60 秒。一个解说从句 = 一个镜头(大约每 1.1–1.5 秒一个新画面)。最后一行循环回到第一帧。
  • 故事: 开头 2 秒内提出一个问题的切入点;早期回报;向“你”讲述的利害关系;升级;在三分之二处重新设钩;以一个字面画面呈现的转折;循环结尾。
  • 外观: 柔和的卡通着色、墨水轮廓、温暖的实景灯光、边缘光、景深、光晕和颗粒感。肤色面部;服装、道具和场景上使用品牌色(暗红、珊瑚蓝、干邑色、白砂、灰墨)。真实物体看起来真实(地球是蓝色和绿色的)。
  • 角色: 球形头部、豆形身体、棍状四肢、连指手套手;绘画面部,无口型同步;面部在重音词前通过眨眼切换;静态姿势完全静止。
  • 摄像机: 始终运动,在动作间缓慢移动,在每个句子的第一个单词处加速进入 6 帧溶解过渡。
  • 事实即对象: 每个说出的数字在其出现的帧上成为一个计数器、日历、卷尺、仪表或发光标志。
  • 文字: 开头 2-3 秒顶部显示主题问题(“引力是如何发现的?”),以及在 70% 高度处的编辑标题锁定(一切 在 你知道 之上)。
  • 音效: 语音(ElevenLabs),低于语音 18 LU 的原创音乐音轨,每个可见动作都有安静的拟音音效,每个故事节拍都有重音,总响度母带至 −14 LUFS。

工作流程(每一步都是一个技能)

#步骤技能输出
1将主题转化为电影创意主题转电影角度、切入点、角色、场景、数字列表、全景图
2撰写脚本脚本与留存带来源的 script.md
3录制语音并为每个单词计时配音与计时vo/voice-final.wav, vo/words-final.json
4为每个镜头绘制故事板;所有者批准故事板与镜头计划storyboard.md、故事板静态图、所有者的看板(storyboard/<v>/<Title> - storyboard <n>.png 和 .html)
5设置外观外观、灯光与品牌灯光预设、调色板、每个镜头的镜头设置
6构建角色阵容角色与面部绑定、服装、面部切换
7表演每个从句运动与表演姿势关键帧、搞笑动作、物理效果
8移动摄像机摄像机与过渡每个镜头一个轨道运动
9让数字实体化事实即对象每个数字一个设备
10构建并装饰场景布景与道具使用套件构建并装饰的场景
11编写屏幕文字字幕与标题钩标题锁定、主题问题
12设计音效音效设计与混音提示列表、混音、分轨
13渲染并检查每一帧渲染与质量检查MP4 文件、QA 记录
14与所有者一起审核并学习审核轮次与学习反馈、下一版本、软件包更新

按此顺序执行步骤。步骤 4-11 都在每部影片的一个文件(film.mjs)内完成,因此实际操作中你先规划故事板,然后逐个镜头构建,边构建边渲染静态图。

不可妥协的原则

  1. 故事板优先。 在录制语音、详细构建镜头或渲染任何内容之前,所有者必须批准故事板(技能 4)。
  2. 复制技术,绝不复制内容。 每个角色、场景、标志、笑话和发明的品牌名称都是我们自己的。真实历史人物被绘制成我们自己的卡通角色;绝不绘制受版权保护的角色。
  3. 钩子优先。 开头 2 秒必须提出一个问题;标题问题命名主题。
  4. 每个数字变成一个对象,在其说出的单词处出现。绝不要纯文字覆盖。
  5. 手势在其单词前 4 帧落地;面部在其前 2 帧通过眨眼切换。
  6. 每个可见动作都有音效;无动作则无音效。
  7. 每一帧都被检查(自动构图检查和跳帧扫描,然后肉眼检查),然后才呈现给所有者。
  8. 事实必须有来源。 当来源不一致时,用平实的语言进行模糊化处理。
  9. 所有者的品牌: 肤色面部、五种品牌色加品牌红色,以及包含的字体:字幕使用 TeX Gyre Heros Bold + Instrument Serif Italic,标签使用 Titan One(如果所有者添加,可使用授权字体 Helvetica Bold + Editorial New Italic;说明所用字体)。全部在 brand/ 中。

新主题的快速启动

  1. 复制 templates/new-film/ 到 examples/<topic-slug>/。
  2. 填写 新主题工作表(技能 1)并将脚本(技能 2)写入 film.mjs 中的 SCRIPT。
  3. 使用草稿计时构建镜头并渲染故事板静态图: node recipe/tools/render.mjs examples/<slug>/film.mjs <outDir> --stills shots --qa
  4. 故事板优先。
    • 复制 templates/storyboard.json 到 examples/<slug>/storyboard/v1/storyboard-1.json,为每个镜头包含一个面板及其静态图。
    • 绘制看板:node recipe/tools/storyboard-board.mjs examples/<slug>/storyboard/v1/storyboard-1.json。
    • 将看板交给所有者,并修改它(storyboard-2,……)直到所有者批准。
    • 然后录制语音: ELEVENLABS_API_KEY=… node recipe/tools/voiceover.mjs examples/<slug>(在写入 vo/text.txt 之后)。
  5. 根据实际单词重新计时(自动),渲染视频,然后是音效: node recipe/tools/render.mjs examples/<slug>/film.mjs <out> --video --name silent.mp4 python -I recipe/tools/sound.py examples/<slug> <out>/silent.mp4 <out>/shots.json "<out>/<Title>.mp4"
  6. 检查:构图报告,node recipe/tools/jump-scan.mjs <video> <out>/shots.json,python -I recipe/tools/sfx-levels.py <out> <out>/cue-sheet.txt,然后肉眼检查每一帧(技能 13)。

文件位置

路径内容
skills/14 个步骤技能
recipe/engine/渲染器:core.mjs(外观、后期、字幕、合成、检查)、faces.mjs、character.mjs、props.mjs、props2.mjs、kit.mjs(主题中立的场景和灯光预设)、places.mjs / places2.mjs(示例的装饰场景)、index.html、vendor/three(three.js r186,MIT 许可)、fonts/
recipe/tools/storyboard-board.mjs(所有者的故事板看板,作为 PNG 和可点击的 HTML 页面)、render.mjs、voiceover.mjs、sound.py、jump-scan.mjs、sfx-levels.py、paths.mjs(FFmpeg、Chrome 和 Playwright 的查找路径)
templates/new-film/film.mjs(一个主题中立的启动器,基于草稿计时运行)和工作表
examples/how-gravity-was-found/已批准的影片:源文件、语音、最终视频、故事板、提示表、分轨、早期版本
references/参考研究、所有者的指示、引擎 API、故障目录、反馈历史、引擎说明
brand/已批准影片的颜色和字体:palette.json、palette.css、style-sheet.png(由 recipe/tools/style-sheet.mjs 绘制)
evaluation/交付清单、验收标准、已知限制
preview/style-card.json:风格的名称、外观和格式在一张卡片中,指向示例的海报、影片和故事板

在新机器上设置

工具需要:

  • Node 22+;
  • 带有 ffprobe 的 FFmpeg 6+,并位于 PATH 环境变量中;
  • 带有 NumPy 的 Python 3.10+;
  • Chrome 可用于 WebGL2 的显卡。

在软件包文件夹中,运行 npm install、npx playwright install chromium 和 pip install -r requirements.txt;README 中有完整步骤。如果 FFmpeg 在其他位置,请设置 CARTOON_FFMPEG 环境变量。要使用其他 Chrome 浏览器,请设置 CARTOON_CHROME 环境变量(参见 recipe/tools/paths.mjs)。

影片必须位于软件包文件夹内(examples/<slug>/),因为渲染器会将软件包提供给浏览器。语音需要具有文本转语音权限的 ElevenLabs API 密钥,通过 ELEVENLABS_API_KEY 环境变量传递给命令,切勿写入文件。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能