摸头 GIF 的动画生成原理 两层结构详解
一句话原理
把一张静态图,做两件事——挤压 + 叠手——循环播放,就成了摸头动图。
底层:挤压变形
这是整个效果的"骨架"。工具对你的图片做周期性的垂直挤压和还原,模拟"头顶被按下又弹起"的物理感受。
- 挤压是垂直方向的:图片在纵向上被压得扁扁的,宽度不变
- 挤压是周期性的:压下去→弹回来→压下去,形成循环节奏
- 挤压的幅度可调:这就是参数面板里的 squish 滑块,调大压得狠、喜剧感强;调小调得轻、接近真实揉摸

上层:手掌叠加
这是整个效果的"灵魂"。在画面顶部盖一只半透明的手掌图片,让它跟挤压节奏同步上下移动。
- 手掌是半透明的:压下去的时候能看到被拍头顶的轮廓,不会完全遮住主体
- 手掌的移动方向:从上往下拍,拍到底时配合最大挤压幅度
- 两层同步:手掌拍到底的那一帧,正好是挤压到最扁的那一帧——这个时机对齐才是"被摸"还是"套模板"的区别
参数怎么影响这两层
| 参数 | 影响哪一层 | 效果 |
|---|---|---|
| 速度 (speed) | 两层的循环节奏 | 数值越大,挤压和拍手的循环越快 |
| 挤压幅度 (squish) | 底层 | 压下去到底时有多扁 |
| 画面缩放 (size) | 两层 | 头像在画框里占多大,间接影响手掌"拍"到的位置 |
| 调整模式 (adjust) | 两层的对齐 | 手动拖动头像,让头顶和手掌的位置对齐 |
为什么用方形图效果最好
整个动画框架是按方形画布设计的。长方形图或比例差异大的图会被裁剪或拉伸,手掌拍不到头顶的准确位置,效果就散了。所以素材阶段就尽量用正方形或接近正方形的图片。