Birds

Apologies, I migrated the whole Birds folder in and now it works. If you’re reading this, it would be good to know which are the critical folders that can be deleted without interfering with the Crow AI. Thanks

All the files that are not necessary for the Birds operation are in the Environment folder, so for sure delete that one. You can also delete the 3rd person folder if you aren’t using the 3rd person character with Enemy tags. Everything else is necessary for the Birds appearance and operation.

Also if you are only using the Crow and not the other Birds, you can delete the Pigeon and Seagull folder as well.

1 Like

I had the system running fine in my lvl for a few days, now I’m getting these errors and 1fps. Any guidance on how to resolve?

Edit: It works when i start a new level. Realized it stopped working after I added the “advanced AI spawn system” from the UE marketplace. Some conflict between the two systems.

Partially solved after nav mesh bounds wasn’t high enough, but now the issue is back after rebooting. The errors are occurring when placing birds at a lower altitude and much further away from a main flock that spawns without errors.

I think you may be having an issue with the Birds distance to the targets (Sky, Ground, and Perch). By default the Birds only store targets within a specific range of their starting point. If there are no targets within the range of their starting point it can cause errors because the bird has nowhere to go.
To adjust this range open the Bird_AI_Controller.
In the Variable section look for the “StoreTargetsWithinThisRange” (Float) Make this number much larger for large maps, for testing add 3 Zeros on the end of that number and save. if that was the issue you can dial the number back to a size to fit your needs. This is just a guess as to what may be going wrong, but I cant be sure because I’m unfamiliar with the system you are using Birds with. I hope that was helpful.

Very helpful! Thank you!

What are your thoughts on this error? I can’t replicate the exact conditions that trigger it, but it happens more frequently than not. I’m using a “scan” visual effect that scans the landscape, It seems to happen more often after implementing the visual effect.

That error is- one of the birds accessed none when looking for a Bird Perch Target. This means either there are no perch targets in your level, or they are too far away from where you are spawning the Bird for that Bird to consider it a reachable destination - the perch is out of range.
To adjust this range open the Bird_AI_Controller.
In the Variable section look for the “StoreTargetsWithinThisRange” (Float) Make this number much larger for large maps, for testing add 3 Zeros on the end of that number and save. if that was the issue you can dial the number back to a size to fit your needs.

2 Likes

Hello.

How do I stop the birds landing? I have “Can This Bird Perch?” disabled, got no perch or ground targets on my scene, but they still are landing.

EDIT: Oh nevermind, found the Stay in Sky toggle :slight_smile:

You should add this :stuck_out_tongue:
https://www.reddit.com/r/Damnthatsinteresting/comments/17x9zi9/difference_between_a_seagull_and_a_crows_accuracy/

1 Like

I’m having difficulty understanding how to control how high up they fly. Could you help with that?

I can help with that, do you have sky targets in your level? if so are you testing in a very small area? try spreading the sky targets out at least 3000 unreal units apart from eachother. and also the sky targets should be up at least 2000 unreal units in the air. This is because the birds have obstacle avoidance and the sky targets should be higher than the Birds obstacle avoidance line traces. (obstacle avoidance trace line length can be adjusted in the birds settings). Let me know if this helped.

I’m currently putting together a getting started PDF that I think will help you. I’ll post it here as well, some time next week.

1 Like

I have added a Getting Started PDF for Birds. Before getting started make sure your version of Birds is updated. I have also added this PDF to the listing page, I hope you find it to be useful. Also a note this is for Unreal version 5.0 and newer. Older versions of Birds will be similar but the settings are in different places. Things have been streamlined in the new update.

@Living_Systems
This looks fun, once in a while the videos pop up and I love this type of nature simulation.
I just keep wondering why collision tracers are used for individual birds. Wouldn’t it be more performant to cache data in forms like a heat map / flow map to pull preferred movement and avoidance data from by location? Probably you already set up some form of optimization the videos just get me curious about that in particular. It could get rid of tracers entirely until the moment you need a dynamic avoidance response. Or, the heatmap is updated every X seconds to provide new data, similar to the dynamic pathing built into the engine. Traces don’t have to be heavy at all but with 100 birds in a level :slightly_smiling_face:

Hi! Me again. I have a large map and one zone of birds flying within a navmesh volume and one sky target. I want to to duplicate this on the other side of the map (about 30k units away) with another bird and zone. However when I place another sky target and navmesh volume the old birds go to the new target and the new bird goes to the old target - they go back and forth swapping places. How can I ‘trap’ birds to only fly within a certain navmesh volume and attatch to a single sky target? And ignore each other. I’m happy to tweak the BT/AI if you could please let me know where. Thanks

The NavMesh is just for ground navigation, it is not used for flight. The setting your looking for that should work for your situation is in the Bird Parent blueprint. open the “BP_NPC_Bird_Base” in the ParentClassBlueprints folder. Look for the variable “StoreTargetsInThisRange” and lower that number way down (its in Unreal Units). Save and compile.

When the Level Begins the Bird checks its environment and only stores targets that are in this range of their starting location. Just be careful setting it too low. keep in mind that there needs to be at least one target in this range, if not you will get “Found None” errors because the Bird has no targets stored. I’d say start by setting it to 30,000 and start from there. So when the Bird starts the level they will look out 30,000 Unreal units for Targets to store. If there are other targets further away they will be ignored.

So this number is useful for limiting the range of the Birds. This number (Distance) can be changed in the Parent class to affect all Birds, or you can set it on a per Bird basis as well. Also you probably want more than one SkyTarget for each set of Birds. They look a little unnatural always circling one target.

I hope that is helpful, let me know if you have any issues.

1 Like

Thanks for your response! That makes sense - only issue is I can’t see a “StoreTargetsInThisRange” variable in “BP_NPC_Bird_Base”… I searched for anything similar sounding in Details too but there’s nothing - is it definitely there?

You are using an older version of Birds then. in your case look in the AI Controller.

Thank you! That did it.

1 Like

My birds keep appearing above the landscape or above static meshes (feet not touching the ground). What’ the best way to adjust this and fix? Using the latest version of birds in UE 5.3.2. Thanks.

You can open any Bird Blueprint and select the Bird Mesh and move it up or down and save for small tweaks. Also check your collision on your landscape.

hey, is there a way to get birds to work with runtime generated navmesh, using a navmesh bounds volume?