Composer无法实现真实物理反弹,因其缺乏质量、速度等物理参数,需用三帧法(触地、过冲、回弹)配合Ease In/Out和缩放形变手动模拟;父子部件须错帧同步,导出时需锁定帧率并关闭硬件加速。

Composer 里做不出真实碰撞反弹——它没有质量、速度、恢复系数这些物理量,所谓“反弹”,只能靠手动打关键帧 + 过冲 + 缓动来模拟视觉节奏。
为什么直接设“碰撞后弹回”会失败
常见错误是:在接触帧设位置 y=0,下一帧设 y=20,指望 Composer 自动算出抛物线轨迹。结果就是零件像被手拎起来一样直上直下,毫无惯性感。
-
Collision detected日志只出现在仿真软件里,Composer 播放时完全不读取 - 所有位移都走线性插值(默认),必须手动改
Ease In或Ease Out - 没设过冲(overshoot)就谈不上“反弹”,只是普通回退
三帧法实现可信反弹效果
以零件从高处落向平面为例,全程控制在 0.4 秒内,分三帧精准控制节奏:
-
0.0s(触地帧):Position.y = 精确等于底面世界坐标 y 值(用测量工具确认),Scale.y = 1.05(微压缩),Rotation.x = 0;右键打“位置和属性关键帧” -
0.15s(过冲帧):Position.y = y₀ − 8(向下压一点,模拟形变积蓄),Scale.y = 0.92(压缩加剧),Rotation.x = −1°(微俯);打关键帧后,选中该帧 → 属性面板勾选Ease In -
0.4s(回弹帧):Position.y = y₀ + 12(向上弹起),Scale.y = 0.98(略收缩),Rotation.x = 0;打关键帧后,选中该帧 → 勾选Ease Out
父子零件同步反弹容易穿模
如果主零件带子部件(比如弹簧连接的托盘),只动父级会导致子部件滞后拖尾,看起来像“甩出去”。必须同步处理:
- 子部件不能继承父级运动——右键子部件 →
Edit Position→ 勾选Use local coordinate system - 子部件的关键帧时间点要错开:父级在 0.0s 触地,子级触地帧设在 0.02s,过冲帧设在 0.17s,避免硬同步导致应力失真
- 所有反弹段的缩放关键帧必须统一设为
Quadratic Ease In/Out,线性缩放会强化“假感”
反弹动画导出后卡顿或跳帧
不是关键帧有问题,而是渲染链路干扰了时间精度:
- 导出前务必在
文件 → 导出 → 动画中把Frame Rate固定设为30,不要选“匹配视口” - 关闭硬件加速:
工具 → 选项 → 图形→ 取消勾选Enable hardware acceleration - 若反弹段含旋转,确认
RotationZ字段激活且枢轴点已手动拖到接触面中心,否则旋转轴偏移会放大跳变感
真正难控的是反弹高度衰减——Composer 不支持自动按系数递减,每一轮反弹都要手算 y 值并重打关键帧。超过两轮反弹,建议改用外部仿真数据驱动,否则极易节奏失控。











