When "Wait 1 frame" in the source state of "Contact with Tile" is off, it is judged as no contact.

I made the enemy move in a certain direction, and if it was about to fall off a ledge, I displayed a falling animation and made it land. However, on flat ground without ledges, it started continuously playing the falling animation and stopped moving.

Upon investigation, I found that when the state action setting “Wait one frame” is turned off, the state transition condition “Contact with tile” (with contact condition inverted to mean “not in contact”) causes a transition even when contact is still occurring.

(The enemy object had this setting turned off to prevent momentary pauses in movement during branching logic.)

To reproduce this issue:
In the sample project ActionGameMansample1.0, turn off “Wait one frame” in the Wait state of ActionGameMan.vs.

Workarounds:

  • Turn “Wait one frame” back on, or
  • Add the condition “A certain amount of time has passed” to the transition link, setting it to at least 0.02 seconds.

To properly handle the timing of physics calculations, a new setting called “Wait 1 frame (is_allow_one_frame_to_pass)” has been added.

When set to OFF:
The “Contact with Tile” check is performed before the physics engine completes its update for that frame. As a result, collisions may not yet be registered, causing the game to incorrectly determine that the object is in mid-air.

When set to ON:
The process waits until the physics engine’s update is complete, ensuring that “Contact with Tile” correctly returns true.

In other words, when using physics-based checks such as “Contact with Tile” or “Wall Detection,” you must always keep “Wait 1 frame” enabled. Only disable it if you are performing purely variable-based calculations or logic that does not depend on collisions.

Thank you for the explanation; I now understand how it works.
I had turned off the state used for branching since it performs no processing,
and I will also pay attention to the conditions on the link side.

Sorry for the wait! We’ve fixed this issue in version 1.2.9 so it now works even when frame skipping is off!

Thank you for your assistance.
I have confirmed that the “Contact with Tile” condition works even when the “Wait 1 Frame” setting of the source state is turned OFF.