Heres some of my thoughts:
I had an idea for how this could be done. I actually did something like this before, except I cheated and didn't use any trig. I was making a little 3D thingy in DarkBASIC and wanted to make a bug fly around in a smooth curved path around a certain path. What I did was I made a invisible object that followed the path exactly travelling at a speed of X and then made the bug follow the invisible object at a speed of X+(some value determined by the distance between the bug and the invisible object). Basically I made it speed up when it was getting too far away from the invisible object and slow down when it was getting too close.Heh, I am back with just one more suggestion. Actually more of a pretty feature that I don't want implemented anytime soon, but just for thought.
I was browsing over some documents dealing with pathfinding and AI that were presented at a GDC, I forget the year. At any rate, the point about smooth curvical movement between waypoints makes AI looks more believable. They also presented some tech documents on how to implement it with some basic trig functions, etc.
I just think this would be a great feature, because for anyone who has ever watched the Crysis tech demo, they would see that through two waypoints they walk around a curve instead of directly to it.
That's probably my last suggestion.
The result was that the invisible object would always reach the corner first and start going along the next path. Because the bug was following it, it would slowly curve around the corner as the movement of the invisible object would slowly change the bugs rotation.
Picture for those who like to learn visually instead of through reading:
Maybe something like this could be used? Either that or you just work out a system where the waypoint the NPC is walking to and the next waypoint slowly shifts influence on the NPC's movement. Basically the same thing except with more maths... I prefer the easy way...
Also one thing I thought maybe which would be nice is changing the waypoints from being set positions to being zones? Like instead of the NPC's travelling to a the waypoints EXACT location, they instead travel to a point in that waypoints zone. It might just make the movement look a little more random and less like there is an exact path being followed by all NPC's. The size/shape of the zone could be defined as a sphere where the user can set the scale of the spheres XYZ.
Like for example in a map like this:
In this map, when the NPC's and travelling around the map between the waypoints (white circles), they could move from any point in the waypoints to any other point in the other waypoints, thus making the movement look.... um... cooler?
As for WHERE in the waypoint the NPCs go... that could be random.. or it could be based on where the next waypoint is? (so the NPC is seen trying to 'cut' corners).
Well thats my suggestions... if I can work out more about how this irrAI library works maybe I'll add this myself.
@JP: Do you mind me asking what algorithm you used (or based) your pathfinding code on? Cause I'm looking at it and I can't really figure out whats going on in it. I'd love to try and have a go at adding stuff to this project but I'm stilling trying to work out exactly how it works, when I have a better idea then I'll start adding stuff.