AMLS 父子层绑定:关节动画的基础
父子层是什么
父子层绑定是 AMLS 中让一个图层跟随另一个图层运动的机制:
- 父层:主动层,自己的变换会自动传递给所有子层
- 子层:被动层,跟随父层运动,同时保留自己独立的动画
这是制作角色动画、关节动画、复杂机械动画的核心技巧——让一个元素带动多个元素运动,避免给每个子层都单独做跟随关键帧。
绑定效果直观理解
想象一个玩偶:
- 身体 = 父层
- 头、手臂、腿 = 子层
当你移动身体(父层)时,头、手臂、腿(子层)跟着一起移,因为它们绑在身体上了。
同时,手臂(子层)还可以独立在身体坐标系里挥舞——不需要管身体本身在做什么。
怎么创建父子绑定
- 在图层面板里,选中目标子层
- 打开图层属性 → 找到"父层"选项
- 在下拉列表里选择要作为父层的图层
- 绑定完成,子层名称旁会出现父层的缩略标记
也可以在时间轴上用拖动方式直接把一个图层拖到另一个图层的子级位置来建立绑定关系。
绑定后发生了什么
子层的变换坐标系变了
绑定前,子层的位置坐标是相对于整个工程(画面中心) 的。
绑定后,子层的位置坐标变成相对于父层的中心点。
这意味着:
- 子层 X=0, Y=0 时,刚好在父层的中心点
- 子层 X=100 时,在父层中心向右 100 的位置
父层的变换自动传递
父层做以下变换时,子层同步执行:
| 父层变换 | 子层效果 |
|---|---|
| 平移(X/Y) | 跟着父层一起移动 |
| 缩放 | 跟着父层一起缩放 |
| 旋转 | 跟着父层一起旋转 |
| 倾斜 | 跟着父层一起倾斜 |
| 不透明度 | 与父层不透明度相乘 |
但子层还可以独立在父层变换之上叠加自己的变换——在父层旋转 30° 的基础上,子层还能再独立旋转 10°,最终角度是 40°。
实操:简单人偶角色
用矩形和圆形搭一个可动的小人偶:
- 画一个矩形做身体(主图层)
- 画两个小圆做眼睛、一个矩形做嘴 → 绑到身体(父层)
- 画两个矩形做手臂 → 也绑到身体,但给手臂的旋转属性加关键帧做"挥手"动画
- 给身体的位置加关键帧做"走动"动画
- 播放 → 身体在动,头/眼睛/嘴跟着动,手臂在挥舞,非常自然
进一步:层级嵌套
手臂本身也可以有子层:
- 手臂 = 父层
- 手部装饰 = 子层
- 手部装饰跟着手臂动,手臂跟着身体动
这就是父子层嵌套——一层一层往下绑,最底层的元素跟着最顶层的所有父层一起做变换。
父子层的关键帧
父层的关键帧
父层的位置、旋转、缩放都可以加关键帧 → 所有子层同步响应。
子层的关键帧
子层可以独立在父层坐标系里加自己的关键帧:
- 手臂在身体坐标系里旋转 → 不管身体怎么动,手臂都在"正确"的位置挥
- 身体旋转 30° + 手臂独立旋转 45° → 手臂实际旋转了 75°
父子层组合动画
| 层级 | 关键帧 | 效果 |
|---|---|---|
| 身体(父层) | 位置 X 0→500, 0s→2s | 身体向右走 |
| 头(子层) | 位置 Y -100(固定偏移)+ 独立旋转 ±10° | 头跟着走还在晃 |
| 手臂(子层) | 旋转 ±60°(固定在身体坐标系) | 手臂跟着走还在挥 |
解除绑定
随时可以解除父子绑定:
- 选中子层 → 图层属性
- "父层"选项里改成"无"
- 子层恢复为独立图层
注意:解除后,子层的坐标会自动转换为工程坐标系——原来相对于父层的偏移量会被保留为绝对坐标。
父子层 vs 预合成
两种方式都能实现"一个影响多个",但定位不同:
| 对比项 | 父子层 | 预合成 |
|---|---|---|
| 关系 | 动态绑定(可随时改) | 打包成独立合成 |
| 子层独立动画 | 支持 | 支持(进入预合成内编辑) |
| 层级 | 扁平 | 嵌套 |
| 适用场景 | 关节、机械联动 | 复杂动画打包保存 |
常见问题
子层位置不对?
绑定后子层坐标是相对于父层中心点的。检查是不是父层的中心点(锚点)位置有问题?如果父层锚点不在中心,子层的偏移量会看起来不对。
父层旋转时子层位置跑飞?
这是正常现象——子层是相对于父层中心点旋转的。如果不想让子层跟随旋转,可以在绑定选项里关闭"继承旋转"。