OpenToonz 开源 2D 动画软件上手指南:从零构建到画出第一帧
【免费下载链接】opentoonzOpenToonz - An open-source full-featured 2D animation creation software项目地址: https://gitcode.com/GitHub_Trending/op/opentoonz
想做一部手绘风短片,预算却只够买几盒铅笔?OpenToonz 是一套免费的开源 2D 动画软件,脱胎于吉卜力工作室实际用于生产的 Toonz Studio,逐帧绘制、整理、描线涂色、特效合成一条线俱全。这篇指南带你把它从源码跑起来,并把它改成自己习惯的样子。
谁适合用它
如果你习惯传统手绘逐帧(每一格画面都亲手画出来)的工作方式,它会很对路:从原画、整理台到描线台、涂色台,整个流程都按纸稿动画的逻辑设计,还带场记板与分镜素材库(stuff/library/clapperboards/里就有现成的板面模板)。
如果你是独立创作者,不想为商业软件授权费纠结,可以直接用:绘制、矢量笔刷、粒子与运动特效(toonz/sources/stdfx/下有 200 多个效果的实现)、合成输出都在一个程序里,中文界面也开箱可用(toonz/sources/translations/内置 12 种语言)。
如果你顺带想了解动画软件怎么实现,它比大多数闭源工具友好:代码结构分得清楚,toonz/sources/按模块组织,plugins/目录里还有模糊、几何变换两个示例 C++ 插件可以直接读,当教材正合适。
先跑起来:从源码构建的三步
第 1 步,准备依赖(约 15~30 分钟)。以 Linux 为例,doc/how_to_build_linux.md 列清了清单:CMake 3.10+、Qt 5.15+、Boost、SuperLU、LibMyPaint、OpenCV 等,Debian/Ubuntu 上一条命令即可装齐:
sudo apt-get install build-essential git cmake qtbase5-dev libboost-all-dev libsuperlu-dev libmypaint-dev libopencv-dev libturbojpeg-dev liblzo2-dev libpng-devWindows 和 macOS 分别看 doc/how_to_build_win.md 与 doc/how_to_build_macosx.md。第三方依赖源码(zlib、libtiff、libjpeg-turbo 等)都放在thirdparty/下,系统缺什么可以对照补。
第 2 步,构建(30~60 分钟,视核心数而定)。克隆仓库后先做一件事:把stuff/资源目录复制到用户配置区,程序运行时会从这里加载主题、笔刷与布局:
git clone https://gitcode.com/GitHub_Trending/op/opentoonz mkdir -p ~/.config/OpenToonz && cp -r opentoonz/stuff ~/.config/OpenToonz/ cd opentoonz/toonz && mkdir build && cd build cmake ../sources && make -j$(nproc)文档自己也提醒了"build takes a lot of time, be patient",第一次构建等就是了。
第 3 步,验证启动(几分钟)。回到toonz/build/目录执行下面两条命令,看到主界面弹出即构建成功:
export LD_LIBRARY_PATH=./lib/opentoonz:$LD_LIBRARY_PATH ./bin/OpenToonz不想每次手动跑,还可以sudo make install装到/opt/opentoonz。
读懂项目骨架:这几个目录最常打交道
| 路径 | 作用 | 你什么时候会用到它 |
|---|---|---|
stuff/ | 资源与默认配置:主题、笔刷、安全区、布局模板 | 首次运行、任何个性化调整 |
toonz/sources/ | 核心源码,按 common、image、stdfx 等模块分 | 想读代码或改功能时 |
toonz/sources/stdfx/ | 标准特效实现,203 个 .cpp 文件 | 研究模糊、运动模糊等特效原理 |
plugins/ | 示例 C++ 插件(blur、geom) | 开发自己的插件当起点 |
thirdparty/ | 依赖库源码与预编译件 | 排查编译环境问题时 |
| doc/ | 各平台构建文档与 PR 测试指南 | 构建卡住、想参与贡献时 |
日常使用你碰到的基本就是stuff/,其余目录属于"要深入时才打开"的部分。
改成自己的样子:4 个高频个性化入口
1. 界面主题切换成深色
- 目的:长时间看线稿不刺眼
- 入口:
stuff/config/qss/内置 Blue、Dark、Darker、Default、Light 等 8 套主题,每套就是一个目录加若干.qss样式文件 - 注意点:请改
~/.config/OpenToonz/stuff/这份本地副本,别动仓库里的原始文件,否则每次克隆都白改
2. 自定义安全区
- 目的:画面上显示电视安全区、字幕安全区等参考框
- 入口:
stuff/config/safearea.ini,按百分比写区域,如[SafeArea0]里的area\0=80, 80表示 80% 安全边 - 注意点:坐标是相对帧宽高的百分比,不是像素,换画幅时不用重算
3. 调整默认笔刷列表
- 目的:把顺手的笔刷排到最前
- 入口:
stuff/config/brush.txt以 XML 列出 ink、airbrush 等笔刷参数;更多现成笔刷在stuff/library/mypaint brushes/(9 个合集)和stuff/library/vector brushes/(41 个矢量笔刷) - 注意点:先备份原文件,XML 缩进错了整个笔刷列表会加载失败
4. 保存自己的工作区布局
- 目的:整理台、描线台、涂色台各自一套窗口摆法
- 入口:
stuff/profiles/layouts/下按 rooms、settings 等子目录存放.xml布局文件 - 注意点:改布局前建议复制一份原文件做底,界面出问题时删掉你的副本即可恢复
新手避坑清单
坑一:程序能启动,但主题、笔刷全都不对劲
- 现象:界面是裸默认状态,或报错找不到资源
- 原因:
stuff/没有复制到~/.config/OpenToonz/,程序加载不到配置与资源 - 解法:补上构建第 2 步里那条
cp -r命令,重启程序即可
坑二:CMake 配置阶段提示找不到 SuperLU
- 现象:
cmake ../sources报依赖缺失 - 原因:CMake 没有猜到 SuperLU 的头文件路径
- 解法:显式指给它,
cmake ../sources/ -DSUPERLU_INCLUDE_DIR=/usr/include/SuperLU,Fedora 等新系统一般可自动识别
坑三:构建半天没动静,怀疑死机
- 现象:
make跑了很久,CPU 只有一核在转 - 原因:单线程编译,而这个项目模块多、文件量大
- 解法:换
make -j$(nproc)按核心数并行,还能用LANG=C make VERBOSE=1定位真正的报错行
一条典型创作流程:从分镜到成片
假设你要做一支一分钟的短片。先用stuff/library/clapperboards/里的场记板素材在分镜台标记镜头编号与时长,板面模板可以直接导入:
接着新建工程,它会按房间(room)组织工作流——绘制房落原画与中间画,清理房用矢量笔刷整理线稿,描线房做描线,涂色房按色表填色。每一房只暴露当前工序需要的工具,对新手反而是种保护:你很难在画原画时误碰到合成参数。全部画完后回到 Xsheet 台排节奏、加缓入缓出,需要氛围时从 stdfx 里拖一个运动模糊或粒子效果进合成树,最后整段预演、确认没问题再渲染输出。整个过程不需要切换任何外部软件。
写在最后
跑通构建只是开始。想继续深入,可以顺着plugins/里的两个小插件学插件接口、进stdfx/看特效是怎么逐像素算出来的;不想写代码也能帮上忙——按 doc/how_to_test_prs.md 的步骤下载持续构建产物、替社区 PR 做验证,每个改动都会先在多平台 CI 上通过构建再合入:
【免费下载链接】opentoonzOpenToonz - An open-source full-featured 2D animation creation software项目地址: https://gitcode.com/GitHub_Trending/op/opentoonz
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考