Search Unity

[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:
    859
    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,195
    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:
    558
    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:
    558
  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:
    558
    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:
    5
    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:
    37
    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. LeaOnslavger

    LeaOnslavger

    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. LeaOnslavger

    LeaOnslavger

    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:
    54
    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:
    29
    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:
    183
    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:
    29
    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:
    183
    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:
    859
    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:
    29
    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:
    29
    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:
    29
    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
     
  34. Huguloso

    Huguloso

    Joined:
    Dec 2, 2020
    Posts:
    1
    Hello, I'm having some issues here.

    Almost my whole level is composed of static objects (for performance and to use baked lighting), but when I to register one of these objects as an obstacle I get this error:

    Not allowed to access triangles/indices on mesh 'Combined Mesh (root: scene) 2 Instance' (isReadable is false; Read/Write must be enabled in import settings)

    Basically saying the object can't be added because the mesh generated by Unity for static objects isn't readable. Is there a workaround for this or does Nav3D doesn't support static objects as obstacles?

    Thanks in advance!
     
  35. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    29
    Hi Huguloso!

    Thanks for purchasing Nav3D!

    All you need is to enable specified option in the import settings for your mesh. upload_2023-9-26_23-1-59.png

    Thanks for your request, have a nice day,
    Nikita.
     
  36. ArteastUFO

    ArteastUFO

    Joined:
    May 19, 2017
    Posts:
    10
    Hello @SoftbrixStudio ,
    In my space game, I have different-sized, rectangular spaceships. I wanted to know, is it possible to make agents in a rectangular shape? Or only spherical-shaped agents supported like in all other pathfinding assets.

    Thank you in advance for your answer)
     
  37. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    29
    Hi ArteastUFO!

    Unfortunately, only spherical agents are supported at this time.

    But we would like to know what you mean by non-spherical agents. How will their navigation fundamentally differ from the navigation of spherical agents?

    Would you like the agent's geometry to be taken into account when planning a route and, for example, allowable turning angles to be calculated?

    Thanks for your request, have a nice day,
    Nikita.
     
  38. ml785

    ml785

    Joined:
    Dec 20, 2018
    Posts:
    119
    Hi, is collision supported? For instance, if a pursuer with a mesh collider knocks into another mesh with mesh collider, will the physics respond as if they bumped into it?

    Is there option to make pursuer move via Rigidbody rather than via transform?
     
  39. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    29
    Hi!

    Collision support is possible between two gameobjects driven by rigidbody physics.
    In our implementation, agents perform movement using the transform component.
    Therefore, a collision between a Nav3D agent and another object with rigidbody and collider components WILL NOT be handled properly.

    But, our solution allows us to find a path between points A and B without using our agent implementation. So you can independently implement a physics-based agent and move along the found trajectory.

    Thank you for your question, best wishes, Nikita.
     
    ml785 likes this.
  40. Assegia

    Assegia

    Joined:
    Jan 14, 2024
    Posts:
    1
    Hi!,

    I just have unity personal licence (free version), if I purchase will the asset work on that version of unity?

    I'm quite focused on the maze and local avoidance features. I want to basically import a model, say a 3D room with internal rooms inside, so basically a place where you can move around like that maze example you have and build a path like you did by selecting a start and end point (preferably by giving it set coordinates to go off). Then once a path hopefully is made, I would like to convert that path into a solid path, or maintain the path with a spline feature or something similar. As I want to take that path out eventually and basically make it a solid pipe I can use, can be curved is this possible? If this is possible, can I make this part of the collision avoidance object for a new path?

    Also do you have a new support email? I want to ask some more questions. I want to buy this soon!
     
  41. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    29
    Hi, Assegia!
    Yes, the unity personal licence will operate properly with Nav3D.

    Of course Nav3D provides you to perform pathfinding through maze-like scene configurations.
    When performing a pathfinding, a smoothing option is available, which produces a fairly smooth curve in space. You can then create any geometry in your own manner based on the resulting smoothed trajectory.

    Regarding the use of the custom geomeetry as an avoidance target when performing local avoidance, we do not have a ready-made solution. (Maybe we'll support this later).

    But we have the ability to perform local avoidance in relation to objects that have a spherical shape. So any custom shape in space can be covered by many smaller spherical objects for which local avoidance will performs properly. This trick will probably work.

    Our current support email is support@softbrix.studio
    Thanks for your question. Contact us at the address above and we will answer all other questions.

    Best wishes, Nikita.
     
    Assegia likes this.
  42. Aur0k

    Aur0k

    Joined:
    Oct 20, 2017
    Posts:
    6
    just a humble opinion about the price:
    its horribly expensive compared to other assets...
     
  43. SoftbrixStudio

    SoftbrixStudio

    Joined:
    Jul 1, 2013
    Posts:
    29
    Hi, Aur0k!

    It's very sorry to hear about this.
    But thank you for your opinion, it is important to us :)

    You can ask any specific question about the asset by writing to us at the support address: support@softbrix.studio

    Best wishes, Nikita.
     
    Last edited: Feb 15, 2024