Ideally the query would generate things to check inside the building rather than on top. It seems like the traces come from above rather than fanning out from the z coordinate of the querier. Is this currently possible or does some kind of modification need to happen to the engine?
I also tried Navigation tracemode and had better results but it seemed to still choose the roof if the querier was floating in the air closer to the roof than the floor. This could lead to problems if my AI character is mid jump.
You could try making your own EQS Generator. They’re not difficult but they require C++ and they aren’t well-documented.
I made my own generator to let AI find good cover spots. Using a huge grid of test points was inefficient (most test points were in the open) so I have my generator finding all the cover and placing the test points around them. Then my EQS Test uses those points to figure out which side of the cover is safe (and other such concerns). Point is, the test points are only where I want them to be so it runs much faster.
I don’t know enough about your situation to tell, but a custom EQS Generator may be a viable solution.
I think a 3D grid will be too much to process and the vast majority of test points will be pointless to test. Your AI can’t stand in mid-air so you will be wasting a lot of processing on invalid locations unless you filter them out before the test points are evaluated. The best way to do that IMO is to generate the test points yourself.
I think I can afford it on specific queries that run rarely.
One example is finding a spot for my character to focus on when they’re idle which runs about every 10 seconds and can be kinda sparse. I had a query that would find spots far away but in line of sight so the AI wouldn’t dumbly stare at walls that are right in front of it.
I noticed my AI was refusing to look in the building because the grid generator would return spots on the roof instead of the interior.
It should be useful for flying monsters too.
It’d definitely something to avoid doing too much but is pretty necessary in some cases.
I think it can be useful to control the sparseness of the grid depending on distance from a center point as well so you could generate more points closer to the character and less farther away.