[TUTORIAL] Real-Time Dynamic Cover System

Hey guys & gals, I’ve written an in-depth tutorial on how to create a robust, real-time dynamic cover system in UE4, complete with demo project & full source code.
Head over to…real-engine-4/ to check it out!

It uses two techniques: navmesh edge-walking and 3D object scanning to generate cover and a BT task to find the best one at run-time.

Feel free to post any questions you might have here.

Nice work.

Mikko (who created recast) did a nice talk in Paris where he discussed using Recast for cover generation during the voxelization step. Essentially using the navmesh generation data to determine if a spatial volume is filled or not, hence allowing spatial cover queries during that step to be stored for cover usage.

I’ve personally gone down the navmesh edge route, although I sample the edges at step intervals and at various heights. I’ve also recently added cover probes where you can place down actors that generate cover “rails” the same way they do it in CryEngine. Honestly none of it feels good to me :slight_smile:

Good that you’ve implemented the tile-update stuff though, that one is definitely required for dynamic pathing at least.

Thanks! I use navmesh edge-walking for everything but “force fields” - static shields. They don’t influence the navmesh at all, so can’t really edge-walk around them; have to resort to 3D object scanning there, implemented as an ActorComponent to remain lightweight. With proper error correction, ledge detection for cliffs and like you’ve said segmentation of edges and height-probing, I’ve found the navmesh approach robust enough for shipping. Reacting to tile updates instead of generating the whole thing at once is great for performance, too.

Upgraded to 4.24

How big area you can optimally use using the voxel system ?

Is it usable for mobiles ?

Great description you wrote btw :slight_smile:

Yea can you tell people this no longer works I spend hours just trying to open it up after I clones it many times still will not work tells me that its missing coverdemo would like to rebuild yes still does not work and there is no doc on how to set this plugin up in unreal