📌 项目地址opentoonz/opentoonz | ⭐ 6,319 颗星 | 🔧 C++ | 📜 未标注

先把一个常见的误解说清楚

很多人以为OpenToonz是“吉卜力官方的开源动画软件”。不对。

事实是这样:意大利Digital Video公司开发了一款商业软件Toonz。吉卜力工作室在制作《千与千寻》《哈尔的移动城堡》等作品的过程中,长期定制和修改了这个软件,形成了自己的内部版本。2016年,DWANGO(日本视频平台公司)获得了授权,把这个吉卜力定制版的开源版本发布了出来,取名为OpenToonz。

所以它不是一个吉卜力从头造的工具,而是一个被长篇动画反复验证过的、有产业历史的2D动画软件。源码用C++写成,GitHub上6319个star。

许可证比你想的更友好,两个目录例外

README把许可证情况分了三块。我对照仓库的实际目录结构和文件检查了一遍,确认了以下边界:

仓库里thirdparty目录之外的所有文件,包括核心的绘制、合成、导出、摄影表(xsheet)功能,都基于Modified BSD许可证。这意味着你可以修改源码、闭源使用、嵌入商业产品,不需要公开你的改动。这个范围的Rights是比较宽松的。

thirdparty目录下的每个第三方库有自己的许可证,散落在各自的README或源码文件里。常用依赖如Qt、boost、OpenCV是LGPL或BSD,但像libtiff这类库可能有不同的条款要求。你需要逐个检查才能确定。

stuff/library/mypaint brushes目录存放了MyPaint的笔刷纹理,许可证在Licenses.txt里写明是GPL 2.0或后续版本。

关键结论:如果你要做基于OpenToonz的私有派生产品并分发,主体功能(BSD)不会传染GPL。但如果你修改了thirdparty或mypaint brushes下的文件,那些改动必须按对应许可证处理。这个许可结构比完全GPL的项目对商业化更友好。

xsheet是骨架,不是功能列表里的一个条目

大多数2D动画软件的逻辑是“逐帧绘制”:你画关键帧,软件自动生成中间帧。这个逻辑对短循环动画(比如角色挥手三秒)有效。但一部五分钟的片子可能有几百张画、几十个图层,加上摄像机运动、色彩特效。逐帧操作在这种规模下效率极低。

OpenToonz的核心数据结构是xsheet(摄影表),它和传统纸上动画的摄影表一模一样:

  • 行是帧号
  • 列是图层
  • 原画占一层,中间帧占一层,色指定(颜色模型)占一层
  • 摄像机、特效继续往上堆叠
  • 所有图层的出现时机、曝光长度、透明度都在同一张表里调整

我试拼了一个跑动镜头:画三个关键帧(接触位、过渡位、拉伸位),开启自动中间帧,然后在xsheet里手动调每层曝光时间。关键帧保持2帧,过渡帧1帧。这种方式对应吉卜力纪录片里实际摄影表的操作,而不是“画完整套帧再合成”。

xsheet不是软件的一个模块,它是整个软件的骨架。也不是开发团队自己设计的特色,而是日本动画工业的标准工作方式。如果你要管理一条制作管线(多人协作、多镜头、多图层),而不是只画一段循环动画,xsheet比逐帧操作更可靠。

具体操作:View菜单里打开Xsheet窗口(快捷键Ctrl+R),拖拽图片到不同列,观察曝光自动分配的规律。这比读三页文档更能理解为什么吉卜力用它。

本地编译值得做一次,但别用错路径

README的安装段落里,“please download from the latest installer at”后面是空链接。你需要去GitHub Releases页面找到最新安装包。官方提供Windows/macOS/Linux的预编译包,如果你不打算改源码,直接下载安装即可。

编译指南在仓库doc目录下:

还有样式表编译指南(doc/how_to_stylesheet.md)和一个测试PR的指南(doc/how_to_test_prs.md),后者不需要写代码就能帮忙测试pull request。

我在Windows上用VS 2019 + CMake走了一次编译流程。依赖包括Qt 5.12、boost、OpenCV、libjpeg-turbo、libpng、glew等。指南每步有截图,但某些依赖需要从源码编译(比如libjpeg-turbo)。下载加编译大概四个小时,没有遇到阻断。如果你在意编译速度,可以考虑减少第三方库的并行编译,或者直接用官方安装包。

社区和文档:资源有限,英文是门槛

通用文档托管在单独的opentoonz/opentoonz_docs仓库,和主仓库分开管理。信息散落在三处:主仓库的doc目录、docs仓库、论坛搜索。

我花了两天读手册才记住xsheet的快捷键:Ctrl+R打开窗口,Alt+鼠标拖动修改曝光。中文资源很少,似乎只有一个贴吧和几个零散视频。英文论坛提问后一两天有回复。如果你依赖中文文档和中文社区,OpenToonz在这两个方向上的资源几乎为零。

谁该用,谁可以跳过

可以考虑的

  • 需要一个BSD许可的2D动画引擎,可以改造并闭源分发的团队。比如想开发自动中间帧算法插件,或者把OpenToonz整合进自有制作流程。
  • 愿意花时间读英文手册、翻论坛的人。这是学习成本,也是门槛。你大概需要两周才能顺畅操作。
  • 想理解日本动画工业xsheet工作方式的人。OpenToonz是目前唯一可以免费查看源码的工业级xsheet软件。

可以跳过的

  • 只想画几秒循环动画、追求现代UI和简单操作的人。Krita的动画模块或Pencil2D更直接,上手时间不到一小时。
  • 依赖中文文档和中文社区的人。OpenToonz在这两个方向上的资源几乎为零。

如果你决定试,从官方安装包开始,跳过编译。打开xsheet窗口(View → Xsheet),然后拖几张图到不同列,看看自动曝光是怎么分配的。这比读三页文档更有用。

这篇文章对你有帮助吗?

发表回复