Hey everyone, I’m trying to use pathfinding with birds and flying creatures but I’m having a bit of a struggle with the overall mood and behaviour.
Basically I need my birds to wander around the scene, and for that I assign some nodes on the graph. Using the AIPath, I added the SimpleSmooth modifier so that the corners are less crisp, but I still don’t get the behaviour I’m hoping for. Basically, birds when flying in high velocity don’t turn on the spot, they need to continue moving forward while rotating, and they make very open curves to do so. Somewhat like bicycles.
Therefore, I’m trying to achieve something like the green line:
But currently, I changed a bunch of settings both in the modifiers and the AIPath and I was not able to get a similar result to this. The bird usually slows down too much in the air, or they do not rotate with large enough curves.
Below is the usual configuration I use. I tried removing “Slow When Not Facing Target”, but the agent just moves backwards instead of trying to rotate while moving forward.
Not sure this is the best solution, but my approach would be to start with an array of destinations that make this path work how you want it.
You could start with hardcoding the points to do this looping turn, adjust the rotation speed to look good, then have some sort of trigger that causes this path to execute. You could then look at modifying the array points with some math or using a different pre-defined configuration every time it’s executed so you get some variation.
I think this is the level of complexity where you may want to dive into customized movement scripting. AIPath and all the other movement scripts are generalist approaches to movement- great for simulating birds if you don’t want them to move hyper-realistically. Check out the making a movement scripts and searching for paths without movement pages for more info on that.
I mean that said, I think you can get pretty far with just making tweaks to Rotation settings (speed, disabling “slow when not facing target”), Setting ‘Pick Next Waypoint Dist[ance]’ higher, ‘Slowdown Distance’, ‘End Reached Distance’, and even Radius-- you can get wildly different movement with some simple playing around.
But failing that, this is definitely something I’d personally start looking to make a movement script specifically for birds. Birds aren’t exactly known for having locomotion that requires “walking along the ground” after all They fly!