Support Forum

RichAI along with DestinationSetter not working. Please help!

I purchased the PRO version of this asset last week and I must say this is really the best asset out there for pathfinding (better than Unity AI), so I was replacing the Unity navMesh with A*.
However, I stumbled upon an issue- I’m using Recast graph and when I set the target of ‘DestinationSetter’ script with ‘RichAI’ enabled, the characters do not move to the correct destination. But using the same target of ‘DestinationSetter’ with ‘AIPath’ enabled…then it works just fine. But I need the ‘RichAI’ to work with the destinationSetter so I can have the local avoidance feature, anything I am missing? Can you help me out? Thanks and really looking forward for your response. you can reach out to me at ndsolaz@gmail.com or respond here. I have also posted the message in the Unity store comments.

Hi

Where is the agent trying to move instead? The RichAI and AIPath should work identically as far as setting the destination goes. Note that AIPath also works with local avoidance.

Also, thank you for your review, but please keep questions here in the support forum. The asset store review section is not intended for support questions.

Thanks for getting back. Unfortunately the agent is not behaving identically when setting the destination in the destination setter script (I tested multiple times when only changing the destination, the AIPath works but not the RichAI).

I’m using only this line of code to alter destination of characters based on when some events happen in my project. In this code below, I’m setting the destination setter’s target.

script_destSetter.target = targetPosition;

However, I did some debugging and found these:

  1. When RichAI and AIPath is disabled, the characters move infinitely forward in z-axis. (I believe this happens because the character won’t have a path calculated as both RichAI/AIPath is disabled although the destination is set by the above code correctly in the inspector)
  2. When AIPath is enabled, the characters move to the correct set of waypoints. Everything is working fine as intended.
  3. When RichAI is enabled, the characters move infinitely forward in z-axis. (Although the above code has set the correct destination to the character, verified both in debugging and in inspector, the character only moves infinitely forward in z-axis). I feel when RichAI is enabled, RichAI is not getting the path for some reason.
  4. When RichAI is enabled, after many trial and errors, I see adding another line of code as mentioned below makes the first few characters move to the next waypoints as intended, but after few characters, all the characters begin to move infinitely forward in z-axis.

script_destSetter.ai.SearchPath();

  1. You said the local avoidance works with AIPath, should I just add the RVO controller along with the AIPath to activate it? or Is there anything else I need to add?

I’m in the process of replacing my Unity AI logic to A*, resolving these issues will be of great help.

Reg the asset store review, no worries…I updated my review there to keep the questions here. Thanks.

That’s very strange, the character shouldn’t move at all if the movement scripts are disabled. Are you sure you are not using some other scripts to move them? Check how the example scenes are configured.

Yes.

Thanks for pointing it out. yup the character was being called from another script to set the speed of character to move, so it actually moved even when the ‘AIPath’ or ‘RichAI’ was disabled.

Now, the main problem as discussed above still exists. I have mentioned the two problems below.

  1. When the ‘AIPath’ is enabled and then when used the code - ‘script_destSetter.target = targetPosition’, the character moves correctly to the target. But for the same character, when I disabled the ‘AIPath’ and enabled the ‘RichAI’, the character doesn’t move at all. While debugging, I see that the ‘script_destSetter.ai.reachedDestination’ property returns as ‘Inifnity’. Am I missing any step here to move the character when ‘RichAI’ is enabled?

  2. I got the RVO controller working for my project with ‘AIPath’ enabled. I want to know if there is a way to control the distance of how close the humans can get??? I know we can use the collider’s radius, but I can’t make the radius much higher as the humans then can’t enter like an escalator width. I want to decelerate the human when getting closer to a human and accelerate slowly to it’s speed when no one is close to the human, like how we realistically avoid each other.

Looking forward for your help. Thanks.

Hi

It could be because the AIDestinationSetter script just tries to find the movement script and set the destination on that. If you have both the AIPath and the RichAI scripts attached to the same object it might just find the AIPath script and try to set the destination on it. Try removing the AIPath script completely.

  1. There is no such parameter in the rvo algorithm. However, the ‘agent time horizon’ field can be tweaked to get better behavior. That field is the number of seconds into the future an agent wants to have collision free movement. So raising it will make the agents more more carefully around each other, and lowering it will make them more aggressive.