I am testing an object that changes color based on whether it is grounded (when moving downward on a platform) or airborne (when not grounded).
It seems that landing on a platform moving upward results in an airborne判定. The platform is constructed as shown in the screenshots. If there are any specific instructions on how the platform should be built, please let me know.
It seems likely that the wall collision size is too thin, causing the object to penetrate during upward movement, which may allow the contact normal to slip through.
Could you please try increasing the wall collision thickness and check if the issue persists? If it still occurs, could you share the project with us?
Ah, I see. The issue occurs when the monitor’s FPS is set to 144 FPS, for example.
I will confirm with the development team, but this might be an issue due to Godot’s specifications…
This is because Godot’s physics processing (physics_process) is always handled at 60 FPS (a similar approach is used in Unity, etc.).
On the other hand, the update of AnimationPlayer is not fixed at 60 FPS. Under normal processing timing, this is not an issue, but when the speed scale is changed, it seems the number of processing cycles simply increases, causing a synchronization mismatch. (For example, with a speed scale of 1.2, processing occurs 72 times per second, while physics processing occurs only 60 times, leading to a mismatch.)
Therefore, since the issue likely stems from the speed scale side, I believe the problem can be avoided by adjusting the animation length on the AnimationPlayer side.