Taking Flight
When Jack and Jon came to me with a design for a flying enemy, I was actually quite confident in my ability to create flying AI. Unreal 4's movement component had a flying section, and keeping to the navigation mesh (Navmesh) used by all the other AI would be no problem. Except the flying movement for characters has not be given the ability to follow the navmesh yet, and we need this enemy (the Manticore) to fly over, not around, obstacles.
Whenever we create a new AI actor, first we setup the character and file structure. This insures that anyone who needs the actor is able to quickly get in and pull the actor out for testing or set dressing.
The challenge for this character compared to our others lay in the need for this character to NOT follow the navmesh. For this purpose, I began to think of how to disable the need for navmesh. When I asked Jack and Jon again about it, they told me that the manticore never really needed walk on the ground. This made my job a lot easier, as I was able to completely disable its character movement in favor of a system of target points.
As the manticore approaches its target points, it will randomly pick another target and interpolate its forward vector towards the new point. This gives the actor a nice curve whenever it turns, and will look much better when it is given its animations.
Though it's flying, we still have a ways to go until it is game ready. Next on the list: implement sheep targeting behavior and I am looking into getting it to fetch coffee in the mornings.
Christopher Miller
Lead Programmer