Training Stream - Advanced AI - May 12th, 2015

Just to quickly touch on the questions that have not been answered.

This is a topic for a long conversation. But the way I’d see implementing a system like that in UE4 would be to use HotSpots (that are not currently available) that would define each cover as hotspot’s slot, in combination with EQS to tell good covers from bad covers. This could be used for both static and dynamic covers, cut if someone did static (like in Gears of War) I’d also do a fair amount of precomputing to cache cover-to-cover visibility data for example.

We don’t support AI LOD-ing our ot of the box, and this is another topic for a long conversation. I’d look through all the AI Wisdom and Game AI Pro books (lot’s of good stuff there!).

It ships with 4.8, it works great in 4.8 prev 2 build and we’ll record a short video showing how to use it.

Utility- or probability based selectors are on the todo list and I’d very much like to get them in this year.

Not sure… can’t find it in 4.8 so we probably removed it! :smiley:

That’s actually one of the goals. The whole idea for pawn actions (that I’m currently redoing and will refer to as Gameplay Tasks, or in case of AI the AI Tasks) is that it’s an interface between AI’s body and all sorts of sources of “logic”. Logic in this case could be Behavior Trees, level scripting, AI “reactions” (like hit reactions), or any kind of externally implemented AI “brains” (like HTN, FSM, GOAP, etc).

There’s no way to have UE4’s navigation system use a hand-created navmesh. However with some C++ skill you could implement your own navmesh class (derived from RecastNavMesh) that could do that. We do support custom navigation types.

In terms of just having navmesh with procedurally created content all you need to do is to configure your navmesh to be runtime-dynamic, which means namesh will generate on runtime when new navmesh-relevant gets introduced, or old actors modified (transformed, destroyed).

A test scores get normalized across all items tested, and then the normalized score of each item is multiplied by test’s weight. There are ways to specify values to normalized against via UI.