I am seeing in several places that AIMoveTo (the blueprint node) is deprecated/untested and should not be used; instead, we should use the MoveTo Task in behavior trees.
However, doing this causes a loss of certain functionality; namely, that the AIMoveTo BP node can have its target location updated mid-move and the AI in question will change targets, while this cannot be done by changing the blackboard value of the MoveTo target while the MoveTo is still going on… and the AIMoveTo BP node can have the “acceptable radius” value dynamically updated mid-move as well.
It’s the latter that I’m concerned with; I have written a custom MoveTo BT task using the MoveTo node, which periodically checks how many actors are within radius of the target and dynamically widens the acceptable MoveTo radius (so that as more actors crowd around the target, they can all “reach” it without trying to shove past each other into a tiny radius.
Of course, I am experiencing the expected periodic lock-ups from using AI MoveTo which have been reported, and which are the reason we are told not to use AIMoveTo anymore. So, is there a way to achieve this functionality properly with the AIMoveTo task we’re given to work with? I can’t find a way to alter the acceptable radius variable, and using separate MoveTo tasks causes actors to awkwardly stop and then restart their movement as the BT switches from the first MoveTo to the second.