Please enable java script to visit.
NOTEBOOK
HOMEPHP / MySQLJS / HTMLPythonBlender信奥C++系统脚本/命令其他
Blender 制作活塞动画(纯约束版) - NOTEBOOK
Blender 制作活塞动画(纯约束版)
Blender
Posted on 2026-06-11
摘要 : 不使用刚体的纯约束版。非单一解,有多种解决途径。

不完美的做法,不推荐,但学习一下,可以帮助了解各个功能的原理。
完美的做法可以参见刚体+刚体约束,或者使用骨骼,就不会出现活塞与亮暗脱节的问题。
❱ 前期准备

建立四个物体:A 曲轴,B 连杆,C 活塞,D 套筒
对齐放置好。



❱ 关键设置

❱ 曲轴A转动

对曲轴A的Y轴数值框输入 #frame/3
即可自动开始转动
❱ 连杆B的跟随A并指向C

有多种途径实现,这里列出其中2种思路:
1. B 用 ctrl + p 成为A的子级。并用 阻尼追踪 Damped Track指向C。
2. 给A的插梢部分设置顶点组,B开启复制位置 Copy Location,指向A的顶点组。同样开启 Damped Track指向C。
❱ 活塞C限制上下移动

有多种途径实现,这里列出其中2种思路:
1. C 用 ctrl + p 成为B的子级。并使用 Limit Rotation(X、Y、Z均锁定为当前角度)和 Limit Location(X、Y均锁定为当前坐标,Z不锁定)
2. B靠C一端的插梢设置为顶点组。C 启用 Copy Location,设置Z轴指向B的顶点组。无需设置其他约束。

❱ 播放动画






❱ 不完美

由于C跟随B移动,B又要指向C,天然存在几何矛盾,必然出现 BC 铰接点偏移、轻微穿模,不是操作失误,是约束叠加冲突导致的位置不兼容。
计算延后、误差,连杆指向活塞上一帧的位置:

❱ 解决办法

断开B与C的父子级关系,让C自己移动。
可以使用驱动器公式,也可以K帧,来实现上下往返效果。

驱动器公式参考链接:
Blender 驱动器实现自动移动、旋转(非K帧)、正弦往返等效果

❱ 额外的思路,解决C的移动问题

思路:断开B、C的父子关系,让C关联A来运动。
1. 断开 B、C父子关系。
2.建立空物体,位置对齐A、B交界的中心。空物体 ctrl + P 成为 A的子集。
3. 空物体添加 Limit Rotation,锁定 X、Y、Z。这样空物体会随着A的转动而平移(不旋转)
4. C,保留Limit Location、Limit Rotation,并且 ctrl + P 成为 空物体的子集。
看起来效果也差不多,但真实世界里C并不是百分百跟随A在Z轴移动,有时候会导致间距超过连杆的长度,同样会导致微小的穿模现象。
依旧不完美。
连杆够不着活塞: