Announcement

Collapse
No announcement yet.

Birds

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    awesome pack man thank you
    Last edited by Lenapowell; 03-05-2020, 01:51 AM.

    Comment


      One of the latest Community Spotlight projects "Virtual Helsinki" by Zoan is using Birds in the early part of the video.
      I'm always happy to see my assets being used in the wild. Fantastic project Zoan!

      Last edited by Living Systems; 03-27-2020, 09:29 PM.

      Comment


        Bought your pack for a historical simulation we're working on and, it's beautiful in a smaller level. One problem however: Since we have a huge landscape (10km square), we have multiple sky targets at great distances. Since apparently a new target is selected simply by random, we don't get the typical effect of birds circling in the sky around a singe target - much rather, immediately after reaching a target they fly straight to the next one, and that looks more like a regatta, all birds fly straight lines all the time, and follow each other, and that's very recognizable.
        It would look much better if we had a maximum distance for the next sky target, so that a bird will only select a target if it's within a certain distance. Or rather, if a bird would only react to targets with a given tag.

        Second question: In our huge environment, I would like the bird actor culled when it is out of visible range (say, more than 100m away) and that doesn't seem to be a feature yet. Can you confirm? What's the recommended way to do that? I'd assume this should be a feature to be performance-friendlier, especially since i am also adding sound to each bird.

        Comment


          Originally posted by MESODI View Post
          immediately after reaching a target they fly straight to the next one,
          This is the designed behavior. You may think of creating location groups of birds. Meaning setting up different groups of birds that stick to specific areas.
          To do this first duplicate the "Bird_Sky_Target" and name it something like "Bird_Sky_TargetPoint_Group1".Do the same for the ground and perch targets. Next you will do the same with the Bird_AI_Controller, Duplicate the AI Controller and re name the Controller to "Bird_AI_Controller_Group1". Now open that new AI Controller and click on the construction script tab. In the get all actors of class nodes- replace the entry's with the Group 1 sky, ground, and perch targets. So now you have an AI Controller that is only looking for Group1 nodes and will stay in that area of your map. Finally duplicate the NPC_Bird you want to stick to Group1 and rename it to Whatever Bird Group1 and in the default settings under the Pawn section assign the Group1 AI Controller. This is how you can make birds stick to specific areas of the map. Now place the Group1 Sky, Ground, and Perch targets in the specific area of your map you want those birds to stick to.
          you can setup as many different groups of Birds as you like this way. This is also a way to get the seagulls to stick to the beaches and the pigeons to stick to another area, and so on.
          I hope that wasn't too confusing, let me know if it was.

          I would like the bird actor culled when it is out of visible range (say, more than 100m away) and that doesn't seem to be a feature yet. Can you confirm? What's the recommended way to do that?
          Instead of culling birds and re spawning them you may want to add a high level Service in the Behavior Tree that gets the distance to the player and if over a certain distance do nothing.just freeze in place, and then add another LOD on the bird that is crazy low poly- like 3 polys. The reason I don't do this by default is not everyone using this asset will be using a player (Such as a cut scene) and this would break the logic for those situations.

          I hope that was helpful
          Last edited by Living Systems; 05-03-2020, 05:32 PM.

          Comment


            Hi, I have 2 question about this pack

            1) It was mentionned that the birds react to ground character, but the perching birds react to your presence even if the perch traget is not on the same plane than your character right? Or by ground character you meant they can't change direction when flying, but can detect a (close) flying enemy when they are on ground or perched?

            2) The perch target can indicate if bird must face the same direction or not when perched. Does this mean the bird will come to the target from opposite direction to land, or it will rotate to face it when makeing the landing animation?

            Thanks

            Comment


              It was mentionned that the birds react to ground character, but the perching birds react to your presence even if the perch target is not on the same plane than your character right?
              The Birds will fly away when perched if the enemy character gets too close. This is also true for when the Birds are on the ground.

              The perch target can indicate if bird must face the same direction or not when perched
              When landing on a perch target the Birds will rotate to face the "FaceThisWay" arrow while playing the landing animation- if the "UseFaceThisWayArrow?" Bool is set to true. If it's not set to true the Bird will land on the perch in the direction it is already facing. You set this Bool on the perches themselves and they can be set on a per perch basis.
              I think that answered your question, Let me know if you need any further information.

              Comment


                Hi, i'm finally getting around to implementing your suggestion and the solution for grouping birds is a little different than what you described:

                Originally posted by Living Systems View Post

                To do this first duplicate the "Bird_Sky_Target" and name it something like "Bird_Sky_TargetPoint_Group1".Do the same for the ground and perch targets. Next you will do the same with the Bird_AI_Controller, Duplicate the AI Controller and re name the Controller to "Bird_AI_Controller_Group1". Now open that new AI Controller and click on the construction script tab. In the get all actors of class nodes- replace the entry's with the Group 1 sky, ground, and perch targets.
                That doesn't work because it changes the class of the Bird_Sky_Target and that breaks some references in ParentClassBlueprints (like BTService_Bird_FlyToARandomSkyTarget).

                The correct way to do this, it seems to me, is not duplicating the SkyTarget, but instead creating a Child from it. I also create a child AI_Controller for each Group of Birds, and i find i also need to create a a child for each birdtype in each group (although i don't understand why it isn't enough to set the AI_Controller Propert of any existing bird…)

                Altogether this works, but it really doesn't feel very elegant if i want 20 different groups of birds… perhaps as an improvement suggestion, you could make the ai controller match Targets for Birds based on tags in a future release…

                Comment


                  That doesn't work because it changes the class of the Bird_Sky_Target and that breaks some references in ParentClassBlueprints (like BTService_Bird_FlyToARandomSkyTarget).
                  Oh yes, I forgot about the Services. I will come up with something much more elegant in the next update. I think the best solution would be for each bird to only store targets within a distance range and make that range editable. I think that would allow the most flexibility without the need to duplicate so many things, way less work for the end user. I'm glad you at least have something that is working for you now. And thanks for the suggestions for improvement.

                  **UPDATE**
                  Ok so i came up with something that will make everything much easier. I will upload this in the next update but wanted to post the fix here so you could take advantage of it right away. I created a variable in the AI Controller called "StoreTargetsWithinThisRange" . You can set that Float to whatever distance you like.
                  So now in the Construction Script of the AI Controller where the Ground, Sky and Perch targets are set. All the targets are only stored in the Array if they are within the range you set in that Float Variable. In the attached image here you can see how the Sky Targets are being set.
                  Click image for larger version  Name:	DistanceRange.jpg Views:	0 Size:	439.7 KB ID:	1767223

                  Set the Ground and Perch Targets the same way after that Shuffle Node.
                  Click image for larger version  Name:	DistanceRange_2.jpg Views:	0 Size:	446.7 KB ID:	1767224

                  Now when you place a Bird in your level it will only store Targets within your set range of that Birds starting position.
                  Keep in mind that whenever you add Birds to your level you must have at least one of each Target within that new range. If not you will get errors. This should get rid of the need to duplicate different groups for different areas of the map. Now they will always stay in the area you placed them in and they will only be interested in local Targets around them (Perch, Sky, and Ground Targets).

                  Hope that helps.
                  Last edited by Living Systems; 05-26-2020, 05:49 PM.

                  Comment

                  Working...
                  X