Announcement

Collapse
No announcement yet.

DoN's 3D-Pathfinding / Flying-AI system (with full source!)

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

  • replied
    VSZ Hi, the plugin is amazing but I'm worried about performance. My level is 32km*32km and I'm using world composition (level streaming) so it has 64x64 tiles. I Think Infinite Navigation might be extremely costly on my map. So I need something like Navigation invoker component (A component that generate navigation around pawn/character dynamically). Do you have any plans for something like that? Or any suggestion to achieve my goal with low frame time cost?

    Leave a comment:


  • replied
    Hi there,

    I'm relatively new to game dev, and I have what I hope is a quick question,

    Does the "Fly To" blackboard task guide an actor along the "Data Path Solution Optimized?" vector array returned by the result handler delegate?

    I ask because I'm working over someone else's code, and in order to have an actor guide the player to an objective, they used "Fly to" on each subsequent vector in the optimized data path.

    This causes the actor to pause at each vector, and check if the player is with them. With a small voxel size, this movement looks rather strange and stilted.

    I was wondering if it might be easier (and more aesthetically pleasing) to instead impose a short time limit on the Fly To task, and use the final objective as the Flight Location Key.

    The idea being that actor would move as far as it could in the time allotted, then check for the player before moving again.

    Thoughts?

    Leave a comment:


  • replied
    hey !

    your plugin is awesome but, almost every time i launch the game I got this crash error:
    (i'm using the blackboard way)


    Fatal error!

    Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00007098

    0x000000001987CAEF UE4Editor-DonAINavigation.dll!TSet<AActor * __ptr64,DefaultKeyFuncs<AActor * __ptr64,0>,FDefaultSetAllocator>::FindId() [d:\rocketsync\4.19.0-3944462+++ue4+release-4.19\working\engine\source\runtime\core\public\containers\set.h:623]
    0x00000000198905A9 UE4Editor-DonAINavigation.dll!UBTTask_FlyTo::SchedulePathfindingRequest() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\donainavigation\source\donainavigation\private\behaviortree\bttask_flyto.cpp:92]
    0x000000001987C0DC UE4Editor-DonAINavigation.dll!UBTTask_FlyTo::ExecuteTask() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\donainavigation\source\donainavigation\private\behaviortree\bttask_flyto.cpp:58]
    0x00000000280D8EED UE4Editor-AIModule.dll!UnknownFunction []
    0x00000000280F668F UE4Editor-AIModule.dll!UnknownFunction []
    0x000000002810F600 UE4Editor-AIModule.dll!UnknownFunction []
    0x000000002ADFD628 UE4Editor-Engine.dll!UnknownFunction []
    0x000000002AE30184 UE4Editor-Engine.dll!UnknownFunction []
    0x000000002BB0690B UE4Editor-Engine.dll!UnknownFunction []
    0x000000002BB0BFE3 UE4Editor-Engine.dll!UnknownFunction []
    0x000000002DB0B713 UE4Editor-Core.dll!UnknownFunction []
    0x000000002DB0BA50 UE4Editor-Core.dll!UnknownFunction []
    0x000000002BB2CD35 UE4Editor-Engine.dll!UnknownFunction []
    0x000000002BB32AE2 UE4Editor-Engine.dll!UnknownFunction []
    0x000000002B38BF04 UE4Editor-Engine.dll!UnknownFunction []
    0x000000002B397429 UE4Editor-Engine.dll!UnknownFunction []
    0x0000000028FFD781 UE4Editor-UnrealEd.dll!UnknownFunction []
    0x0000000029899516 UE4Editor-UnrealEd.dll!UnknownFunction []
    0x00000000A1D55EAC UE4Editor.exe!UnknownFunction []
    0x00000000A1D66BD0 UE4Editor.exe!UnknownFunction []
    0x00000000A1D66C4A UE4Editor.exe!UnknownFunction []
    0x00000000A1D74149 UE4Editor.exe!UnknownFunction []
    0x00000000A1D75B57 UE4Editor.exe!UnknownFunction []
    0x000000007E011FE4 KERNEL32.DLL!UnknownFunction []
    0x000000008066F061 ntdll.dll!UnknownFunction []
    0x000000008066F061 ntdll.dll!UnknownFunction []



    Could somebody help me undersand what's not working ?
    Maybe it is a bug ?

    Have a nice day !

    Leave a comment:


  • replied
    We need a functions like:
    AbortDynamicCollisionUpdateTask()
    RemoveDynamicCollisionObject()

    Now the only way remove a dynamic object is to move to the edge of the map.

    Leave a comment:


  • replied
    Hello. For those who are digging this topic, I had some experiments not so long ago, here are my video with all relevant links (including sample project) in description:
    https://www.youtube.com/watch?v=jnrZBlBkkq8
    Disclaimer: I am using commercial "SixDOF" flying component for ship movement.

    Leave a comment:


  • replied
    Originally posted by Da Stranger View Post
    Hello,
    I can't get the SchedulePathfindingTask node to work. I see a built path, but no movement takes place. Like in your demo, my Actor is a descendant from DefaultPawn and AIController class is FlightAIController
    Answering my own question - this method only builds a path, but does not do any movement. Also the path optimization engine needs some ...optimization.
    In other scenarios - great component.
    Attached Files

    Leave a comment:


  • replied
    You're a cod among goldfish!

    Leave a comment:


  • replied
    Hello,
    I can't get the SchedulePathfindingTask node to work. I see a built path, but no movement takes place. Like in your demo, my Actor is a descendant from DefaultPawn and AIController class is FlightAIController

    Leave a comment:


  • replied
    Hi
    HELP! I've got this working great. it's awesome....BUT...I've got 3 maps, each with a different gamemode because each map uses a different character/pawn. When i load the maps manually and run them one at a time everything works perfectly; the AI finds its waypoints and my flying saucers follow their paths perfectly every single time. however, when I call a map from ANYWHERE within the program (on a map after i complete a task, hit a trigger box, etc.) when the new map loads the flyingAI doesn't pick up the waypoints and my saucers go flying off into space. I CANNOT figure this out and it's driving me nuts! do i need a delay on beginplay or something? any help would be appreciated!
    thank you!

    Leave a comment:


  • replied
    Originally posted by Vaheva View Post
    This Yaw problem is gone. I started it from new in other project and now drone rotating in any angle, no problem.
    To clarify, no part of a pawn's locomotion is handled by this plugin. After solving a path, it simply hands all movement logic over to your pawn via AddMovementInput so your pawn's movement component is the right place to investigate issues like this. In any case, glad to hear it was solved.

    Originally posted by Vaheva View Post
    How to destroy path after actor destroy? I have respawn system and I see, path still exists and new drone can't fly.
    By "destroy path" I'm guessing you mean the black lines that depict a solved path? If so, you just need to disable the relevant debug option from the Fly To node's Query Params (all the visualize solution flags need to be turned off).

    For your second question you'll have to check the logs and see what error message is being shown. If your drone can't fly after being spawned it is indicative of some other fundamental issue; it has nothing to do with the previous bot's path (which are just debug lines)

    Originally posted by Vaheva View Post
    ... I had my drone flying in minutes and I love it. ...Thank's again, great job!
    Thank you

    Leave a comment:


  • replied
    Hello!

    Thank's for this plugin! It was very easy to use, my big problem was with plugin activation, because this is my first one in engine. But after installation I had my drone flying in minutes and I love it.

    Question:
    I have nice and smooth drone rotation in Yaw, but I can't set up rotating in Pitch. I tried all settings for controller/drone movement etc but it not works. I can code it myself depending on nav points locations and angle, but before I will invent wheel again, maybe is here simplest solution, just I miss something?


    This Yaw problem is gone. I started it from new in other project and now drone rotating in any angle, no problem.

    How to destroy path after actor destroy? I have respawn system and I see, path still exists and new drone can't fly.

    Thank's again, great job!
    Last edited by Vaheva; 12-08-2017, 04:34 AM.

    Leave a comment:


  • replied
    Originally posted by issam1975 View Post
    VSZ : thanks a lot, really appreciate <3
    good luck for your game even if i hate insects
    Thank you

    Insects are only one aspect of DoN btw! Plant-life/ecology is a big part of the game too.
    Other members of the animal kingdom will eventually make their way into the game, so there will be something in there for everyone one day

    Leave a comment:


  • replied
    VSZ : thanks a lot, really appreciate <3
    good luck for your game even if i hate insects

    Leave a comment:


  • replied
    Originally posted by FlibleBable View Post
    Hello and thanks for this plugin. I can't seem to get the GetRandomPointInNavigableRadius node to work with this plugin. I want to get a random vector location around the AI character. I've used this node before in tasks for my behavior tree but I can't seem to get it to work with this plugin. It just keeps going to the center of the map. Anyone have a suggestion or workaround?
    That function only works with Unreal's native navigation system (whose navmesh cannot be used for 3D pathfinding); the plugin uses its own navigation structures and API.

    The plugin does offer the function FindRandomPointAroundOriginInNavWorld (on the manager actor)with somewhat similar functionality. In a recent version this was exposed as an EQS query by a community user although I haven't tested EQS usage myself.

    Originally posted by FlibleBable View Post
    Anyway I appreciate this plugin. It is fun to play with.
    Thank you, glad to hear


    Originally posted by issam1975 View Post
    VSZ is there a way to get a github link or something ? i don't have the launcher for some good reasons to download the plugin
    This post has a direct download link for the 4.18 version of the plugin.

    In any case, here's the github repo as well: https://github.com/VSZue/DonAINavigation

    Originally posted by KevODoom View Post
    @Emrehan VSZ FWIW, I've verified that DonAINavigation does work without modification in 4.18.
    The EngineVersion needed to be updated to 4.18.0 in DonAINavigation.uplugin, but it does compile and run without evident issues.
    There's a Clear Timer by Handle node in the DemoMap event graph that needs to be replaced by a ClearAndInvalidateTimerByHandle node, but those are the only required changes I've run across so far.
    Yes! I'd encourage users to always try migrating the plugin as-is if the official build for a new engine release is not yet available; oftentimes it just works, or will need only minor modifications for API compatibility.

    For 4.18, the latest version was released last week (Link) and also carries a major bugfix for dynamic obstacles in single-threaded mode (most users should be unaffected fwiw).

    Originally posted by KevODoom View Post
    VSZ I love this plugin - thank you so much for sharing it with us!
    Thanks once again

    Leave a comment:


  • replied
    VSZ is there a way to get a github link or something ? i don't have the launcher for some good reasons to download the plugin

    Leave a comment:

Working...
X