二维纸偶怎么「动」起来:从一张剪纸到一副会摆姿势的骨架

用一个真实的儿童剪纸动画当例子,讲清「拆成一块块 + 绑骨架 + 关节匹配」到底在算什么——以及为什么有只手会飘在身体外面

leonardchow.work · 读物

2026-06-19

一句话:让一个画出来的角色动起来,靠的不是”重新画”,而是把它拆成一块块剪纸、给每块装上看不见的关节、再转动这些关节。这篇用一个正在做的剪纸童谣动画,把这套”绑骨架”的原理讲到高中生能懂。

本文不涉及任何私密信息,只讲通用原理 + 一个真实项目里”手飘在身体外”的 bug 是怎么来的、怎么修的。

先交代几个词


一、先别把角色当「一张画」,当「一叠剪纸」

新手最容易卡在一个误区:以为让角色动,就得一帧一帧重新画。那太慢,而且 AI 重画还会把手撕纸的脆边”画糊”。

专业做法反过来:一个角色不是一张图,是一叠分开的剪纸——头一块、身体一块、左右上臂各一块、前臂带手各一块、两条腿各一块。先把这些块摆在一起拼成完整的样子,要动的时候,只移动/转动其中某几块,其余不变。

这就是”定格 / 纸偶”动画的底层:画一次,拆成块,然后像玩纸娃娃一样摆。


二、骨架 = 一串关节点,件挂在关节上

把件拆好后,给它们建一棵”谁连谁”的树。以一个雨林动物角色为例:

髋(root)
 ├─ 脊 → 颈 → 头 → { 眉 · 眼白→眼珠 · 嘴 }
 ├─ 肩(左/右) → 上臂 → 前臂 → 手 → (握道具)
 └─ 髋(左/右) → 大腿 → 小腿 → 脚

每个箭头连接处就是一个关节。规矩是:子件绕父件末端的那个关节点转。前臂绕”肘”转,手绕”腕”转,上臂绕”肩”转。一层套一层。

那”关节点的坐标”从哪来?在这个项目里有个聪明做法:用 AI 生成”拆解图”时,在每个关节处画一个亮色小圆点;程序按颜色一扫,就知道肩、肘、腕分别在第几个像素——关节坐标自动到手,不用人去量。


三、「匹配骨架」到底在算什么

这是标题里那个问题的正面回答。所谓”渲染器匹配骨架”,每一帧其实就在反复做一件事:把每块件,旋转 + 平移到它此刻该在的位置

以”抬起一条胳膊去够某个点”为例,程序做的事(白话版):

  1. 已知在哪(父级给的)、想让够到的目标点在哪。
  2. 算出”从肩指向目标”的方向,和”胳膊原本朝下”的方向,差了多少度。
  3. 把整条胳膊绕肩转这么多度。
  4. 转完后,手自然就落在目标方向上;再把”手”这块件钉到手的位置。

就这么三四步。难点不在数学,在于锚点要对:胳膊这块件,必须知道自己的”肩点”在件内的哪个像素,转的时候才绕对地方。锚点记错,胳膊就会”脱臼”。

一句话总结:匹配骨架 = 每帧把每块件,按它父级的关节点为圆心,转到该转的角度,再钉回去。


四、握东西:把手和手必须对位

这是一条最容易被忽略、却最影响”真实感”的规矩。

任何”被拿”的东西(牙刷、杯子、话筒)都先登记两样:柄握点(手该抓柄上的哪一点)和柄轴向(柄指向功能端,比如牙刷柄→刷毛)。手也登记一个掌心点

握的动作 = 三步:① 手到腕端 → ② 把道具的柄握点平移到手的掌心点 → ③ 绕柄握点道具,让刷毛朝向嘴。最后一步关键:前手要画在柄上面(盖住柄),看着才像”握住”,而不是”贴在旁边”。

这条规矩的价值是:换道具只改登记的两个点,不改动画逻辑。今天拿牙刷、明天拿勺子,程序一行不用动。


五、那只「飘在身体外」的手,是怎么来的

讲个真实的 bug,正好把上面全串起来。

这个项目里两只主角,做法不一样:

角色 做法 结果
青蛙 Ribby 真骨架:身体、左臂、右臂是分开的件,手靠”绕肩旋转”连到身上 手好好长在身上 ✅
豚鼠 Toffee 偷懒:整张身体当一块,握牙刷的只是一只额外贴上去的浮动小爪 爪和身体之间没有胳膊 → 手飘在身体外

根因一句话:Toffee 没有”从肩到腕”的胳膊这块件,手就没有东西连回身体,只能悬空。当初这么做是因为它一身白绒毛、不好从旧素材里干净地裁出胳膊。

修法也顺理成章:用 AI 图生图,从干净定妆图重新生成一张带关节点的拆解图,把”上臂 + 前臂带爪”干净地裁出来,按第三节的办法绑到肩上、让爪握住牙刷柄。手就回到身上了。问题不在动画代码,在于一开始没把件拆全。


六、关节不能乱转(限位)

骨架还有一条安全绳:每个关节只能在合理范围内、往合理方向转

做法是给每个关节登记一个”最小角 / 最大角 / 允许方向”,转动时一律夹在范围内。这条看似小,却是”看着自然”和”看着诡异”的分界线。


七、磨刀不误砍柴工:拆得越细,动作越活

把胳膊腿绑好只是第一步。真正让角色”活”的,是再往细拆:

更省力的一招叫动作库:把”开心、打招呼、说话、唱歌、刷牙、跳”这些常用动作,各编一个号(A01、A02……),每个动作存成”一串关节角度 + 一串口型”。因为这些只是相对的转动量、与具体角色无关,所以定义一次,几十个角色都能套用——只换角色的部件,骨架和动作不变。

这就是”磨刀”:前期把角色拆细、把动作编号,后期做几十集、换几十个角色,都是套现成的,而不是每次从头摆。


小结