跳到正文

目录

OpenToonz:开源工业级2D动画制作软件完全指南

OpenToonz:开源工业级 2D 动画制作软件完全指南

学习目标

读完本文后应能:

  1. 说清 OpenToonz 的技术血脉(Toonz → Studio Ghibli Version → OpenToonz),以及这条血脉对它设计取向的影响
  2. 从源码目录读出这个项目的模块分层,判断哪些功能有源码依据、哪些只是营销说法
  3. 对比 OpenToonz 与 Tahoma2D、Synfig Studio、Pencil2D、Krita 的定位差异,按场景选出合适工具
  4. 识别 OpenToonz 的适用边界,判断它是否适合你手头的项目

目录

核心判断

OpenToonz 不是入门级动画工具,而是一套从日本工业动画生产线里走出来的 2D 动画制作系统。它的前身是 Digital Video, S.p.A.(罗马)开发的商业软件 Toonz,经过 Studio Ghibli 多年生产定制,2016 年由 DWANGO 牵头开源。组织方式上,它把传统动画的摄影表(exposure sheet)搬进了数字世界——这一点和主流动画软件的"时间轴"思路根本不同。

如果你的目标是免费、无授权限制、能承接中等规模生产的 2D 动画工具,OpenToonz 是开源生态里最接近"能进电影院"标准的选择;如果你只想找一个五分钟上手的简易工具,它不合适,往后看 Pencil2D 那一类。


项目概览

项目信息
仓库opentoonz/opentoonz
Stars / Forks7774 / 879(2026-09-30 GitHub API)
主要语言C++(约 27.1 MB,占九成),其次是 C(约 1.8 MB)
许可证Modified BSD License(thirdparty 与 stuff/library/mypaint brushes 目录除外)
维护活跃度最新正式版 v1.8.0(2026-06-19);v1.7.1 发布于 2023-05-10;nightly 构建持续更新
官方网站https://opentoonz.github.io/e/index.html
文档opentoonz_docs 独立仓库

关于下载渠道,README 里有一条少见的严肃警告:OpenToonz 的官方站点只有 opentoonz.github.io 和 GitHub 仓库本身,没有其他任何官方镜像或合作站点。从别的域名下载安装包,风险自担。这类声明在开源项目里不常见,也侧面说明冒名下载站确实存在。

贡献方面,RodneyBaker(1228 次提交)和 shun-iwasawa(983 次)领跑,Abel032、motionmonster、manongjohn 紧随其后(2026-09-30 数据)。这是一个国际社区维护的项目,日本动画行业背景的贡献者占了重要位置。


历史沿革:Toonz → Studio Ghibli → OpenToonz

理解 OpenToonz 的脾气,得先看它走过的三段路。

第一段:Toonz(1993,意大利)

Toonz 3.0 由罗马公司 Digital Video S.p.A. 开发,1993 年跑在 SGI 的 IRIX 工作站上,后来与 Softimage 签下独家分销协议,以 “Creative Toonz” 的名字发行,Amblimation 的《Balto》是早期用户之一。Softimage 被微软收购后,Toonz 4.0 移植到 Windows,一度冠名 “Microsoft Toonz”。这段身世解释了它为什么长得不像互联网时代的开源软件——它的骨架是工作站时代为电影产线设计的。

第二段:吉卜力定制(1990 年代末起)

与 Studio Ghibli 合作开发的 Toonz Harlequin 6.0(AWN 在 2009 年有报道)是定制的代表版本。按 OpenToonz 官网的说法,《幽灵公主》时期 Toonz 先用于部分镜头,此后几乎参与吉卜力每部作品的描线上色、色彩设计与数字合成;从《借东西的小人阿莉埃蒂》起,吉卜力转向在公司内部自行定制。这批定制代码后来以 “Toonz Studio Ghibli Version” 之名开源,就是 README 里写明的 OpenToonz 基础。

第三段:开源(2016-03)

2016 年 3 月 19 日,DWANGO 宣布将 Toonz Studio Ghibli Version 以自由软件形式发布(Cartoon Brew 报道);3 月 26 日代码进入 GitHub 仓库。DWANGO 是日本网络公司(niconico 动画的母公司),它没有只是把代码扔出来:开源后持续维护基础版本,开发了特效插件 SDK,其机器学习团队还发布了深度学习风格转换、模拟摄影台入射光等插件。Digital Video 则继续开发销售商业版 Toonz Premium——开源与商业两条线并行至今。

开源之后几个值得记住的节点:

  • 2017 年:Morevna Project 推出定制版;吉卜力系班底 Studio Ponoc 的《玛丽与魔女之花》(2018 年上映)制作期间被多家媒体称为首部主要使用 OpenToonz 制作的院线长片
  • 2021 年:核心贡献者 manongjohn 分叉出易用向分支 Tahoma2D
  • 2023 年 5 月:v1.7 发布,带来 OCA 格式导出、MyPaint 笔刷、浮点线性色彩空间渲染
  • 2026 年 6 月:v1.8.0 发布(间隔三年多的大版本)

架构设计:源码分层与语言分布

目录结构

opentoonz/
├── toonz/               # 源码主目录,实际代码在 toonz/sources/ 下
├── stuff/               # 运行时资源:界面主题、笔刷库、着色器、特效预设
├── thirdparty/          # 第三方依赖(许可独立)
├── plugins/             # 插件接口
├── doc/                 # 构建与开发文档
├── ci-scripts/          # CI 辅助脚本
└── .github/             # GitHub Actions 工作流

toonz/sources/ 下按库分模块。下表只列有源码文件可查的部分:

模块内容代表文件
tnzcore / tnzbase / tnzext分层核心库—
tnztools绘制与编辑工具fullcolorbrushtool.cpp、mypainttoonzbrush.cpp
toonz主应用程序lipsyncpopup.cpp、autolipsyncpopup.cpp、xdtsio.cpp
toonzlib / toonzqt场景数据模型与 Qt 界面组件txshsoundcolumn.h(音频栏数据模型)
stdfx / colorfx标准特效与色彩特效iwa_bloomfx.cpp、iwa_bokeh_advancedfx.cpp(stdfx 下共 306 个文件)
stopmotion定格动画拍摄辅助stopmotion.cpp、canon.cpp(佳能单反 SDK)
tcleanupper / tcomposer / tconverter命令行工具:线稿清理、批量渲染、格式转换—

两个值得一提的模块细节。其一,tnztools/mypainttoonzbrush.cpp 是 MyPaint 笔刷引擎与 Toonz 的桥接层——v1.7 起 OpenToonz 可以直接使用 Gimp/MyPaint 生态的笔刷,配套的笔刷库放在 stuff/library/mypaint brushes/(这也是许可证例外目录之一)。其二,stopmotion/ 模块集成了佳能单反 SDK,外加灯光和串口控制,面向"先拍实拍素材再转手绘"的定格工作流,这在 2D 动画软件里相当少见。

语言分布里容易误读的细节

GitHub 语言统计按代码字节数计:C++ 约 27.1 MB(约 90%),C 约 1.8 MB,之后是 HTML、TeX(文档)、Less、HLSL、CMake、GLSL。前三名没有意外,但后几名的归因容易想错:

  • Less 不是文档站样式。157 KB 的 Less 源码全部在 stuff/config/qss/Default/less/ 下——这是一个 Qt 桌面应用,界面主题用 Less 写,再编译成 Qt 样式表(QSS)。想要自定义软件外观,改的是这批文件,官方文档 doc/how_to_stylesheet.md 专门讲这件事。
  • HLSL 来自特效预设。仓库里没有任何 .hlsl 文件,这 152 KB 字节全部是 stuff/fxs/presets/STD_particlesFx/ 下的 13 个粒子预设(Bubbles、Rain、Fireworks 等),.fx 着色脚本被 GitHub 识别为 HLSL。
  • GLSL 是 GPU 特效着色器。stuff/library/shaders/programs/ 下的 .frag/.vert 文件(caustics、fireball、glitter 等)是老一代 GPU 特效;stdfx/ 里 iwa_ 前缀的特效家族(bloom、bokeh、glare 等,DWANGO 团队贡献)则以 OpenGL 方式实现 GPU 加速。

整体渲染路径仍以 CPU 为主,GPU 只覆盖部分特效;v1.7 加入浮点、线性色彩空间渲染,是渲染管线近年最大的一次升级。


一个镜头的流转:Xsheet 如何串起整条工作流

Xsheet(exposure sheet,摄影表)是 OpenToonz 的心脏。传统动画工作室里,摄影表是一张纸,行是帧,列是图层(角色、背景、音轨各自一栏),摄影助手在上面标出每一帧该拍哪张画。OpenToonz 把这张纸原样搬成了软件主界面——列就是图层,单元格就是"这一帧显示哪张画"。用过传统摄影台的动画师几乎不需要适应;用过 Flash/Animate 的用户则会觉得别扭,因为这里没有他们熟悉的横向时间轴心智模型。

用一个三秒的对话镜头走一遍流程:

  1. 建场景:新建 .tnz 场景文件,Xsheet 里开三栏——角色、背景、配音。
  2. 填画:矢量层画角色(放大不失真,便于调整),位图层放背景和有笔触质感的前景;两种层可以在同一场景混用。
  3. 对口型:把配音 WAV 拖进音频栏(波形直接显示在 Xsheet 上),用 Lipsync 弹窗分析音频生成口型对应表,再自动或手动把口型帧排到角色栏——源码里的 lipsyncpopup.cpp 和 autolipsyncpopup.cpp 干的就是这两步。
  4. 加特效:给场景挂 Iwa 系特效,比如 bloom(辉光)或焦散;特效参数逐帧可调。
  5. 渲染输出:界面内渲染,或用 tcomposer 命令行批量出片——后者正是渲染农场(toonzfarm/ 模块)的入口。
  6. 与产线交换数据:导出/导入 XDTS——这是 Celsys(Clip Studio)和东映动画在用的摄影表交换格式,v1.4 起支持(xdtsio.cpp);导出 OCA(Open Cel Animation)格式则可以交给支持该格式的其他软件接力,v1.7 支持导出,v1.8 补上了导入。

这个流程解释了为什么说 OpenToonz 的设计目标是"产线"而不是"个人画板":每一环都对应传统分工里的一个岗位。


核心能力与源码锚点

矢量与位图混用。 同一场景里矢量角色、位图背景、照片级合成素材可以共存,tnztools 下的 fullcolorbrushtool.cpp(全色位图笔刷)和 mypainttoonzbrush.cpp(MyPaint 引擎桥接)分别服务两种需求。对追求手绘质感的独立创作者,MyPaint 生态的海量笔刷是 v1.7 之后实打实的增量。

有限动画(limited animation)工具链。 日本电视动画大量依赖"只动必要部位"的省帧技法,OpenToonz 的 Xsheet 模型天然适配——静止部分不复用帧即可,嘴型单独一栏逐帧替换。口型分析工具(上文流程第 3 步)与 XDTS 交换格式都是围绕这条产线的。

日式产线对接。 XDTS(Celsys 与东映动画的摄影表格式)和 OCA(开放赛璐璐动画格式)一进一出,让 OpenToonz 能嵌进真实制作管线而不是孤立工具。透明度检查也在 v1.7 按"适合日本动画行业"的标准专门改进过(release notes 原话)。

v1.8(2026-06):间隔三年的大版本。 距离 v1.7.1 三年多,v1.8.0 攒出了长长一份清单:Assistant Tool 辅助作画工具改进、网点纸(Screentones)功能、Sub-Xsheet 导航条、XDTS 读写增强与符号统一、OCA 导入、新特效 Smoother Fx Iwa 与 Lazy Brush Fx、Corner Pin Fx 可拖拽控制点,外加大量笔刷与填充工具的打磨。对一个节奏偏慢的社区项目来说,这份清单足以说明项目还活着,而且活得不算敷衍。


与同类开源项目的定位差异

软件定位强项弱项
OpenToonz摄影表模型的产线级动画系统Xsheet、矢量位图混合、日式产线格式(XDTS/OCA)、吉卜力血统上手门槛高,交互偏老派
Tahoma2DOpenToonz 的易用向分支同源功能,默认配置对新手更友好社区与生态更小
Synfig Studio矢量骨骼补间动画骨骼绑定与自动补间强位图处理弱,思路偏"数字补间"而非"逐帧工艺"
Pencil2D轻量逐帧位图动画极简,上手快功能精简,无摄影表级的图层管理
Krita数字绘画为主,动画为辅绘画体验一流动画只是附带功能,没有产线化的数据组织

一个常见的误读需要纠正:OpenToonz 并不是唯一采用摄影表模型的开源方案——Tahoma2D 就是从它分叉出去的,摄影表同样是一等公民。更准确的说法是:在坚持传统摄影表工艺的软件里,OpenToonz 是血统最正、生产履历最长的一个。如果你的项目需要多人分工(作画、上色、摄影各管一摊),这种数据模型天然匹配;如果是一个人从头做到尾,Synfig 的自动补间可能反而更快。


安装与构建

预编译版(推荐新手)

从官网 https://opentoonz.github.io/e/index.html 下载安装包,官方提供 Windows(64 位)和 macOS 版本;想尝鲜可以到 GitHub Releases 下载 nightly 构建。再次提醒:只从这两个渠道下载,官网首页明确警告没有其他官方镜像。

从源码构建

官方构建文档按平台分开:

主要依赖是 CMake、Qt 和 thirdparty/ 里的若干库;三平台构建都接入了 GitHub Actions(Windows 另有 AppVeyor),.github/workflows/ 下的工作流文件就是现成的构建参考。Linux 用户没有官方安装包,源码构建是主要途径——v1.7 甚至加入了对 Haiku 系统的支持,可见构建体系的覆盖面。想自定义界面外观,参考 doc/how_to_stylesheet.md 编译自己的主题。


适用边界:什么时候该用,什么时候不必用

值得选 OpenToonz 的场景

  • 有传统动画背景(熟悉摄影表、定位销),想把工作流搬到数字平台
  • 制作日式有限动画(TV 动画、短篇),需要口型对位、摄影表管理这类产线工具
  • 需要和采用 XDTS/OCA 格式的其他工具或团队交换数据
  • 预算为零但需要能承接商业生产的工具(Modified BSD 许可对商用友好)

不必选 OpenToonz 的场景

  • 只做轻量逐帧小动画——Pencil2D 十分钟就能上手
  • 主要做骨骼绑定和自动补间——Synfig Studio 更对口
  • 绘画体验优先、动画只是偶尔玩玩——Krita 更合适
  • 需要实时协作、云端同步——OpenToonz 没有这类功能
  • 需要对接 Maya/Houdini 等 3D DCC 管线——集成能力有限

社区与生态

  • 论坛:Google OpenToonz Users Forum,提问与经验交流的主阵地
  • 文档:opentoonz_docs 独立仓库
  • 翻译:通过 Weblate 接受社区翻译,含简体中文
  • CI:AppVeyor(Windows)+ GitHub Actions(Windows/macOS/Linux)
  • Issue 管理:GitHub Issues 活跃(2026-09-30 时 open issues 225 个)
  • 开发规范:仓库里甚至有一份 AI 辅助开发清单(doc/ai_assisted_development_checklist.md),2026 年的开源项目该有的自觉

贡献者结构值得注意:头部是 RodneyBaker 和 shun-iwasawa 两位长跑选手,第二梯队(Abel032、motionmonster、manongjohn 等)也算活跃,但整体核心圈不大——这意味着大功能可以等很久(v1.7 到 v1.8 隔了三年),单点的 bug 修复倒往往很快。


结语:开源生态里的一支"老枪"

OpenToonz 的代码可以追到 1993 年的工作站时代,中途经过吉卜力十几年的生产淬炼,2016 年开源后又跑完了《玛丽与魔女之花》这样的院线项目。它不是概念验证,是被真实生产压过的工具。

如果你在认真考虑用开源工具做 2D 动画生产,OpenToonz 值得第一个看。但也要把丑话说在前面:摄影表的心智模型、偏老派的交互、以三年为周期的版本节奏,都是实打实的门槛。能跨过去的人得到的是一套免费、无授权焦虑、经过电影级生产检验的完整工具链;跨不过去的人用 Pencil2D 或 Krita 反而更开心。工具没有立场,看你的项目长什么样。

自测题

检验对 OpenToonz 的理解程度:

  1. OpenToonz 的技术血脉是什么?这对它的设计取向意味着什么?

    • 参考答案:Toonz(1993,Digital Video)→ Toonz Studio Ghibli Version(吉卜力多年生产定制)→ OpenToonz(2016 年由 DWANGO 牵头开源)。它从工作站时代的电影产线走来,核心是把摄影表工作流数字化,目标是"能进电影院"的生产,而非轻量上手。
  2. Xsheet 是什么?它和主流动画软件的时间轴有什么本质区别?

    • 参考答案:Xsheet 即摄影表(exposure sheet)的数字化,行是帧、列是图层,单元格指定"这一帧显示哪张画"。它对应传统动画摄影台的操作逻辑,而非 Flash/Animate 式的横向时间轴;静止部分靠复用帧表达,天然适配有限动画工艺。
  3. OpenToonz、Tahoma2D、Synfig Studio、Pencil2D、Krita 各自适合什么场景?

    • 参考答案:OpenToonz 适合产线级日式有限动画与 XDTS/OCA 数据交换;Tahoma2D 是其易用向分支,适合想降低门槛的同源用户;Synfig 强在骨骼补间,适合单人矢量动画;Pencil2D 适合轻量逐帧练习;Krita 是绘画优先、动画附带。
  4. OpenToonz 的 GPU 渲染覆盖到哪里?“Less 语言"在这个项目里是干什么的?

    • 参考答案:整体渲染以 CPU 为主,GPU 只覆盖部分特效——stuff/library/shaders/programs/ 的 GLSL 着色器与 stdfx/ 里 iwa_ 前缀特效家族;HLSL 字节则来自粒子特效预设的 .fx 脚本。Less 全部位于 stuff/config/qss/,是 Qt 界面主题的样式源码,编译为 QSS。

练习

练习一:评估 OpenToonz 是否适合你的项目

目标:根据适用边界做出采用判断。

步骤:

  1. 列出你项目的 3 个关键特征(规模、动画类型、团队分工方式)
  2. 对照"值得选/不必选"两份清单,各找出至少 2 条匹配项
  3. 若存在硬性不匹配(如需要实时协作),写出替代方案

通过标准:匹配与风险都有具体条目,替代方案可执行。

练习二:走通一个三秒镜头

目标:把"一个镜头的流转"一节亲手跑一遍。

步骤:

  1. 新建场景,建角色、背景、音频三栏
  2. 导入任意 WAV,用 Lipsync 弹窗生成口型表并排帧
  3. 挂一个 Iwa 特效并渲染输出
  4. 导出 XDTS,再用文本编辑器打开观察其结构

通过标准:完整走完四步,能说出 Xsheet 单元格与输出帧的对应关系。

练习三:从源码目录读功能

目标:练习用源码结构验证功能断言。

步骤:

  1. 在 GitHub 上浏览 toonz/sources/,找到本文提到的 lipsyncpopup.cpp 与 mypainttoonzbrush.cpp
  2. 任选一个 stuff/fxs/presets/STD_particlesFx/ 下的 .fx 预设,打开看其结构
  3. 找出一个本文没提过的模块目录,写出你的职责推测

通过标准:能用文件路径而不是营销页面支撑一个功能判断。

进阶路径

完成本文阅读后,按以下三个阶段深化:

  • 阶段一:安装与界面适应 — 从官网装 v1.8,刻意用 Xsheet(而不是找时间轴替代品)排一个小场景
  • 阶段二:补工艺课 — 阅读 opentoonz_docs 基础教程,理解有限动画与传统摄影表的对应关系
  • 阶段三:做一个短篇 — 完成一部 10–30 秒的短片,用上矢量位图混合、口型对位与至少一个 Iwa 特效,最后导出一次 XDTS/OCA

常见问题

1. OpenToonz 是完全免费的吗?

是。主体代码采用 Modified BSD License,商用、修改、再分发都自由。注意两处例外:thirdparty/ 目录的第三方库各自携带许可,stuff/library/mypaint brushes/ 的笔刷库另有授权文件(Licenses.txt),商用前值得看一眼。

2. OpenToonz 支持哪些平台?

官方安装包覆盖 Windows(64 位)和 macOS,Linux 用户需从源码构建(官方提供构建文档和 CI 脚本参考),v1.7 起还支持 Haiku。下载认准官网 opentoonz.github.io 与 GitHub Releases 两个渠道。

3. OpenToonz 能打开 Adobe Animate 的文件吗?

不能直接打开。OpenToonz 的场景格式是 .tnz,与 Animate 格式互不兼容,素材需要重新组织。跨软件交接主要靠 XDTS(摄影表)和 OCA(赛璐璐序列)这类交换格式,而不是工程文件直通。

4. OpenToonz 有中文界面吗?

有。界面支持包括简体中文在内的多语言,翻译通过 Weblate 平台接受社区贡献。

5. OpenToonz 的社区活跃吗?

中等偏活跃。GitHub 上常年保持两百多个 open issues(2026-09-30 为 225 个),nightly 构建不断,但大版本节奏偏慢——v1.7(2023-05)到 v1.8(2026-06)隔了三年。适合把它当作稳定的产线工具,而不是追新功能的玩具。

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。