Announcement

Collapse
No announcement yet.

DoN's 3D Pathfinding for Flying A.I. [Support Thread]

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by crumbaker View Post
    About to start this on 4.22 anything I should know besides the previous comment to get this working properly is the initial release video by op still the best to go by for a tutorial?
    Hi crumbaker ,

    Yes, The video by the author provides the essential information you need to use this wonderful product. There are a few things to keep in mind:

    Pay attention to the video closely for what he says to do and not to do
    Ensure you use the XYZ GridSize properties within the DonManager to expand the volume, NOT the UE transform tool (or direct editing) to increase/decrease the scale of the bounds of the DonManager.
    Ensure your AI never go outside the bounds, or crash (at least for me on 4.22.2).
    *** This one took me a while to figure out, but it was his tools that allowed me to figure it out, despite him saying it in the video (which is easily overlooked). If you have some goal inside some object, say for example, a box collision that you use to generate a point of reference inside its bounds (maybe random, or just the origin point of the box volume), or the goal is the location of some actor: Ensure you are aware that the DonManager uses an array of entries to exclude from pathing, specifically, by default, WorldStatic and WorldDynamic. In my case, I have a box volume around a track that I generate random points for an AI to fly through. These actors were set to WorldStatic. When the AI would fly from point to point, it would appear as if it would collide with the box or have some trouble going to the point within the bounds. The Author provides a set of tools. One of them allows you to call SchedulePathFindingTask, which has the option of showing you points. I found that the points would go up and over the bounding box. Then I looked at the checkpoint and sure enough, WorldStatic. I changed it to a new type. This tool is freaking awesome and it works REALLY fast!

    Thank you VSZ for this wonderful gift!!

    Comment


      I can not figure out what I'm doing wrong, both the Character and Pawn I made, using the same controller and behavior tree, will not move an inch. I'm using a small "random points in a box", 50 on all sides with an origin of the AI. I tried it with a random point in a navigable radius and even just telling it to go to a set vector location. It will not move. There is a Don's nav mesh around it, I've tried both, neither of them will get either the character or the pawn to move. Does this work in 4.23?

      Comment


        Originally posted by MaxSMoke777 View Post
        I can not figure out what I'm doing wrong, both the Character and Pawn I made, using the same controller and behavior tree, will not move an inch. I'm using a small "random points in a box", 50 on all sides with an origin of the AI. I tried it with a random point in a navigable radius and even just telling it to go to a set vector location. It will not move. There is a Don's nav mesh around it, I've tried both, neither of them will get either the character or the pawn to move. Does this work in 4.23?
        Hey MaxSMoke777 Have you watched the YouTube video the author supplied? Do you have a movement component on the pawn? Is the point located in an object that is an object defined as an 'obstacle' in the DonManager properties? Is the DonMesh around the entire area from start to finish? Did you enlarge the DonManager area byusing the object's transform (increasing scale) or did you use the X Y and Z properties in the DonManager to enlarge the area? Did you change the voxel size?

        Comment


          Originally posted by MaxSMoke777 View Post
          I can not figure out what I'm doing wrong, both the Character and Pawn I made, using the same controller and behavior tree, will not move an inch. I'm using a small "random points in a box", 50 on all sides with an origin of the AI. I tried it with a random point in a navigable radius and even just telling it to go to a set vector location. It will not move. There is a Don's nav mesh around it, I've tried both, neither of them will get either the character or the pawn to move. Does this work in 4.23?
          Enable debug path drawing on the move node in behavior tree and check console log for warnings from plugin

          Comment


            Originally posted by MaxSMoke777 View Post
            I can not figure out what I'm doing wrong, both the Character and Pawn I made, using the same controller and behavior tree, will not move an inch. I'm using a small "random points in a box", 50 on all sides with an origin of the AI. I tried it with a random point in a navigable radius and even just telling it to go to a set vector location. It will not move. There is a Don's nav mesh around it, I've tried both, neither of them will get either the character or the pawn to move. Does this work in 4.23?
            One other thing: if you're using the behavior tree FlyTo node, are you using the custom event provided to link to AddMovement?

            Comment


              Hello!

              It's seems like the author abandoned that thread, but I still gona post a question, because the documenation is quite minimalistic and it's a last thing I have to do before digging deep in a source code.

              My main problem is that the navigation mesh is NOT updating when you scale the obstacle down. I've looked through comments and found a parameter named CustomCacheIdentifier of function ScheduleDynamicCollisionUpdate, which can probably resolve the issue, but the description of it is quite obscure and I still havened managed to use it correctly. I tried to set different values of that parameter for differetn scales, but it hadn't helped. Setting bReloadCollisionCache to true seems also to have no effect.

              Thanks in advance!

              Comment


                Originally posted by Dain_Torson View Post
                Hello!

                It's seems like the author abandoned that thread, but I still gona post a question, because the documenation is quite minimalistic and it's a last thing I have to do before digging deep in a source code.

                My main problem is that the navigation mesh is NOT updating when you scale the obstacle down. I've looked through comments and found a parameter named CustomCacheIdentifier of function ScheduleDynamicCollisionUpdate, which can probably resolve the issue, but the description of it is quite obscure and I still havened managed to use it correctly. I tried to set different values of that parameter for differetn scales, but it hadn't helped. Setting bReloadCollisionCache to true seems also to have no effect.

                Thanks in advance!
                Hello,

                I have used this plugin successfully in 4.22. When you say "The navigation mesh", what do you mean? When you say "obstacle", are you referring to an object that is defined in the array of obstacles attribute on the DonNavigationManger?

                There is no navigation mesh as far as I know. The DonNavigationManager is just a volume of sorts and is adjusted using its properties, not the transform's scale. There is an X, Y, Z size, as well as a voxel size that fills the given XYZ size of the volume.

                Can you post more information, screenshots with arrows pointing to things? I'd like to help since I have a fair amount of experience with this plugin.

                -Erol

                Comment


                  Thank you for the response! I recorded a 2-minute video to represent an issue:
                  https://youtu.be/bYymuJ7dVsg

                  Comment


                    Originally posted by Dain_Torson View Post
                    Thank you for the response! I recorded a 2-minute video to represent an issue:
                    https://youtu.be/bYymuJ7dVsg
                    Hi Dain_Torson , what do you see if you turn on Show Collision when moving the BP_Fan with BP_Fan start in up position and then start in down position? Does the collider move with the fan? It is difficult to see what is really happening with limited information, and the behavior acts as if the collider to the BP_Fan is not moving when the fan starts in the down position. In other words, when the BP_Fan starts in down position, the behavior of the Pathfinding algorithm seems to see the collider is still in down position even though the mesh is In up position.

                    Few questions:
                    1. How many colliders are on BP_Fan? Since I do not know if this is some Blueprint made from code, I can only guess that only the cube has a collider.
                    2. For all collision entries on the blueprint, what are the profiles of each collision entry?
                    3. What collision types are listed in the DonManager obstacle type array?
                    4. What collision types are listed in the DonManager safe to ignore array?
                    5. Since I cannot see the DonManager volume in the level, I'm assuming it encompasses the same area no matter if start the game with AutoEnabled = true or AutoEnabled = false on the BP_Fan. Is this correct?

                    Few things I noticed:
                    1. @1:26 in the video, there are outputs to the log that seem to be exactly what you have commented out in code. Is that log entry coming from somewhere else you have not shown in the video?
                    2. I thought I remember in the video the author put on YouTube for instructional purposes, that if there is a collison found during ScheduleDynamicCollisionUpdate, that one has to re-run SchedulePathFindingAlgorithm. I see that you're calling the ScheduleDynamicCollisionUpdate but I can't see if you're handling the delegate return that fires if there is a collision found in the current path solution. If that delegate fires, I believe you have to rerun a pathquery once more to get a new path. While we can agree that the dynamic collision update and new path finding query works when the gate starts up, we need more information to truly find out what is happening in the background.
                    Here is the youtube video for the introduction and some information about the plugin. https://www.youtube.com/watch?v=6Tr_K551zvI&t=781s Specifically, he talks about these delegates @ around 30 or so minutes. While the video mainly talks about and shows Blueprint nodes, it makes no difference as the C++ code should be handled the same way.

                    See what you can find out and please post back if you still have issues, or if you fixed it. I'd really like to continue helping if I can.

                    All the best!

                    -Erol

                    Comment


                      Thank you for your feedback, erol_demirci ! There is another video I've recorded:
                      https://youtu.be/4dmPql7F6HY

                      There pathfinding query is rerun in the next tick after the previous pathfinding query ended.
                      Last edited by Dain_Torson; 01-04-2020, 10:04 AM.

                      Comment


                        Hi, when can we expect an update for UE 4.24+ ?

                        Comment


                          Need update to 4.24 ASAP!

                          Comment


                            Hi Golden4o and vlad3r08 what is the issue you're seeing in UE4.24 with this plugin?

                            Dain_Torson I have not had a chance to look at your new video. Any new findings since you last posted sir?

                            Comment


                              Hey Golden4o I am not sure if your response was to me because of some confusion.

                              Unfortunately I am not related to development or official support of this plugin. I just try to help people with this plugin since the developer abandoned it long ago and I have some elementary experience with it. I am not affiliated or can help in any way as to how this plugin interfaces with Unreal Engine. That is something we must do as a community, or, the developer must do on their own.

                              Or, perhaps I am incorrect and you meant something different?

                              -Erol

                              Comment

                              Working...
                              X