I spent the last few hours studying the source code and searching the internet for whatever information I can find on this. There’s virtually no documentation and it would seem to me the only way to understand what to do is to reverse engineer the engine’s code, which takes time I don’t have.
I have a custom movement component that implements the functionality I need. It is rather isolated from the rest of the engine since it defines and deals with problem such as walkable slopes, jumping, flying state and other such common problems by itself. Unfortunately, I’m not sure it will work with the AI system as it is, because UE4’s AI system seems hopelessly tied to the default character movement component.
From the source code I noticed some interesting classes, most notably the UPathFollowingComponent and the UNavMovementComponent, but I haven’t quite figured out what to do with them yet. It would seem UPathFollowingComponent has functions that would allow me to retrieve a set of waypoints I could then use to move my character to a destination(although they seem to be mostly deprecated), while UNavMovementComponent seems to expect me to update some inherited values in order to be used by the AI and navigation system.
I haven’t tried anything yet, so maybe my movement component will automagically work with the AI system, but I doubt it. This is problematic because a huge chunk of the game is already built on top of my custom movement logic. AI is all that’s left for me to implement, and I really don’t want to rewrite the entire navigation system for this.
I’d appreciate if anyone could tell me how to get the existing AI system to function with a custom movement component, or at least point me in the right direction.