I've noticed a bug with PlayMontageAndWait
There are 4 possible triggers when a Montage completes:
Once OnBlendout has been triggered - then if the montage gets interrupted, no pins will trigger - there will be no OnInterrupted, and no OnCompleted, it just silently stops the montage.
We have a number of abilities that end as a result of a montage completing, which means our designers will hook up OnCompleted and OnInterrupted to EndAbility. This will mean that very occasionally, a montage can get interrupted in the tiny time window between starting to blend out, and completing - the ability will fail to end - and we have a zombie ability that just sits there - blocking other abilities, and refusing to restart
I appreciate the fix is relatively simple in this trivial case - typically I attach a WaitDelay to the OnBlendOut pin, and then connect that to End Ability
In other cases where the ability has on- going logic, and potentially further montages, a bit more logic is required - usually a local variable connected to OnCompleted so that after the Waitdelay, I can check if OnCompleted triggered, and if not - connect as appropriate
So whilst the solution is simple in each case - I have to remind designers to do it - and overall: this feels a like a bug
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-183351 in the post.
|Component||UE - Gameplay - Gameplay Ability System|
|Created||Apr 14, 2023|
|Resolved||May 4, 2023|
|Updated||May 12, 2023|