我正在开发一款灵感来源于 soulslike 的平台游戏,Dark Roll 2

我需要一个安全的软落点,从高度落地,所以我最终制作了一个脚本,让网格像枕头一样变形。网格保留了它的原始顶点,然后每一帧我都将其与一个压入它的SphereCollider 进行比较。 我做了一个第一次扫描来检测实际的接触并测量最深的穿透,然后第二次扫描移动受影响的顶点远离球体,变形在可配置的距离内渐渐消失。

为了衰减我使用了一个 quintic 的 smootherstep (6t⁵ - 15t⁴ + 10t³)而不是常规的SmoothStep, 这样可以在两端都有零速度和加速度,帮助避免在凹陷处的明显山脊。 我也分别处理了挤压和恢复速度,影响可以快速变形网格,同时它在后续慢慢恢复到原始形状。