Announcement

Collapse
No announcement yet.

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

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

    [MENTION=14603]VSZ[/MENTION]

    Hi,VSZ
    I delete the ‘CloseEnough’ blueprint, and create a new one that is totally the same with the old one, now packing a success! Thank you

    Comment


      Great! Thanks for posting the solution. Looks like that blueprint got corrupted during download or unpacking. I've had something similar happen to me once.

      Steam Early Access: Drunk On Nectar - The Nature Simulator

      UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

      Comment


        4.13 or bust
        Website/Portfolio: http://www.VictorBurgosGames.com

        Join me on stream: https://www.twitch.tv/VictorBurgosGames for UE4 Game Dev. If you need help, just stop by and ask!

        Currently looking for exciting new opportunities! Available for work!
        https://forums.unrealengine.com/comm...ars-experience

        Comment


          I am sure that there will be a port for 4.13 soon

          Comment


            Originally posted by MatzeOGH View Post
            I am sure that there will be a port for 4.13 soon
            I hope so. I upgraded to 4.13 and now I can't open my project. Hope there's something soon!
            I'm an artist! Check out my work at https://cinebst.wixsite.com/cinebeastart and hit me up!

            You can e-mail me at cinebst@gmail.com.

            Comment


              My game's release is around the corner so that's been keeping me very busy.

              I don't have 4.13 installed either and will need to make free space for it first (believe me that's so much harder than it sounds and a mental diversion I'd rather not tackle now!).

              I'll try to take a look at it this week but I can't commit to it though.

              Steam Early Access: Drunk On Nectar - The Nature Simulator

              UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

              Comment


                I understand, dude. Don't fret too hard.
                I'm an artist! Check out my work at https://cinebst.wixsite.com/cinebeastart and hit me up!

                You can e-mail me at cinebst@gmail.com.

                Comment


                  [MENTION=31122]Cinebeast[/MENTION] - I found no compilation issues when I built the plugin for 4.13 today.

                  Some other plugin or code that you're using might be preventing you from opening your project.

                  In any case, I'll upload the plugin for 4.13 sometime this week but that's probably not going to help you open your project till you fix the other plugins or C++ code that your project uses!

                  Steam Early Access: Drunk On Nectar - The Nature Simulator

                  UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                  Comment


                    [MENTION=14603]VSZ[/MENTION]

                    Thank you! In the meantime, I've found a fix by opening a version of the project in 4.12. (Close call there. I forgot I had it.)

                    With that said, I don't think the issue's necessarily on my end . I tried to make a new 4.13 project with your plugin and met an error message. Without your plugin, I can make a new 4.13 project just fine. And I can make 4.12 projects with or without your plugin. So, I dunno.

                    Still, things look fixed for now.
                    I'm an artist! Check out my work at https://cinebst.wixsite.com/cinebeastart and hit me up!

                    You can e-mail me at cinebst@gmail.com.

                    Comment


                      Originally posted by VSZ View Post
                      In any case, I'll upload the plugin for 4.13 sometime this week but that's probably not going to help you open your project till you fix the other plugins or C++ code that your project uses!
                      Hey, thanks for the plugin. It's so good for a free product and we have been using it for a couple of engine versions now.

                      I was just trying to recompile for 4.13 and it gave me a list of errors.
                      Code:
                      2>  DonAINavigation.generated.cpp
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Classes\DonNavigationManager.h(519): warning C4458: declaration of 'Mesh' hides class member
                      2>  U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Classes\DonNavigationManager.h(487): note: see declaration of 'FDonMeshIdentifier::Mesh'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Classes/DonNavigationManager.h(519): warning C4458: declaration of 'Mesh' hides class member
                      2>  U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Classes/DonNavigationManager.h(487): note: see declaration of 'FDonMeshIdentifier::Mesh'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\DonNavigationManager.cpp(47): warning C4996: 'USceneComponent::AttachTo': This function is deprecated, please use AttachToComponent instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
                      2>  U:\Repository\UnrealEngine\Engine\Source\Runtime\Engine\Classes\Components/SceneComponent.h(594): note: see declaration of 'USceneComponent::AttachTo'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\DonNavigationManager.cpp(51): warning C4996: 'USceneComponent::AttachTo': This function is deprecated, please use AttachToComponent instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
                      2>  U:\Repository\UnrealEngine\Engine\Source\Runtime\Engine\Classes\Components/SceneComponent.h(594): note: see declaration of 'USceneComponent::AttachTo'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\DonNavigationManager.cpp(1730): warning C4456: declaration of 'bFoundResult' hides previous local declaration
                      2>  U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\DonNavigationManager.cpp(1706): note: see declaration of 'bFoundResult'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\Legacy\DEPRECATED_VolumeAdaptiveBuilder.cpp(28): warning C4996: 'USceneComponent::AttachTo': This function is deprecated, please use AttachToComponent instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
                      2>  U:\Repository\UnrealEngine\Engine\Source\Runtime\Engine\Classes\Components/SceneComponent.h(594): note: see declaration of 'USceneComponent::AttachTo'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\Legacy\DEPRECATED_VolumeAdaptiveBuilder.cpp(175): warning C4996: 'USceneComponent::AttachTo': This function is deprecated, please use AttachToComponent instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
                      2>  U:\Repository\UnrealEngine\Engine\Source\Runtime\Engine\Classes\Components/SceneComponent.h(594): note: see declaration of 'USceneComponent::AttachTo'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\Legacy\DEPRECATED_VolumeAdaptiveBuilder.cpp(1109): warning C4458: declaration of 'NAVOverlapQuery' hides class member
                      2>  U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Classes\Legacy/DEPRECATED_VolumeAdaptiveBuilder.h(156): note: see declaration of 'ADEPRECATED_VolumeAdaptiveBuilder::NAVOverlapQuery'
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Private\Legacy\DEPRECATED_VolumeAdaptiveBuilder.cpp(1110): warning C4458: declaration of 'ActorsToIgnoreForCollision' hides class member
                      2>  U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Source\DonAINavigation\Classes\Legacy/DEPRECATED_VolumeAdaptiveBuilder.h(159): note: see declaration of 'ADEPRECATED_VolumeAdaptiveBuilder::ActorsToIgnoreForCollision'
                      2>  [5/5] Link UE4Editor-DonAINavigation.dll
                      2>     Creating library U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-DonAINavigation.lib and object U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-DonAINavigation.exp
                      2>Module.DonAINavigation.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask &)" (?OnGameplayTaskActivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask@@@Z)
                      2>DonAINavigation.generated.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask &)" (?OnGameplayTaskActivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask@@@Z)
                      2>U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Binaries\Win64\UE4Editor-DonAINavigation.dll : fatal error LNK1120: 1 unresolved externals
                      2>ERROR : UBT error : Failed to produce item: U:\Unreal Projects\CDFStarfighter412\Plugins\DonAINavigation\Binaries\Win64\UE4Editor-DonAINavigation.dll
                      Seeing the error, I did some google-fu and came up with this quote :
                      Originally posted by kamrann View Post
                      Just a stricter compilation setting. It means you've created a parameter/local variable with the same name as a class member variable. Won't break anything but generally it's a good idea to avoid doing this.
                      This made me think that wasn't the real issue so the last part seems to be something to note.
                      Code:
                      Module.DonAINavigation.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask &)" (?OnGameplayTaskActivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask@@@Z)
                      Any idea what's up here ? I appreciate you are releasing a new version soon but I thought I would try compile first and have had no luck here.
                      Thanks again

                      [EDIT: bEnableShadowVariableWarnings = false; fixed the shadow variable issue and I was just left with deprecated warnings about the unresolved IGameplayTaskOwnerInterface error ]

                      [EDIT#2: I added "GameplayTasks" to the DonAINavigation.build.cs in the public dependencies and it compiled. Sorry for the distraction but I will leave this here to help others.]
                      Last edited by Doublezer0; 09-14-2016, 02:04 PM. Reason: New info from the forum
                      http://unrealdeveloper.uk

                      Comment


                        [MENTION=4854]Doublezer0[/MENTION] Thank you.

                        I already had bEnableShadowVariableWarnings in my local build so that explains why I didn't see any compilation issues but others did. GameplayTasks however should have already been a part of DonAINavigation.build.cs. In fact, that was the only change in the plugin between 4.11 and 4.12!

                        Anyway thanks for posting this, should help others get going until I release an update. There's a ton of important bugfixes that need to come in too and this is probably a good opportunity to publish those as well.

                        Steam Early Access: Drunk On Nectar - The Nature Simulator

                        UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                        Comment


                          4.13 support released (v1.4)

                          You can download the latest plugin and sample project using the link below or from the title post of this thread.
                          http://www.drunkonnectar.com/3d-pathfinding-ue4/

                          In addition to 4.13 support, this release contains some important bugfixes (summarized here, thanks to [MENTION=43607]rcdarcey[/MENTION] for reporting those.) Linux and Mac compilation issues have also been fixed. If you're targeting these platforms you'll need to manually build the plugin from source.

                          Steam Early Access: Drunk On Nectar - The Nature Simulator

                          UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                          Comment


                            Hy,
                            God, it´s been so long that I was away that I can't even remember how to crop my own scene ...
                            I would like some guidance in a scenario that bothers my mind: I have a bot that has wings and goes straight path to the goal ... cool and all easy here. Now if I put 2 obstacle right and left with one free voxel to pass between it will not pass as each wing want´s a voxel more, but if I change the roll value to 90º it goes in as it´s main body only needs a voxel free. My question is what should I mess with to trigger the calculation of the affected voxels with different roll values (or any rotation type) before I choose the right path?
                            Regards

                            Click image for larger version

Name:	question.png
Views:	1
Size:	9.1 KB
ID:	1115939

                            Comment


                              Did the green one go straight through the brick wall or did it actually find the right way?

                              In any case, this is not supported right now and there is no simple code change that will fully support rotation-aware pawns. If a pawn only needs to rotate once before navigation begins to reach its goal then one can easily test various pawn rotations iteratively and test pathfinding for each rotation. But in a more complex scenario a pawn may need to rotate several times in the course of navigation to successfully complete its journey. Maybe it rolls 90 degrees first to squeeze through an opening and then it rolls back to original state to squeeze through another, etc. So if your usecase is that complex you'll need to test suitable pawn rotations for every voxel and also memorize the rotation used at each voxel as part of the results. I expect this will have very poor performance without carefully tuning and optimizing the algorithm end-to-end specially for this usecase.

                              If your bot has retractable wings and rolling is not a gameplay requirement then you can apply a workaround:

                              A creature with retractable wings (like a bird) doesn't need collision bodies on the wings because a bird will simply retract its wings to squeeze through tight corners. That way you end up with just one collision voxel (on the core body) which is better for performance too. Even if you really need collision on the wings, you can always set their collision profile to something that the plugin isn't configured to pick up (eg: BlockAllExceptNav). In this scenario you'll still need to retract the wings to allow the pawn to squeeze through though.

                              Another workaround along these lines would be to exclude the wing's collision bodies for navigation queries (like I explained above) and use supplementary triggers/line-traces that tell your bot when it needs to roll to successfully squeeze through a gap.

                              Steam Early Access: Drunk On Nectar - The Nature Simulator

                              UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                              Comment


                                I have similar challenges with my flying AI in which the path calculated is not always achievable for my AI, due to drag etc. I use line traces to steer my AI a bit in the right direction to take into account the drag. I think you have to do something similar as suggested by VSZ which is ignoring the wings and trying to decide how to rotate when you are flying. The risk is that you get a solution in which there is no way to rotate your AI, but i would expect these to be rare and you can probably ensure those spots are marked as not accessable manually (placing a 1x1x1 volume on those spots for example)

                                Comment

                                Working...
                                X