Birds - v3.0 Update

I’m not sure, but I’d bet that it does work. I’ll offer you a refund if you cant get it running.

no worries. Hey is there a tutorial on adding your own bird mesh? I have a vulture mesh that I want to use as a bird.

There’s no tutorial but its pretty straightforward. Just duplicate one of the bird blueprints- then open it. First select the bird mesh and swap it out for your own mesh. Then you need to create an animation blueprint (for your custom Bird) that matches the animation blueprint for the bird you just replaced. when the animation blueprint is set up assign it to your custom bird mesh in your new character blueprint.

Now drag and drop your Bird the same as the others. I hope that was helpful.
:slight_smile:

Hi, Really love this pack! I’m fairly new to UE so please excuse if this is a no brainer question! :slight_smile: I am rendering out of sequencer and want to have the birds randomly flying around as they do in play mode, can you point me in the right direction to make that happen?
Thanks!

I’m mostly a real-time person myself so my sequencer knowledge is limited. However, I think this may be useful for you to look into-> Take Recorder in Unreal Engine | Unreal Engine 5.4 Documentation | Epic Developer Community

Thank you I will check it out, appreciate the fast response! Cheers Peter

Fantastic asset, thank you! One very basic question that I can’t seem to find in the PDF: How do I set the radius for BirdEnemy? I’d like my player character to get a little closer to the birds before they fly away.

Great question, Open the “Bird_BT” (BehaviorTree) in the AI folder.
Once open look to the very bottom (see image) look at the “run away from enemy” and the “flyaway from enemy” sections.


You can select either condition and change the distance to whatever you like.

Hope that points you in the right direction. Let me know if you need further clarification. :slight_smile:

1 Like

Ah, great stuff - thank you!

Thank you for creating this plugin! I just purchased it today and have been exploring its features. While building, I came across a few questions:

  1. Is it possible to have the birds always return to a single target location or a very small area instead of flying between multiple target locations? Also, I noticed that the target locations seem to require a significant distance—could you clarify how this works? and if I can play target locations close to each other?
  2. I noticed that some pigeons appear to slide and drift when walking on the ground. Do you have any suggestions for preventing this?
  3. Occasionally, I see some pigeons floating in the air in a strange way, as if they are hovering or walking mid-air. Do you have any idea what might be causing this?

I’d really appreciate any guidance you can provide. Thanks in advance for your help!

1- When a flying Bird gets close (within 1000 unreal units) to the current Sky Target they then switch to a new target. The Bird changes targets when close and not when overlapping because if they were to make it to the target then they would hit each other.

2- If you are getting ground sliding its just because the walking speed is set too high.You can set the min and max walk speed on the bird blueprint - when the Bird is walking on the ground- a new target is selected and then a “random walk speed in range” is used. You can adjust the Min and Max walk speed to suit your needs.

3- Im guessing the issue here is when a Bird is set to begin the level flying but they are on the ground. If a bird is set to begin the level flying they need to be up in the air- away from the ground. Most likely they are getting stuck on ground geo.

Hope that was helpful :slight_smile:

First of all, thanks for your response!

I realize my question might not have been entirely clear, so I’d like to clarify my goal:

I want all the birds to start on the ground with minimal movement (such as light walking and maybe some eating). When they detect an enemy, they should take flight and stay in the air for about 5-8 seconds before returning to the same ground location and repeating the behavior.

But it seems like the birds will always fly down and walk far away to a new spot even if I turned off ground trace.
And regard the floating issues, it still seems to happen because in my case all the birds were actually set to begin on the ground, but they will stand in the mid of air after they fly for a while.

Let me know if you have any suggestions on how to achieve it! Thanks a lot.

You can achieve your goal by editing the Behavior tree and setting the Birds default settings.
First with your Birds settings. you can edit the settings on the Bird Parent class or you can set the settings on a per Bird basis.

It sounds like you are using the Pigeon so open the “BP_NPC_Pigeon” Blueprint.

in the default settings on the right disable (uncheck) “can this Bird Perch?” because you are only interested in flight and ground interaction.

next disable (uncheck ) “Begin the Level Flying?” and Enable (Check) “Begin the Level walking?” also be sure “Begin the Level Perched?” is disabled as well.

next look at the Ground speed Min and Max values. You said the birds were sliding on the ground, these settings will help with that. When a bird is set to walk on the ground they are given a random walk speed between these two numbers. So play around those.

The Fly speed Min and Max work similarity with flight speed.

Next look at the “Fly Time Min” and “Fly Time Max” settings. Here when the Bird is set to fly they will get a random fly time between those two numbers. when that timer goes off they will do a dice roll to decide to keep flying or return to the ground. if its to go to the ground they will look for a random ground target.

Next lets talk about obstacle avoidance. You can turn obstacle avoidance off by disabling “Do a Down Trace?” or if you want the avoidance- be sure “Do a Down Trace?” is enabled. Connected to this is the “down trace distance” and “vertical thrust amount”. How this works is the bird sends down a line trace that is the length of the “down trace distance” and if it gets a hit on the trace the Bird is given upward thrust to get out of the way. The reason that I’m pointing this out is your Sky Targets need to be up higher than this trace distance.
once your happy with these settings be sure to save and compile the blueprint

Now in your level place a ground target where you want your Birds to land. and place at least 2 Sky targets up in the sky up at least as high as your “Down trace distance” the reason it needs to be higher is if its too low the bird will be trying to both reach and avoid the target at the same time. I hope that makes sense. if not I can clarify. and because you disabled perching, don’t worry about the Perch Targets in your level.

Ok so the last thing to worry about is in the Behavior tree. open the behavior tree in the AI folder.
On the right of the behavior tree (See image) is the “patrol” section-

the bird sets a random walk speed, walks to a point then it will wait (Idle, Feed) for what time you set on the Wait node, then it will walk to a new spot. by default they look for a spot to walk to that is 2000 units away. you can change this distance. Double click the “BTTask_Bird_GetRandomPoint node”.


Set the distance for the bird to walk here. save and compile.

Back in the Behavior tree select the “move to” node and set the acceptable radius to a lower setting this setting needs to be smaller than the distance you set in the GetRandomPoint node.

And lastly for your situation in this patrol section you will probably want to delete the last flyaway node.

By default the bird patrols to 3 locations then jumps away and returns to flight. But if I’m right- you want them to stay on the ground until disturbed by an enemy. If that’s true by deleting the last node here the birds will stay on the ground paroling until an enemy scares them away. Save and compile again and do some testing.

Let me know if this gets you where you want to be. I hope this is helpful to you and anyone else looking to adjust the Birds behavior.

I’ve just found your assets and bought this. I love it. So great. I’m likely to buy all your assets. Very impressive!

Also, I’m really after a Brown/Black Bear and Deer/Stag. Any chance you will make either of these?

I’m currently working on Bats, but after that unless things change I’ll be moving on to Attack Animal: Bear.

Oh my god! Bats? That’s amazing! And yes! The Bear! Can’t wait. Honestly, I think I’m gonna be buying every single asset of yours.

I’ve just got the birds reacting to my character controller’s gun shots. Its such a nice thing being able to scare the birds away either as an “enemy” or by audio.

I have a couple of questions and hoping its just me missing something.

Part of my game is by the seaside with beaches so I love that there’s a Seagull. When the player eventually goes away from the beaches I don’t really want Seagulls but instead use the Crows and Pigeons. Is there any way of making sure specific birds fly in their own “areas”? I have 1 Nav Mesh, I’m not sure if multiple Nav Meshes can be used and whether the birds could be assigned to their own nav meshes? Or have their own ground targets etc?

Also, I really want the player to be able to shoot the birds. Is there a way of doing this? Damaging them somehow and when dying, if in the air, falling to their deaths? Very barbaric I know :joy:

The other question I have is regarding all your assets. Let’s say I have a load of Sheep, Goats, Chickens and Pigs all running about doing their thing… If I put some attack animals such as the Wolf and Boar (and soon Bear :joy:) will they hunt and eat each other as they are all from you?

Here’s a screen shot of a part of my work in progress game showing your birds in their glory! :heart_eyes:

  1. Yes Birds can be assigned to their own areas. if you take a look at the Bird settings there is a variable called “Store Targets In This Range” the default is a very large distance. How this works is wherever you place a Bird in the level they will only use Ground, Sky, and Perch targets in this range (Unreal Units) of their starting position. So try bringing this number way down- maybe start around 30,000, but be sure that there is at least 1 of each target type within that distance- otherwise the Bird wont have any targets. If a Bird doesn’t have any targets you will get “Accessed none” errors and they will just forever be trying to fly to the world origin. a good way to get the distance you are looking for is change the viewport to top view and Middle click and drag- you will get a ruler with Unreal Unit measurements. (See Image)

2.You can already shoot the Birds. when they receive “any damage” they will ragdoll and emit a feather particle. like in this video. You may need to change the size of your projectile collision and be sure it is a damage causer. They can be harder to hit than they used to be (in this video) because they fly faster when they hear gunshots.

*UPDATE- I submitted an update making them easier to hit, and now when they ragdoll they hit the ground instead of falling through it.

3.The Attack Animals will hunt any actor with an Enemy tag- for example if a chicken has a “WolfEnemy” tag the Wolf will hunt it. However if the same chicken has no such tag the Wolf wont even see it. Also if the Wolf has a “ChickenEnemy” tag then the chickens will run away from the Wolf.
A final note about hunting animals- in order for the predator- prey interaction to work they must share the same Parent class. I can show you how to set this up when you get there- it takes 3 seconds.

Hope that was helpful.

Your setup is looking beautiful, Keep me posted- I love seeing my assets out there running in the wild!

1 Like

Legendary reply! Thanks so much! I am loving these Birds!

That is so great you have already added the shoot the Birds functionality and thanks for updating so they fall to the ground! Just brilliant!

One thing I forgot to ask was when the animals hunt each other… do you have a way of respawning more animals so there’s always a specific number of animals in a map/in an area or do they kill each other and once they have died that’s that?

Ill definitely post some work in progress soon! :slight_smile:

Hey man, I was wondering what this error means and how I fix it?
No doubt me doing something stupid to make it happen!

Also curious what these warnings mean…