Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

[RELEASED] Nav3D - easy pathfinding in 3D space.

Discussion in 'Assets and Asset Store' started by SoftbrixStudio, Oct 7, 2017.

  1. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    Yes, asset is still supported. Active work is underway to implement new functionality, improve the performance and convenience of the existing one. Before New Year will be a big update, which we have been preparing all this time in parallel with the support of users and the main work, allowing not to starve.
     
    Last edited: Nov 10, 2019
  2. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    Mail support is provided regularly. The forum until recently was in oblivion, as notifications don't come to us, and to follow there was no one.
     
  3. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    Asset is still supported.
     
  4. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    And you can still do it. I do not see anything shameful in the fact that we are busy rework asset, work on improving its user friendly, and implementation of functions such as dynamic obstacles, routing, locale avoidens.
     
    Last edited: Nov 10, 2019
  5. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    834
    Sorry, I was thinking it was maybe abandoned (happens a lot in the Asset Store.) I'll definitely be picking it up soon then.
     
  6. dgoyette

    dgoyette

    Joined:
    Jul 1, 2016
    Posts:
    4,013
    Great to see this product is still supported. I was curious about the A* search approach you're using. Is this using a 3D Jump Point search, to handle areas with a lot of symmetries? Or is it using a more basic A* approach where it evaluates all the neighbors from A to B? Just curious if you had any performance benchmarks, with a given search area and density? For example, most of my game areas looks something like this:

    upload_2019-11-24_16-35-18.png

    A series of relatively big rooms, with lots of empty space, spanning a volume of maybe 200x200x200. I'm just wondering how likely I am to see good performance from this asset in trying to pathfind through this kind of volume.
     
  7. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    Among other things, the upcoming update adds visualization of the path search, also increased work speed and reduced memory consumption.
    Space chunking is not currently implemented.
    Astar.gif
    This Gif presents a visualization of the operation of the A * algorithm in slow motion. The real time to find the path for this case is 120ms.
    The amount of free space in this maze is approximately 25,000 cells (with a cell size of 1x1x1).

    In your case, such a small cell size is not required and will even be harmful, because the path may be too close to the walls. So, if you use even 5x5x5 cells in size, your space will be 64,000 cells. It can be assumed that the worst time in this case will be approximately 300ms.

    We can send you an update before the official release, if necessary.
     
    Last edited: Nov 25, 2019
    HeadClot88 and dgoyette like this.
  8. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    554
    Any thoughts/plans/consideration to implementing DOTS/ECS/burst to perhaps make ridiculously fast?
     
  9. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    We will experiment with HPC#, but it is not the primary task.
     
  10. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    554
  11. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
  12. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    We did not manage to publish the update, it is now in the final review, after which it will be sent for publication. Sorry for this.
     
  13. khrunov

    khrunov

    Joined:
    Jan 9, 2020
    Posts:
    1
    Can you contact me, please, for applaing your asset to no-game field.THX a lot.
     
  14. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    554
    You should consider implementing the Lazy Theta* algorithm to make the pathing way smoother, more natural and eliminate the stair-stepping movement.
     
  15. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    In the current implementation, you can enable path optimization and smoothing. The “Lazy Theta *” path search algorithm may possibly be implemented by the second half of 2020, among some other algorithms.
     
  16. Unany

    Unany

    Joined:
    Aug 2, 2018
    Posts:
    4
    How's the update coming along? Would it include unity 2019.x support as well as dynamic object avoidance?
     
  17. Tyndareus

    Tyndareus

    Joined:
    Aug 31, 2018
    Posts:
    30
    Deserializing from file seems to bring in the graph with some ridiculous scale.


    Also the pursuers seem to stop after a few runs, will debug but im guessing they get stuck in a waiting state for some reason.
    Edit: Seems like the most responsible states are WaitingForPursuerQueue and WaitingForRequest. What I have done is used the Waypoint Reached event to call MoveTo again as these things roam randomly, by the looks of it MoveTo adds to the list. Perhaps an object would be better suited for that and then you can queue up various move commands, even if its lagging behind it will still execute the move provided.
     
    Last edited: Mar 12, 2020
  18. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    An update delayed until mid to end of April, sorry.
    Local avoidance likely to be released later.
     
  19. Sam_Zlobniy

    Sam_Zlobniy

    Joined:
    Sep 23, 2018
    Posts:
    12
    Yes. We know these problems in the current version - they are already fixed in a future update.
     
  20. rigidbuddy

    rigidbuddy

    Joined:
    Feb 25, 2014
    Posts:
    39
    Hi @SnigirevNikita. Great asset so far!
    But I've faced the issue with incorrect deserialization of minCellSize (always 1). You could use sequential BinaryWriter.Write(*), BinaryReader.Read* to avoid such bugs.
     
  21. Psychus

    Psychus

    Joined:
    Feb 5, 2017
    Posts:
    2
    Hello,

    I have a problem with this asset, when I move an object with an obstacle tag, the SpaceManager does not automatically update the collision, it remains intact.
     
  22. Psychus

    Psychus

    Joined:
    Feb 5, 2017
    Posts:
    2
    This asset cannot make another path if it is objects with a very high scale of size.

    the path it takes is the same for everyone, as if they were all on a scale of size 1.

    I am imitating the enemies of the classic doom and the reason for buying this asset is because AI can travel through the air (Axis Y) and in this game there are enemies big and tiny (cacodemon, lost souls, pain elemental).

    Is there any solution for this?
     

    Attached Files:

  23. alex_1302

    alex_1302

    Joined:
    Aug 20, 2019
    Posts:
    48
    Hi. i am considering to adquire this asset, but i have some questions in order to determine if could be useful to my project:
    - i have some big scenes. for example an scene has a terrain of 20 x 20 kms. it has 10.000 trees and 4 cities, every city has aprox between 100 until 200 buildings, so considering that, i want to use pathfinder 3d to add around 200 spaceships flying around (using 3d paths), these spaceships would avoid hitting the static objects (buildings, trees, ground, and so on). how would be the performance to find and traverse paths in an scene like the described?

    Thanks in advance.
     
  24. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    24
    We are happy to announce that we have released a completely redesigned version of our asset!
    Meet Nav 3D :D

    In the new version, you will finally be able to use the local avoidance mechanism, as well as feel the convenience of our completely redesigned API.

    We have reworked literally all the components of the asset and offer to take a look at it like the first time:)

    We are also attaching vouchers for the five lucky ones!
    We will be grateful for a review in the asset store based on the experience of using asset.

    ASV-WPQM-PNJ7-JV9R-7H76-APGT
    ASV-K4X4-LCUE-WCJ6-DDNK-RPYJ
    ASV-QVWM-VJG3-ALVU-Y44U-ALQ4
    ASV-YP43-N7CN-UJCP-FV7T-ME3U
    ASV-DUEF-GNQN-AA4E-JWC9-4977
     
    Last edited: Sep 6, 2022
    StevenPicard, SanchoP and Unany like this.
  25. EternalMe

    EternalMe

    Joined:
    Sep 12, 2014
    Posts:
    180
    Hi. Congratulations. Looks very promising. Some questions:

    1) Using this package API, will I be able to calculate path from X to Y without using any other fancy tools? Like get array of points in C#?

    2) Could be there some bugs with the local avoidance? Because in demo "SpaceMiners", I see lots of times, that 2 colliding agents do no just curve around each other, but go into opposite direction and then back. Sometimes 2 very near agents start to jiggle (can be seen also in video). It's a lot of agents and fast and hard to capture the moments, but overall it doesn't look or feel good.
     
    Last edited: Sep 9, 2022
  26. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    24
    Hi!
    Thanks for your questions.

    1) For your first question.
    What do you mean by "using other fancy tools"?

    Of course you can calculate path from A to B using Path class. You can look at it closely at corresponding documentation section.

    2)As for local avoidance, yes, there are currently some bugs that we are already fixing. For the most part, the several next updates will be related to the elimination of these shortcomings.

    At the moment it is possible to compensate for inaccuracies in local avoidance by playing around with the velocity weight settings. This will make the agent velocity trajectories smoother, and the change in the velocity vector less significant from frame to frame.

    P.S.
    Generally speaking, three more vouchers out of the five published by the post above are still valid and you can get Nav3D for free.
     
  27. EternalMe

    EternalMe

    Joined:
    Sep 12, 2014
    Posts:
    180
    Thank you. All is clear. And I used the voucher. I am very grateful.
     
    SoftbrixStudio likes this.
  28. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    834
    I've owned this asset for a year or so. I'm looking forward to the updated version!
     
  29. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    24
    Hi!
    The updated version is already available for everyone who purchased the asset earlier.
     
    StevenPicard likes this.
  30. RedHeart95

    RedHeart95

    Joined:
    Jun 25, 2016
    Posts:
    6
    Hello,

    Having a few problems and was hoping you could clarify some things for me. Firstly, I am receiving an error in YieldingScenario: "transform.position assign attempt for 'agent_0' is not valid. Input position is { NaN, NaN, NaN }."

    I also receive this error in my own scenes, Could you elaborate on what is happening here?

    I also do not quite understand how I set up the avoidance for static elements of a scene, as combined meshes are generated after the scene starts. (And are not read/writeable)

    Many thanks,
    -R
     
  31. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    24
    RedHeart95, hello!

    For the first problem, could you please describe in which cases this happens. What are the steps to reproduce? We can't reproduce that at YieldingScenario scene. If possible, please send us a test scene where the problem is reproduced.
    There is also a possibility that this issue has already been fixed and will not be reproduced after the next update, but we will still investigate it in more detail on version 1.0.0.

    As for the second problem, unfortunately I don't have a quick answer. In order to handle obstacles correctly, the game object mesh must be readable, so this flag needs to be set to true. How to do it is a good question. A quick search brought me here, but I didn't read very carefully https://forum.curvyeditor.com/thread-576.html. Perhaps this will help. If not, please provide a test project where we could reproduce the issue. We'll try to find a solution.

    Thanks for feedback.
     
  32. graizzaromatteo

    graizzaromatteo

    Joined:
    Jun 8, 2019
    Posts:
    1
    Hi Nikita, I hope you are well

    I wanted to ask. Does the movement of an agent take into consideration its traveling velocity?
    I mean, if an agent is going forward in a straight line at cruising speed, and I tell it to turn 180 degrees. Will it stop and turn, or make a large turn (going even further in the process) to point to the target?
    Like a spaceship on Homeworld, the scouts in Battlestar Galactica Deadlock, or the ships of Treasure Planet: Battle of Procyon.

    The left-most path in this image is an example of what I am saying.

    I explored the demos but I didn't find an agent performing that move, and I'm not sure the property MaxAgentDegreesRotationPerTick is what I am looking for.

    Thanks for your time, have a nice day,
    Matteo
     
    SoftbrixStudio likes this.
  33. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    24
    Hi Matteo!

    In the current implementation of Nav3D, the agent follows strictly along the found trajectory, deviating slightly from it, if it suddenly had to perform a local avoidance maneuver.

    The MaxAgentDegreesRotationPerTick parameter is responsible for the speed of the agent's rotation in the direction of motion. Each FIxedUpdate tick the agent rotates to a current velocity vector, and this parameter specifies the maximum allowable rotation per tick.

    So agents in Nav3D do not imply any motion planing models. And in fact, they are considered during navigation as a point that can instantly change the velocity vector by any value.

    But with Nav3D, you can calculate a path in space, and then use the resulting trajectory to calculate your own motion planing behavior.

    Also thanks for the idea, we will take note of this. And we will probably someday implement our own motion models for Nav3D agents.

    Offhand, I can recommend the subchapter "Motion planning with rotation" from the book by Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars. Computational Geometry: Algorithms and Applications. This is probably close to what you are interested in.

    Thanks for your request, have a nice day,
    Nikita