观众看到的“水门一家”抽象手书,是一种网络上很常见的手绘动画类型:角色画得不一定写实,线条故意放松,故事被压缩成几十秒的情绪片段。它的观看门槛很低,但真正做起来并不比普通动画简单。从一个灵感变成声音对准画面、节奏稳定、播放流畅的成片,中间需要一条完整的数字内容生产管线:美术设定、分镜表、帧绘画、序列帧、音视频合成、编码压制。
这篇文章会把“抽象手书”当作一个可复现的迷你动画项目来拆解。这里不讨论具体剧情怎么写、人物关系怎么处理,而是专注两件事:第一,每个环节用什么工具、按什么顺序进行;第二,每一处参数为什么这样设置,出现问题应该从哪个环节往回查。内容会围绕一个示例项目展开:给“水门一家”做一支约 40 到 60 秒的抽象风格手书短片,画面为 1920x1080、24fps,最终输出 MP4。
1. 先把“抽象手书”拆成可以执行的技术环节
1.1 手书不等于全程逐帧动画,先分清三种绘制方式
许多第一次做手书的人会在“要不要一帧一帧画”这个问题上卡住。实际上,大部分成片里并没有那么多真正的逐帧作画。按制作方式,抽象手书通常可以分成三档。
| 制作方式 | 绘制工作量 | 画面动态 | 常见用途 |
|---|---|---|---|
| 纯静止卡片 | 低,每张画面画一次 | 靠剪辑软件里的缩放、位移、模糊转场 | 叙述关键情节、人物关系、情绪定格 |
| 有限动画 | 中,按 2 到 6 帧一组绘制 | 眨眼、口型、手部小幅度位移、身体循环摆动 | 手书的主体部分,成本与效果最均衡 |
| 全逐帧动画 | 高,几乎每个关键动作都重新画 | 转身、跑步、打斗、复杂表演 | 需要强动作表现的段落 |
理解这一点后,做“水门一家”这类家庭题材短片时,可以采取的思路是:人物关系与场景氛围用静止卡片呈现,家庭成员互动的片段用有限动画,只在情绪爆发或关键转折处使用真正的逐帧动画。这样 60 秒的成片可能只需要 60 到 150 张有效画面,而不是 1440 张全帧图。1440 是 24fps 下 60 秒的总帧数,如果全部逐帧绘制,会直接拖垮个人制作周期。
1.2 统一生产管线:绘制、合成、输出三个阶段要分开
手书创作最容易失控的地方,是把绘画和剪辑混在同一段时间里做。今天画一张,明天补一段音乐,后天又回去改之前的画面,最后成片风格和节奏都会不稳定。更好的做法是把项目切成三个逻辑阶段。
第一阶段是美术与分镜。产出角色参考图、色板、场景清单和分镜表。第二阶段是画面生产。在绘图软件中按分镜顺序画卡、做有限动画,并导出成带编号的画面序列。第三阶段是合成与输出。在剪辑软件中导入序列帧,配乐、配音、加音效,调整每张卡片的停留时间,最后编码导出。
这三个阶段的产物尽量互相独立。任何一张画面改动了,只需要重新导出那张画面,重新替换素材,而不必推翻整个时间线。为了做到这一点,前期的文件命名和目录结构必须规则化,不能把所有 PNG 堆在一个文件夹里叫“画稿”。
1.3 先写一张表:每段画面对应多少帧、对应哪段音乐
分镜表是手书生产的中枢表单。它不需要和电影分镜一样复杂,但必须包含三组信息:时间信息、画面信息、声音信息。时间信息由秒换算成帧,画面信息决定这一段的绘制难度,声音信息决定剪辑时卡点位置。
一个适合 24fps 项目的分镜表字段如下。
| 字段 | 说明 | 示例 |
|---|---|---|
| Shot ID | 镜头唯一编号 | S01C02 |
| 内容 | 画面里发生什么 | 一家人从远处走过,回头挥手里 |
| 时长 | 该镜头在时间轴上的秒数 | 3 秒 |
| 帧数 | 秒数乘 24 得到 | 72 帧 |
| 绘制方式 | 静止卡 / 有限动画 / 逐帧 | 有限动画 |
| 音乐位置 | 对应哪一句旋律或哪个鼓点 | 前奏第 5 小节 |
| 输出文件 | 画面最终文件名前缀 | S01C02_ |
建议在制作前把分镜表整理到表格软件或 Markdown 表格中,后续剪辑时直接对照行数据设置卡片停留时长。这个表是整个项目是否可复现的关键:只要表里字段正确,任何人都能沿着表格重剪一版。
2. 先选工具、定画布、布置工程目录,避免项目后期混乱
2.1 推荐工具栈:免费软件也能完成全流程
手书不是 Adobe 全家桶的专属场景。免费工具已经能覆盖绘制、剪辑和编码需求。下面这套栈适合个人艺术家或小团队使用。
| 环节 | 推荐工具 | 用途说明 |
|---|---|---|
| 画布建立与逐帧绘制 | Krita | 免费开源,支持动画时间轴、洋葱皮、图层和帧导出 |
| 音频剪辑与扒拍速 | Audacity | 免费,用于剪辑音乐、定位节拍、降噪和淡入淡出 |
| 剪辑合成 | DaVinci Resolve | 免费版已足够完成素材导入、转场、卡点、调色和渲染 |
| 批量处理与验证 | ffmpeg / ffprobe | 命令行工具,用于序列帧转视频、检查编码参数 |
| 压感笔与手绘板 | 任意支持系统压感的数位板 | 没有数位板也可以用鼠标绘制,但效率会明显降低 |
需要留意的是,这些工具的菜单和版本之间可能存在差异。如果看的是旧教程,先把当前安装版本的界面截图和官方帮助文件打开,再对照操作。版本号本身不必追求最新,稳定且和自己的系统兼容就够。
2.2 画布、帧率和色彩空间:所有软件必须保持一致
手书项目最容易出现的低级错误,是不同软件里的画布规格不一致。Krita 里建的是 1920x1080,到 DaVinci Resolve 里时间线却是 1280x720;Krita 里按 24fps 制作,剪辑软件里工程又新建成了 30fps。结果就是画面被裁切、运动速度异常、导出后比例错误。
以“水门一家”示例项目为例,创建文件时应统一以下参数。
| 参数 | 推荐值 | 原因 |
|---|---|---|
| 分辨率 | 1920x1080 | 主流视频平台的标准全高清尺寸 |
| 帧率 | 24fps | 动画的传统帧率,逐帧绘制成本低于 30fps |
| 色彩模式 | RGB / 8bit | 手书画面简单,8bit 够用,文件更小 |
| 长宽比 | 16:9 | 便于发布到横屏视频平台 |
| 音频采样率 | 48000Hz | 视频项目常用采样率,避免导出时重复重采样 |
新建 Krita 工程时,直接在新建文档对话框中输入 1920x1080。帧率不是在新建对话框里设置,而是在动画时间轴面板里修改。进入 Krita 后,打开“动画”相关面板,把每秒帧数从默认值改成 24,再确认时间轴起止范围覆盖整个镜头长度。
2.3 工程目录和文件命名:宁可多一级目录,不要靠文件名猜内容
个人手书项目容易因为文件夹结构太乱而重做。最稳妥的方法是用英文目录按阶段分组,避免使用带空格和中文的路径,因为部分命令行工具和插件在中文路径或空格路径下会表现不稳定。
handwritten_pipeline/ 00_docs/ storyboard.md shot_list.md 01_art/ character_sheet.png palette.kpl 02_audio/ source_music.wav voice_*.wav 03_scenes/ S01C01/ S01C01.kra S01C02/ S01C02.kra 04_edit/ resolve_project/ 05_frames/ S01C01/ S01C02/ 06_output/ final_preview.mp4这个目录结构把“绘图源文件”和“导出帧”分开。03_scenes 里的 .kra 是源文件,05_frames 里的 PNG 序列是给剪辑软件看的中间产物。源文件改动后重新导出到 05_frames,不需要动剪辑工程中的其他镜头。
画面文件命名建议采用“镜头号_四位数字帧号.png”的格式,例如 S01C02_0001.png、S01C02_0002.png。四位数字帧号可以保证排序时按位数对齐,避免 10 排在 9 前面的问题。如果在同一镜头内出现多层素材,再追加层名,例如 S01C02_bg_0001.png 和 S01C02_character_0001.png。
3. Krita 里完成画面生产:关键帧、有限循环和帧导出
3.1 使用 Krita 的动画时间轴,以“镜头”为单位制作
不建议把整支手书画进同一个 .kra 文件。一个文件只放一个镜头,会让图层管理、动画时间轴和后期的素材替换都简单很多。绘制流程可以参考下面几步。
第一,新建 1920x1080、24fps 项目,在动画时间轴面板确认帧率。第二,把镜头里的背景单独放在一个图层,其他可动元素放在上方图层。第三,用洋葱皮功能打开前后帧的半透明显示,开始逐帧绘制。第四,先画关键帧,再根据动作复杂度补齐中间帧。
关键帧是动作起止的关键姿态。例如人物抬手挥动,起手姿势是一帧,手举到最高处是一帧,放下是一帧。中间缺失的过渡如果需要补,就按 2 帧或 3 帧插入一张中间画。
对于“水门一家”这种短片中常出现的眨眼、身体轻微晃动等动作,可以使用固定数量的循环帧。
| 动作 | 推荐帧数 | 循环效果 |
|---|---|---|
| 眨眼 | 4 到 6 帧 | 简单状态切换,1 秒内完成一次 |
| 呼吸起伏 | 8 到 12 帧 | 身体上下起伏,形成稳定的呼吸节奏 |
| 头发或衣摆摆动 | 6 到 12 帧 | 用 2 到 3 张原画反复循环 |
| 头部微微转向 | 10 到 16 帧 | 需要少量中间帧,避免跳变 |
这些循环帧只是为了给画面增加“活着”的气息。真正需要观众注意的内容,应该留给镜头切换、缩放和声音节奏去完成,不要把所有动作都做成大幅度的逐帧演出。
3.2 借助洋葱皮和图层保证风格稳定
同一支短片里,同一个角色前后画风漂移是比较常见的问题。最直接的原因是没有参考图,也没有使用洋葱皮。如果完全凭记忆画,第二张和第十张的眉眼距离、下巴线条、头发厚度都可能不同。
在实际项目中,可以采取三种手段保证一致性。
第一种是保留角色参考图层。新建一个参考图层,把人物设定图粘贴进去,把不透明度降到 30% 左右,绘制时随时参考。第二种是统一使用一套颜色。Krita 支持色板文件,把主角、配角、背景、阴影的颜色固定下来;所有帧使用同一组颜色,避免同一角色在不同镜头出现完全不同的冷暖倾向。第三种是依赖洋葱皮。制作连续动作时,开启洋葱皮后能看到当前帧前后一两帧的半透明画面,补中间画时就不会跑形。
需要注意的是,洋葱皮只是辅助,不能替代清稿。抽象手书虽然线条放松,但不代表构图上可以随意偏离。放松的是线条的规律性,不是人物的五官比例。
3.3 导出 PNG 序列,并按镜头素材分类放置
单个镜头绘制完成后,需要导出成带序号的 PNG。Krita 的导出动画功能会选择当前设置的时间轴范围,将每一帧以 PNG 格式写成序列。操作前先检查两点:一是时间轴结束帧确实覆盖完整镜头;二是输出目录指向 05_frames 下对应的镜头文件夹。
导出格式选择 PNG。如果画面中有透明背景层,需要确认导出时保留 Alpha 通道;如果镜头本来就有完整背景,可以直接导出不透明 PNG,减小后期合成难度。导出完成后检查文件名是否带四位帧号,并抽几帧打开确认没有导出成空白画面。
如果镜头采用的是静止卡片,不一定非要导出几十张重复 PNG。可以把该画面单独存成一张 PNG,随后在剪辑软件中直接把这张图片按需要的秒数延长,例如 3 秒、72 帧。这能避免产生大量内容相同但体积冗余的文件。
4. 在剪辑软件里装动画:把画面序列、背景音乐和停止时长对齐
4.1 先用 ffprobe 核对手头素材的基本属性
在进入 DaVinci Resolve 之前,可以用 ffprobe 快速确认图片序列和音频文件的规格。这一点特别重要,因为如果画面是 24fps、音频采样率是 44100Hz,剪辑软件里可能不会自动提示,只有导出后才发现问题。
先确认音频文件基本信息。
ffprobe -v error -show_entries stream=codec_name,sample_rate,channels,duration -of json source_music.wav输出中会看到类似下面的内容。
[ { "streams": [ { "codec_name": "pcm_s16le", "sample_rate": "48000", "channels": 2, "duration": "58.320000" } ] } ]看到 duration 后,把音频时长和分镜表里的镜头总时长做一次加法核对。如果所有镜头时长加起来是 58.3 秒,音频也是 58.3 秒,说明画面时间轴和音乐有对齐基础;如果相差太多,优先修改分镜表,而不是在剪辑阶段强行拉伸画面。
4.2 在 DaVinci Resolve 中导入素材并按“卡”设置时长
DaVinci Resolve 中新建项目时,把时间线帧率设为 24,分辨率设为 1920x1080。导入镜头文件夹里的 PNG 序列时,软件通常会识别为一条视频片段;导入静止卡片时,则是一张图片素材。
静止卡片在时间线上的默认长度可能只有 5 秒或一张静帧的默认时长,需要手动修改为分镜表中规定的帧数。比如一张卡片是 2 秒,在 24fps 时间线上就是 48 帧。修改时可以在时间线上选中素材,在剪辑检查器里输入时长,或者在菜单中设置胶片帧数。
有限动画的序列帧导入后,不需要逐帧手工调整。如果这一段动画是 24fps 逐帧导出的,软件会按照片序号以每秒 24 帧播放。如果发现播放速度偏快或偏慢,先检查时间线帧率设置,再检查导出序列时是否保持 24fps。
4.3 用节拍和关键音效控制卡点,而不是凭手感拖动
手书类短片通常以音乐为核心节奏。画面切换最好和音乐的重拍、歌词或情绪高点形成呼应。最简单的方式是先找到音频的 BPM。
确定 BPM 后,拍与拍之间的间隔时间可以用下面公式换算。
拍间隔(秒) = 60 / BPM 拍间隔(帧) = 拍间隔(秒) × 24例如音乐是 90BPM,拍间隔就是 60 / 90 = 0.667 秒,换算成 24fps 是 16 帧。如果一首歌是 120BPM,拍间隔就是 0.5 秒,换成帧就是 12 帧。剪辑时把某些镜头切点放在 16 帧或 32 帧的整数倍位置,会比靠感觉拖动更稳定。
在 DaVinci Resolve 的时间轴里,可以把光标移动到需要卡点的位置,然后添加标记。标记分为多种颜色,建议把“重拍卡点”和“歌词关键词”用不同颜色区分。添加标记完成后,只在标记附近调整片段边界,不要随意拖动画面到两个拍子之间的模糊位置。
4.4 给静止卡片加入运镜和轻微效果
静止卡片如果长时间不动,容易显得呆板。可以给它添加轻微的缩放或位移。这里的原理来自“分层运镜”:让背景和人物分层,或者让卡片整体缓慢推进、横向平移,给视觉提供方向变化。
在 DaVinci Resolve 中,最基础的做法是在合成画面或检查器的变换属性里为缩放、位置打关键帧。例如一张卡片从 1.0 倍缩放到 1.08 倍,配合轻微位移,在 72 帧内完成,观感会自然很多。关键帧之间会自动生成过渡,不需要给每一帧手动设值。
如果想让抽象手书更有手绘抖动感,可以给整段素材叠加极微弱的随机位置抖动。但幅度要控制在几个像素范围内,幅度过大会让观众误以为是视频卡顿或画面错位。制作时应先不加抖动,确认画面内容合格后再叠效果。
5. 输出参数、编码和验证:确保在网站上的回放结果正确
5.1 使用 DaVinci Resolve 的“交付”页面输出标准 MP4
完成时间线后,进入交付页面。新手最常见的错误是在导出时使用工程原始的分辨率或帧率,导致文件巨大且不适合网页播放。建议先按常规网络发布标准设置。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 格式 | MP4 | 各平台兼容性高 |
| 视频编码 | H.264 | 当前网络视频主流编码 |
| 分辨率 | 1920x1080 | 与制作画布一致 |
| 帧率 | 24 | 与时间线一致 |
| 品质 | 较高 | 或设置 8 到 12Mbps 码率 |
| 音频编码 | AAC | 与 MP4 容器配套 |
| 音频采样率 | 48000Hz | 与工程一致 |
H.264 需要对视频帧做 4:2:0 色度采样兼容,否则部分播放器会出现无法解码或颜色异常。DaVinci Resolve 交付页的 H.264 预设通常会自动处理好,不需要手工输入相关参数。
5.2 使用 ffmpeg 做辅助预览和最终转码
如果准备在剪辑软件之外做快速预览,ffmpeg 可以把已经导出的 PNG 序列直接合成为 MP4。这个命令适合在 Krita 刚导出完帧、还没有进入剪辑软件时,先检查画面是否连贯。
ffmpeg -framerate 24 -start_number 1 -i S01C02_%04d.png -c:v libx264 -preset medium -crf 18 -pix_fmt yuv420p -movflags +faststart preview_S01C02.mp4参数含义如下。
| 参数 | 含义 |
|---|---|
| -framerate 24 | 画面播放速率 |
| -start_number 1 | 第一张图的编号 |
| -i S01C02_%04d.png | 输入文件命名规则,四位数字 |
| -c:v libx264 | 使用 H.264 视频编码 |
| -crf 18 | 质量参数,越低质量越高、文件越大 |
| -pix_fmt yuv420p | 兼容播放器的色度格式 |
| -movflags +faststart | 让视频适合网络播放 |
如果导出后的成片需要在其他软件里二次编辑,不要直接用这个 MP4,而是应该保存回 DaVinci Resolve 工程或导出带高质量中间编码的 MOV。MP4 主要用于预览和最终发布。
5.3 用 ffprobe 验证导出文件,不能只看能打开
成片导出后,要打开文件人工检查,同时用 ffprobe 核对技术参数。
ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,r_frame_rate,sample_rate,channels -show_entries format=duration -of json final.mp4人工重点检查三处。第一,开头画面是否黑屏或卡在第一帧。第二,中间声音是否出现不同步,尤其是口型和音效。第三,结尾画面是否被裁掉,音乐是否在画面结束后仍有残留。技术参数检查重点则是分辨率、帧率、时长、编码是否和交付设置一致。视频编码显示 h264,音频编码显示 aac,分辨率是 1920x1080,才算通过。
注意:不要只验证视频能打开。要播放完整长度,并确认音频峰值、静音段、画面黑帧和首尾剪辑都符合预期。
6. 常见问题、排查链路和可复用生产清单
6.1 画面变、声音乱、文件大:按原因分四类排查
实际制作中,问题经常不是只出现在一个软件里。下面表格整理了四类高频问题,每一条都按“现象、原因、检查点、处理方式”给出。
| 问题现象 | 常见原因 | 检查方式 | 处理方式 |
|---|---|---|---|
| 画面在播放时抖动明显 | 绘制时每张比例跑形 | 缩小播放并逐帧对比关键点 | 用参考图层和洋葱皮重修关键帧 |
| 动画速度忽快忽慢 | 帧率设置不一致 | 检查 Krita、Resolve 的帧率 | 全部统一为 24fps |
| 音画不同步 | 时间线帧率或音频采样率错误 | 查看 ffprobe 输出和分镜表 | 统一工程规格后重新输出 |
| 导出文件非常大 | 码率设置过高或编码不匹配 | 查看导出文件码率 | 使用 H.264,码率降为 8 到 12Mbps |
| 序列帧导入后只有一张静态图 | 文件名缺少零填充或者未按序列导入 | 检查文件编号 | 统一命名为 0001、0002 格式 |
6.2 新手最容易踩的三个坑
第一个坑是直接按 60fps 或高帧率逐帧绘制。手书最珍贵的资源是绘画时间,不是播放顺滑度。24fps 已经足够表现动作,而用 2 到 3 帧显示一张画面,可以大幅减少掉帧感和工作量。
第二个坑是到了剪辑阶段才发现画面比例不对。如果绘制和剪辑软体的分辨率不统一,重新导出很浪费时间。应该在 Krita 新建文档那一刻就设定 1920x1080、24fps,并把这些参数写进分镜表的项目信息里,而不是依靠记忆。
第三个坑是过度使用暴力缩放。很多新手为了让静止卡片动起来,会直接给整个画面做非常大的缩放,结果画质被裁掉或脸部比例被放大到不自然。缩放幅度应控制在 5% 到 15% 以内,同时优先把镜头切点放在音乐节拍上,而不是依赖运镜掩盖画面静态。
6.3 发布前检查清单
把下面清单复制到分镜表底部,每次导出前逐项打勾。建议把这份清单连同分镜表一起放入项目的 00_docs 目录。
| 检查项 | 结果 |
|---|---|
| 角色参考图和色板已完成 | 是 / 否 |
| 分镜表每段都换算成帧数 | 是 / 否 |
| Krita 帧率为 24,画布为 1920x1080 | 是 / 否 |
| 每个镜头的 PNG 有四位数字编号 | 是 / 否 |
| 背景音乐具有合法使用授权或为原创 | 是 / 否 |
| DaVinci Resolve 时间线帧率为 24 | 是 / 否 |
| 音频总长度和镜头总长度一致 | 是 / 否 |
| 动态卡片做了 5% 到 15% 的轻微运镜 | 是 / 否 |
| 交付页参数为 H.264 / MP4 / 1080p / 24fps | 是 / 否 |
| 用 ffprobe 验证时长、编码、分辨率和帧率 | 是 / 否 |
| 完整播放一次,确认没有黑帧和音画漂移 | 是 / 否 |
最后再回到这支“水门一家”抽象手书本身。它的核心难点从来不是抽象风格给人的随性印象,而是如何用最少的画面完成一场清晰的叙事。先把分镜表和节奏表确定下来,再进入 Krita 绘制,最后到剪辑软件里对齐节拍,任何时候画面出问题都能准确回到对应镜头修复。这套方法也适用于其他手书主题:只要把角色、故事和音乐清单替换掉,管线本身可以直接复用。