Hi guys!
Good news. I have developed a prototype of the cover taking system for my game MicroWave. The main features of this system are nearest cover point search & take, automatic crouching depending on the height of the cover, pressing against walls, automatic peeking out of corners when near to corners.
When I developed this system I kept in mind an idea to minimize routine work, like defining cover paths (walls) manually. I used raycasting to define safe height for the avatar’s head and to connect two corners with a cover path (red spheres on the video). To help the engine to build the cover path, you have to drop corner denotation actors in the level, where actually geometrical corners are. Additionally, you have to drop somewhere CornersPair actor to connect two corners into a cover taking path.
My next steps are to create an algorithm which builds cover paths without of need of CornersPair actors and make the avatar to press its back against the wall. At the moment, all algorithms are in Blueprints, but they will be converted into C++ as soon as the prototype gets polished.
Enjoy the video
The last, but not the least, check out the project on GitHub. Feel free to use and modify it.