You should never do anything in transition rules.
No And, not Or, and definitely not any math or variable pulling that isn’t direct.
Doing so disables fastpath. And generally means there’s better ways.
For this particular objective, the “right” way to do it is to read up the already existing FindFloor result and get its distance.
Yes OnTick because you need to know the value.
You are only “reading”, the line trace is already happening results are already collected so the performance impact is minimal.
If IsFalling, read the result. Pull out the distance.
You can also instantiate a timer to count off how many frames the character spends in air, or MS. Or wharves kind of timer you prefer.
You can also override the OnStateChanged of the movement component to fire off different events that set up your variables.
If you want a “bad” blueprint approach that’s probably better than most.
It’s over a year old, so I’d never approach it the same way now.
But it’s a start.
How would you fix it for fastpath?
Well, any RelevantTimeRemaining should be changed up to use the automatic transition checkbox.
The character BP would have to do the and/or and set boolean or an Int.
Fastpath May be able to == since it can do != but test it. Don’t count on it.
If you have a boolean you also need to toggle it off after use. So put a delay of maybe .2 after you toggle it in anim BP and reset it to false.
This is easy on the CPP side. More complex on the BP side.