无法正确降落在上下移动的平台上

我正在测试一个仅根据是否在下方接触地面而改变颜色的对象:若在下方向接地则为地面,否则为空中。

当落在向上移动的平台上时,似乎会被判定为在空中。平台的构造如图所示。如果有对平台构造的具体要求,请告知。


https://xgf.nu/mmRG7

感谢您的报告。

推测可能是墙壁碰撞体的尺寸过薄,导致物体在向上移动时发生穿透,从而使用于接触检测的法线被穿透。

请您尝试增加墙壁碰撞体的厚度并确认问题是否仍然存在。如果问题依旧,能否提供项目文件以便我们进一步排查?

在这里

https://1.gigafile.nu/1015-m161332e08251b68ce82ffe6dc752472d

1 个赞

已确认情况,将向开发团队报告。

在今天我们发布的版本1.1.3中,我们已对判定进行了调整。

嗯,速度缩放1.2以上似乎仍然会发生,这大概就是妥协点吧……。

在已接收的项目中,即使将速度缩放(Speed Scale)设置为 1.5,问题也未出现……

请问是否进行了任何配置更改?

啊,明白了,当将显示器的FPS设置为144FPS等时会出现该问题。

我会向开发团队确认,但这可能是Godot规范本身的问题……

这是因为Godot的物理处理(physics_process)始终以60fps进行处理(Unity等也采用类似机制)。

另一方面,AnimationPlayer的更新并不固定为60fps。在常规处理时机下这通常不会成为问题,但调整速度缩放(speed_scale)后,处理次数会单纯增加,从而导致处理同步偏差。(例如,当速度缩放为1.2时,每秒会执行72次处理,而物理处理仍为60次,从而产生偏差。)

因此,问题可能出在速度缩放侧,如果通过在AnimationPlayer中调整动画长度来解决,应该就不会出现问题了……

在我们确认的范围内,除了速度缩放外,其他方法似乎基本不可行。看来将速度控制在一定范围内更为现实。

顺便补充一下,似乎也有其他遇到同样问题的人,アクツク情報局方面也在研究中。

1 个赞