Announcement

Collapse
No announcement yet.

Floxy

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

    [RELEASED] Floxy

    FLOXY for Unreal Engine 4
    Click image for larger version  Name:	zzzYouTubeBanner4.jpg Views:	0 Size:	260.5 KB ID:	1803915​​​​



    WHAT IS FLOXY?

    Floxy is an Emergent Vector Generator designed to simulate a variety of flocking behaviours using CPU calculated attraction and repulsion forces. Floxy is ideal for general purpose solutions requiring small flocks of scene actors.



    Features:

    • 100% Single Blueprint Implementation
    • Highly configurable flocking behaviours and effects
    • Load/Save up to 198 presets
    • Includes eleven example templates to get you started
    • Agent replication supported

    • Includes maps and assets used in promotional videos






    ​​​Promotional / Introduction Videos

    Floxy for Unreal Engine 4 — Promo




    What is Floxy? — Getting Started






    Tutorials / Support Videos

    Floxy — Parameters Tutorial Tutorial:
    https://youtu.be/LxKTZgryClU

    Floxy — Example Template Usage:
    https://youtu.be/cqYAp5KhIck

    Floxy — Template Maps Preview:
    https://youtu.be/jYMVUotnJMM

    Floxy — Example Presets Preview:
    https://youtu.be/eAIwdt9O8vM




    Floxy — Performance & Stress Testing (NVIDIA GTX 670):
    https://youtu.be/J5XhZFRKr0c

    Floxy — Performance & Stress Testing (NVIDIA GTX 1660):
    https://youtu.be/L3bk88YXeAA




    Floxy — Full Playlist:
    https://www.youtube.com/playlist?list=PLJZJxq6TPBDFZKp6zsVbFj1efJTLoysq1





    FAQ / Release Notes

    FAQ
    Floxy_FAQ.pdf



    RELEASE NOTES
    Floxy_ReleaseNotes.pdf


    Available on the Unreal Engine Marketplace:
    https://www.unrealengine.com/marketp.../product/floxy

    Price: $29.99

    Screenshot Gallery
    Attached Files
    Last edited by 3S Interactive; 09-05-2020, 03:59 AM.

    #2
    Hey, I had to log in to at least say this looks like an amazing plugin, good job.

    A few questions.
    - Performance seems decent, but is it multithreaded in the performance video? If so, how many threads is it running on?
    - "100% Single Blueprint Implementation" this is ALL running in BP no c++? (if all BP I am actually pretty shocked how well it runs)
    - For the floor / character presets will this work without a nav mesh?
    - I see "gravity" is one of the tags, will this work in non -Z gravity situations? (I have planets)

    Thanks for posting this amazing work to the marketplace. Regardless of your answers for the above this looks like a must buy!

    Comment


      #3
      Thanks JLBXB3.


      >- Performance seems decent, but is it multithreaded in the performance video? If so, how many threads is it running on?

      There is no multithreading in use, just the standard single-threaded Blueprint.


      >- "100% Single Blueprint Implementation" this is ALL running in BP no c++? (if all BP I am actually pretty shocked how well it runs)

      Correct. No C++ in use.


      >- For the floor / character presets will this work without a nav mesh?

      Yes, because there is no 'nav mesh' in use.

      The characters are moving over the landscape using their basic collision capsule.
      Each character accesses an individual agent in the flock to get a Rotator orientation, which controls the direction of the Actor.


      - I see "gravity" is one of the tags, will this work in non -Z gravity situations? (I have planets)

      The 'gravity' tag refers to any the gravity that you may want to 'add' or 'subtract from the internal flocking calculations.
      The agents do not use any specific 'UE4 gravity'. The flock simply migrates through XYZ space based purely on the internal math calculations.
      E.g., this is is how you add/subtract gravity to/from the flock if desired: Floxy - Gravity Parameter

      So, if you were attempting to simulate a fleet of ships battling in space (i.e., in zero gravity) then you would leave the vertical gravity parameter at 0.0.

      In the Birds demo, the ravens are simply following their target (i.e., the blue ball) based on the emergent vector calculations.
      In this case, no additional +/-Z gravity is applied to the flock.
      Last edited by 3S Interactive; 08-27-2020, 05:30 PM.

      Comment


        #4
        Hi Mavmat.

        (1)
        >I'm trying to replicate the birds example, but I see "roll damping" is not available on the
        >replicated struct. Is this by design?


        Short answer, yes.

        Long answer...

        The 'Rotation Damping' parameter in the [F L O X Y - (9) Roll & Pitch] section of the Floxy UI uses the Roll_Damping parameter 'internally' to update the AgentArrayReplicated.Rotation_Damping rotator. As such, it wasn't necessary to add Roll_Damping (again) to the AgentArrayReplicated struct.

        E.g., if you add a [PrintString] to your scene and display the values of AgentArrayOriginal.Roll_Damping and AgentArrayOriginal.Rotation_Damping you should see AgentArrayOriginal.Rotation_Damping.Z always trying to interpolate to the current value of AgentArrayOriginal.Roll_Damping. Experiment with 'Rotation Damping' in the Floxy UI to see how it affects the rotator values.

        Basically, AgentArrayReplicated.Rotation_Damping.Z is the dampened version of AgentArrayOriginal.Roll_Damping, so use the former instead.


        (2)
        >Do you intend to convert part of the blueprint into C++ for performance benefits at some point?


        Probably not, but it was initially considered. A C++ equivalent may be 'natively faster' (by how much is unknown), but attempting to render 400+ animated root-motion deer would still present other performance issues. For example, I can only render 300 native UE4 'AI-Crowd' characters before performance begins to degrade on the same PC specs used for Floxy Stress Testing. The same bottlenecks 'may' also be present in a C++ version of Floxy, so the emphasis reverted back to a blueprint solution.


        (3)
        >In the tutorial when you go over the settings I notice you have to restart the simulation before the
        > parameters you changed took effect. Is there a way to get around this limitation during runtime so
        >the flock can blend between the different parameters that you're setting?


        I'm not sure what part of the video tutorial you are referring to, but most parameters can actually be updated in realtime via blueprint. If you see '[x]Restart' being clicked in a tutorial then it is only to quickly (and conveniently) reset the whole simulation for a different usage example. (Note: You can't change the Preset_ID in realtime because a preset's internal structure has to be reloaded/reinitialised from the ini file).

        Generally speaking, if you can change a Floxy instance's parameter via the Details_Panel during PIE then you can also change the same parameter via blueprint. There may be exceptions where the result isn't what you expected, so let me know if you encounter one and I'll clarify.


        (4)
        >While I did copy over the presets save, when I activate the preview preset names printout on screen, >everything is listed as "DefaultFlock".
        >How can I remedy this? The file I copied over from the complete marketplace project now sits in Saved/SaveGames/Floxy.presets.ini.sav.
        >This might be because on initial launch I did not have this preset file copied over to my project.


        If a Floxy.presets.ini.sav cannot be found when the project is opened in the editor then Floxy will generate a default Floxy.presets.ini.sav file which contains all "DefaultFlock" presets.

        Try the following:

        (1) close down the UE4 project

        (2) overwrite your project's existing Floxy.presets.ini.sav with the original (older) Floxy.presets.ini.sav file from the downloaded Floxy project's /SaveGames/ folder

        (3) Launch the UE4 project again.

        Let me know if that resolves the issue.


        (5)
        >To add to the above, I am also seeing "Accessed None" errors in the LoadFloxyUIPresetFromFile
        >function during the first few seconds on begin play. This seems to be the PresetStorageStructure
        >variable and its properties.


        I just downloaded the Floxy asset from the marketplace and ran the demo project in the editor.
        My editor output log contained zero errors, so take a step back and follow the instructions in answer (4).

        Let me know if you still see any "Accessed None" errors. If so, upload screenshot.

        (6)
        Some of my static meshes I intend to use seem to be at an offset compared to your debug arrows, meaning that ingame the behaviour looks very strange (they're pointing in the wrong direction). Is there any way we can set a rotation offset to use for the agent mesh?


        The Floxy agents (debug arrows) are moving along their calculated/emergent world vectors.
        Sometimes, models are exported to UE4 with a different X degree orientation than expected.

        If that is the case, then add any required 'rotational offset' to your actor.
        E.g. https://youtu.be/cqYAp5KhIck?t=369
        Last edited by 3S Interactive; 09-20-2020, 05:16 PM.

        Comment


          #5
          Thanks for the reply! My thoughts below.

          Originally posted by 3S Interactive View Post
          Hi Mavmat.

          (1)
          >I'm trying to replicate the birds example, but I see "roll damping" is not available on the
          >replicated struct. Is this by design?


          Short answer, yes.

          Long answer...

          The 'Rotation Damping' parameter in the [F L O X Y - (9) Roll & Pitch] section of the Floxy UI uses the Roll_Damping parameter 'internally' to update the AgentArrayReplicated.Rotation_Damping rotator. As such, it wasn't necessary to add Roll_Damping (again) to the AgentArrayReplicated struct.

          E.g., if you add a [PrintString] to your scene and display the values of AgentArrayOriginal.Roll_Damping and AgentArrayOriginal.Rotation_Damping you should see AgentArrayOriginal.Rotation_Damping.Z always trying to interpolate to the current value of AgentArrayOriginal.Roll_Damping. Experiment with 'Rotation Damping' in the Floxy UI to see how it affects the rotator values.

          Basically, AgentArrayReplicated.Rotation_Damping.Z is the dampened version of AgentArrayOriginal.Roll_Damping, so use the former instead.
          I'll try this, thanks!

          Originally posted by 3S Interactive View Post
          (2)
          >Do you intend to convert part of the blueprint into C++ for performance benefits at some point?


          Probably not, but it was initially considered. A C++ equivalent may be 'natively faster' (by how much is unknown), but attempting to render 400+ animated root-motion deer would still present other performance issues. For example, I can only render 300 native UE4 'AI-Crowd' characters before performance begins to degrade on the same PC specs used for Floxy Stress Testing. The same bottlenecks 'may' also be present in a C++ version of Floxy, so the emphasis reverted back to a blueprint solution.
          This is true for skeletal actors, but the C++ performance improvement would scale better with static meshes that utilise vertex animations, which is a good usecase for your tool.

          Originally posted by 3S Interactive View Post
          [B](3)
          >In the tutorial when you go over the settings I notice you have to restart the simulation before the
          > parameters you changed took effect. Is there a way to get around this limitation during runtime so
          >the flock can blend between the different parameters that you're setting?


          I'm not sure what part of the video tutorial you are referring to, but most parameters can actually be updated in realtime via blueprint. If you see '[x]Restart' being clicked in a tutorial then it is only to quickly (and conveniently) reset the whole simulation for a different usage example. (Note: You can't change the Preset_ID in realtime because a preset's internal structure has to be reloaded/reinitialised from the ini file).

          Generally speaking, if you can change a Floxy instance's parameter via the Details_Panel during PIE then you can also change the same parameter via blueprint. There may be exceptions where the result isn't what you expected, so let me know if you encounter one and I'll clarify.
          Awesome, noted!

          Originally posted by 3S Interactive View Post
          (4)
          >While I did copy over the presets save, when I activate the preview preset names printout on screen, >everything is listed as "DefaultFlock".
          >How can I remedy this? The file I copied over from the complete marketplace project now sits in Saved/SaveGames/Floxy.presets.ini.sav.
          >This might be because on initial launch I did not have this preset file copied over to my project.


          If a Floxy.presets.ini.sav cannot be found when the project is opened in the editor then Floxy will generate a default Floxy.presets.ini.sav file which contains all "DefaultFlock" presets.

          Try the following:

          (1) close down the UE4 project

          (2) overwrite your project's existing Floxy.presets.ini.sav with the original (older) Floxy.presets.ini.sav file from the downloaded Floxy project's /SaveGames/ folder

          (3) Launch the UE4 project again.

          Let me know if that resolves the issue.
          This is actually what I've been doing, but it's almost as if the old values are still cached internally. It doesn't seem to pull the save that I imported from your complete project.

          Originally posted by 3S Interactive View Post
          (5)
          >To add to the above, I am also seeing "Accessed None" errors in the LoadFloxyUIPresetFromFile
          >function during the first few seconds on begin play. This seems to be the PresetStorageStructure
          >variable and its properties.


          I just downloaded the Floxy asset from the marketplace and ran the demo project in the editor.
          My editor output log contained zero errors, so take a step back and follow the instructions in answer (4).

          Let me know if you still see any "Accessed None" errors. If so, upload screenshot.
          I've disabled the presets system as a workaround, but I think the issue is the same as the "DefaultFlock" issue, not quite sure how to sort that out.

          Originally posted by 3S Interactive View Post
          (6)
          Some of my static meshes I intend to use seem to be at an offset compared to your debug arrows, meaning that ingame the behaviour looks very strange (they're pointing in the wrong direction). Is there any way we can set a rotation offset to use for the agent mesh?


          The Floxy agents (debug arrows) are moving along their calculated/emergent world vectors.
          Sometimes, models are exported to UE4 with a different X degree orientation than expected.

          If that is the case, then add any required 'rotational offset' to your actor.
          E.g. https://youtu.be/cqYAp5KhIck?t=369
          Ah but I think we're talking about two different things. Your procedure is for spawned (external) actors, I'm changing your "agent mesh" property (the arrow mesh by default) in Floxy to my static mesh. This is the one I want to add a rotation offset to, it's the agent you use internally.
          Last edited by Mavmat; 09-20-2020, 06:15 PM.

          Comment


            #6
            Ok, let's deal with one issue at a time, and move to the next when each is solved.

            (4)
            >>This is actually what I've been doing, but it's almost as if the old values are still cached internally.
            >> It doesn't seem to pull the save that I imported from your complete project.



            So, just to be clear:

            - You have a project called e.g., "MyProject".

            - MyProject is not currently open and UE4 is not currently running.

            - Inside the [Windows Explorer] folder ..\MyProject\Saved\SaveGames\ there is a file called Floxy.presets.ini.sav.

            - You deleted \MyProject\Saved\SaveGames\Floxy.presets.ini.sav and the folder is now empty.

            - You copied the original Floxy_Project_Downloaded_From_Marketplace\Saved\SaveGames\Floxy.presets.ini.sav file to your empty MyProject\Saved\SaveGames\ folder.

            - You opened your MyProject project in UE4.

            - You dragged an instance of \BP_Floxy blueprint asset into your scene.

            - In the editor 'World Outliner' you selected the instance of BP_Floxy that is in your scene.

            - In the 'Details panel' you opened the [FLOXY - Presets] section and clicked '||| Preview Preset Names |||'

            - After these steps, you still see 198 "DefaultFlock" presets instead of the pre-configured Floxy presets seen in the original Floxy demo project.


            Is that correct?

            Do you also have the same issue if you download Floxy from the marketplace (again) to a separate location and repeat the above steps in a brand new UE4 test project (i.e., not copying anything from your current project)?
            Last edited by 3S Interactive; 09-21-2020, 06:14 AM.

            Comment


              #7
              Originally posted by 3S Interactive View Post
              Ok, let's deal with one issue at a time, and move to the next when each is solved.

              (4)
              >>This is actually what I've been doing, but it's almost as if the old values are still cached internally.
              >> It doesn't seem to pull the save that I imported from your complete project.



              So, just to be clear:

              - You have a project called e.g., "MyProject".

              - MyProject is not currently open and UE4 is not currently running.

              - Inside the [Windows Explorer] folder ..\MyProject\Saved\SaveGames\ there is a file called Floxy.presets.ini.sav.

              - You deleted \MyProject\Saved\SaveGames\Floxy.presets.ini.sav and the folder is now empty.

              - You copied the original Floxy_Project_Downloaded_From_Marketplace\Saved\SaveGames\Floxy.presets.ini.sav file to your empty MyProject\Saved\SaveGames\ folder.

              - You opened your MyProject project in UE4.

              - You dragged an instance of \BP_Floxy blueprint asset into your scene.

              - In the editor 'World Outliner' you selected the instance of BP_Floxy that is in your scene.

              - In the 'Details panel' you opened the [FLOXY - Presets] section and clicked '||| Preview Preset Names |||'

              - After these steps, you still see 198 "DefaultFlock" presets instead of the pre-configured Floxy presets seen in the original Floxy demo project.


              Is that correct?
              Correct!

              Originally posted by 3S Interactive View Post
              Do you also have the same issue if you download Floxy from the marketplace (again) to a separate location and repeat the above steps in a brand new UE4 test project (i.e., not copying anything from your current project)?
              I went back and created a new marketplace project, issue was not apparent there. I then copied over the save file to the old marketplace project (didn't try my own project just to exclude further differences), same issue occurs. DefaultFlock presets, as well as play in editor errors (added screenshot).

              The only thing that I could think of is that I moved the Floxy folder within my original marketplace project, to be more in line with my project's directory structure. I attempted to repeat this step to troubleshoot, and indeed, this breaks it. To reproduce, move the Floxy folder (through Unreal itself) into a subdirectory within your content folder. I wonder if the save file location that it is trying to pull from is written down as a relative path somehow?
              Attached Files
              Last edited by Mavmat; 09-21-2020, 07:23 AM.

              Comment


                #8
                >The only thing that I could think of is that I moved the Floxy folder within my original marketplace project, to be more in line with my project's directory structure.
                >I attempted to repeat this step to troubleshoot, and indeed, this breaks it. To reproduce, move the Floxy folder (through Unreal itself) into a subdirectory within your >content folder. I wonder if the save file location that it is trying to pull from is written down as a relative path somehow?


                Interesting.
                Let me try to repro your steps and investigate.
                I'll get back to you...

                Comment


                  #9
                  Confirmed.

                  If I move the Floxy folder to a subfolder in the Content Browser then, yes, Floxy gets confused.
                  If I move the Floxy folder back to the ContentBrowser root folder then it's happy again.

                  It looks like there is some kind of internal dependency between the Floxy root-folder location and the UE4 SaveObject class that is used to load/save .sav files and initialise references to related assets.

                  I'll have to investigate to determine if this is a limitation or if there is a solution.
                  Can you get by (for now) with leaving Floxy in its original location, i.e., the ContentBrowser root folder?

                  Comment


                    #10
                    Originally posted by 3S Interactive View Post
                    Confirmed.

                    If I move the Floxy folder to a subfolder in the Content Browser then, yes, Floxy gets confused.
                    If I move the Floxy folder back to the ContentBrowser root folder then it's happy again.

                    It looks like there is some kind of internal dependency between the Floxy root-folder location and the UE4 SaveObject class that is used to load/save .sav files and initialise references to related assets.

                    I'll have to investigate to determine if this is a limitation or if there is a solution.
                    Can you get by (for now) with leaving Floxy in its original location, i.e., the ContentBrowser root folder?
                    Glad you managed to reproduce it. No worries, I have a workaround for this as I have the presets disabled right now anyway. I can work like this for now.

                    If I may ask, what is your recommended workflow for larger actors? I'd like another set of my actors to fly apart from one another further so they don't cluster as much, but tweaking the inter-agent forces doesn't seem to yield the result I'm after. Changing the global scale works, but then they seem to fly much faster as well. I can increase the spawn distance, but then they eventually end up clustering again.
                    Last edited by Mavmat; 09-21-2020, 09:46 AM.

                    Comment


                      #11
                      (6) Ah but I think we're talking about two different things. Your procedure is for spawned (external) actors, I'm >changing your "agent mesh" property (the arrow mesh by default) in Floxy to my static mesh. This is the one I >want to add a rotation offset to, it's the agent you use internally.
                      Ok, I see what you mean now.

                      Here's the problem, and a possible solution:

                      Editing the native agents isn't advisable ...but there may be another way.

                      Firstly, the native agents are only meant to be 'visual representations' of the calculated emergent vector locations/orientations in 3d space.
                      This is so you can visualise the flocking behaviour without the need to setup external actor.

                      The native agents (white arrows) weren't meant to be altered in any way because they are already pointing in the correct direction
                      as determined by the internal Floxy algorithm.

                      However, when I first added the native agents (exported from 3dsmax) they were incorrectly offset by 90 degrees.
                      To resolve this, I simply applied the desired rotational offset in 3dsmax and re-exported the meshes to make them
                      point in the correct direction of the flock. Perhaps that would solve your problem?

                      Note:
                      The intention of the Floxy blueprint was to make it easy to attach your own external actors with the option of networking if desired.
                      The native agents themselves are not 'networkable' (they were never meant to be) so keep that in mind.
                      It is the actual flock vectors in the AgentArray that are replicated for external use.

                      That being said, the native agents were never enabled/tested under 'replicated conditions' so I can't say that it is not 100% possible,
                      it just wasn't implemented with that intention.

                      The external red, blue & green arrows in the replication demo were intended to demonstrate simple static mesh replication.
                      Last edited by 3S Interactive; 09-21-2020, 10:14 AM.

                      Comment


                        #12
                        If I may ask, what is your recommended workflow for larger actors? I'd like another set of my actors to fly apart from one another further so they don't cluster as much, but tweaking the inter-agent forces doesn't seem to yield the result I'm after. Changing the global scale works, but then they seem to fly much faster as well. I can increase the spawn distance, but then they eventually end up clustering again.
                        I'm not sure what you meant by 'larger actors' / 'another set':

                        - Do you mean all the actors in the same flock are large or is there is a mixture of large and small actors?
                        - Are the larger actors 'flying apart' from the smaller actors?
                        - Are they all (large and small) trying to not cluster with each other or just the larger actors?

                        Could you give me a description (or even better - link me to a youtube video) of something in nature that roughly demonstrates the effect you're after?

                        If I can visualise the end result you're trying to achieve then it will be easier to try and find some equivalent settings.
                        Last edited by 3S Interactive; 09-21-2020, 10:13 AM.

                        Comment


                          #13
                          Originally posted by 3S Interactive View Post

                          Ok, I see what you mean now.

                          Here's the problem, and a possible solution:

                          Editing the native agents isn't advisable ...but there may be another way.

                          Firstly, the native agents are only meant to be 'visual representations' of the calculated emergent vector locations/orientations in 3d space.
                          This is so you can visualise the flocking behaviour without the need to setup external actor.

                          The native agents (white arrows) weren't meant to be altered in any way because they are already pointing in the correct direction
                          as determined by the internal Floxy algorithm.

                          However, when I first added the native agents (exported from 3dsmax) they were incorrectly offset by 90 degrees.
                          To resolve this, I simply applied the desired rotational offset in 3dsmax and re-exported the meshes to make them
                          point in the correct direction of the flock. Perhaps that would solve your problem?

                          Note:
                          The intention of the Floxy blueprint was to make it easy to attach your own external actors with the option of networking if desired.
                          The native agents themselves are not 'networkable' (they were never meant to be) so keep that in mind.
                          It is the actual flock vectors in the AgentArray that are replicated for external use.

                          That being said, the native agents were never enabled/tested under 'replicated conditions' so I can't say that it is not 100% possible,
                          it just wasn't implemented with that intention.

                          The external red, blue & green arrows in the replication demo were intended to demonstrate simple static mesh replication.
                          Gotcha, that makes sense. I'll just throw in an actor instead of changing the mesh of the agents

                          Originally posted by 3S Interactive View Post

                          I'm not sure what you meant by 'larger actors' / 'another set':

                          - Do you mean all the actors in the same flock are large or is there is a mixture of large and small actors?
                          - Are the larger actors 'flying apart' from the smaller actors?
                          - Are they all (large and small) trying to not cluster with each other or just the larger actors?

                          Could you give me a description (or even better - link me to a youtube video) of something in nature that roughly demonstrates the effect you're after?

                          If I can visualise the end result you're trying to achieve then it will be easier to try and find some equivalent settings.
                          My original questions were about a set of actors in a flock that were small in size, such as small birds. Whereas my new "set" (just a different flock with actors homogeneous in size) simply has flock members that are of a larger size.

                          In essence, all I want to do is expand the minimum distance they have to each other and increase the "volume" that the flock takes up as a whole as they fly, with the actors spread out in that volume. I don't mind them getting close to each other so much, rather right now they seem to circle around a point, all getting really close to one another. To reproduce the issue I'm having, scale up the raven by 10x, you'll see it starts looking strange, which would be solved if they would just take extra distance to compensate for their size (though for this particular usecase I'd like to be able to have them further apart than the default raven flock, beyond adjusting for their size).

                          Added a screenshot of the issue. I imagine this might be just a parameter I'm missing.

                          Attached Files

                          Comment


                            #14
                            Ok. I see now.

                            Here are some thoughts:

                            "To reproduce the issue I'm having, scale up the raven by 10x, you'll see it starts looking strange"
                            The 'Min Agent Size' and 'Max Agent Size' allows you to generate agents with 'aesthetically' randomly sizes (you probably know that out already). In contrast, 'Global Scale' is used purely for 'metric matching' purposes.

                            For example, let's say that you created a scene where 1.0 UE4 unit = 1.0m and your flock moves as expected at that scale.
                            If you migrated your flock to another project where 1.0 UE4 unit = 10.0m and scaled up your bird actors then the flocking behaviour would look different.

                            The birds may be the correct size, but the flock dynamics have not been scaled up. The flock speed, acceleration, sensor lengths, etc, are 10 times smaller than they should be because they are based on a different scene scale. This is where 'Global Scale' becomes useful.

                            You would set 'Global Scale' = 10.0 to match the new scene scale and the flock dynamics should look behave the same as they did in the 'Global Scale' = 1.0 scaled project. (this may not be what you have done in your project but it is still good to know).


                            "all I want to do is expand the minimum distance they have to each other and increase the "volume" that the flock takes up as a whole as they fly, with the actors spread out in that volume. I don't mind them getting close to each other so much, rather right now they seem to circle around a point"
                            It sounds like there is too much 'Goal Attraction' in the flocking system.

                            As a start, I would recommend disconnecting/hiding your bird actors (for now) and focus on the agent behaviour first.
                            The birds may distract you from the underlying agent dynamics which should be the primary focus.

                            If you can get the native agents to behave as expected then switching from arrows to birds will be a simple task.

                            (1)
                            Try lowering the 'Goal Attraction Strength' to reduce the forces pulling all agents together (to a point):
                            https://youtu.be/LxKTZgryClU?t=2275

                            (2)
                            Enable 'Inter Agent Forces' and experiment with the repulsion radius and strength to increase the minimum distance between agents:
                            https://youtu.be/LxKTZgryClU?t=7222


                            "I'd like to be able to have them further apart than the default raven flock,"
                            Actually, increasing the 'repulsion radius' alone should be sufficient to increase the spacing between the ravens.
                            Try using the following settings in the original Floxy Birds demo to see if it gives you the desired behaviour:

                            -Enable 'Visualise agent Influence Spheres' (so you can actually see the spacing in effect)

                            -Inter Agent Attraction Radius = 40.0
                            -Inter Agent Attraction Strength = 0.0
                            -Inter Agent Repulsion Radius = 40.0
                            -Inter Agent Repulsion Strength = 3.0

                            Experiment with higher/lower values until it looks right for your purposes.
                            Last edited by 3S Interactive; 09-22-2020, 05:38 AM.

                            Comment


                              #15
                              Originally posted by 3S Interactive View Post
                              Ok. I see now.

                              Here are some thoughts:



                              The 'Min Agent Size' and 'Max Agent Size' allows you to generate agents with 'aesthetically' randomly sizes (you probably know that out already). In contrast, 'Global Scale' is used purely for 'metric matching' purposes.

                              For example, let's say that you created a scene where 1.0 UE4 unit = 1.0m and your flock moves as expected at that scale.
                              If you migrated your flock to another project where 1.0 UE4 unit = 10.0m and scaled up your bird actors then the flocking behaviour would look different.

                              The birds may be the correct size, but the flock dynamics have not been scaled up. The flock speed, acceleration, sensor lengths, etc, are 10 times smaller than they should be because they are based on a different scene scale. This is where 'Global Scale' becomes useful.

                              You would set 'Global Scale' = 10.0 to match the new scene scale and the flock dynamics should look behave the same as they did in the 'Global Scale' = 1.0 scaled project. (this may not be what you have done in your project but it is still good to know).




                              It sounds like there is too much 'Goal Attraction' in the flocking system.

                              As a start, I would recommend disconnecting/hiding your bird actors (for now) and focus on the agent behaviour first.
                              The birds may distract you from the underlying agent dynamics which should be the primary focus.

                              If you can get the native agents to behave as expected then switching from arrows to birds will be a simple task.

                              (1)
                              Try lowering the 'Goal Attraction Strength' to reduce the forces pulling all agents together (to a point):
                              https://youtu.be/LxKTZgryClU?t=2275

                              (2)
                              Enable 'Inter Agent Forces' and experiment with the repulsion radius and strength to increase the minimum distance between agents:
                              https://youtu.be/LxKTZgryClU?t=7222




                              Actually, increasing the 'repulsion radius' alone should be sufficient to increase the spacing between the ravens.
                              Try using the following settings in the original Floxy Birds demo to see if it gives you the desired behaviour:

                              -Enable 'Visualise agent Influence Spheres' (so you can actually see the spacing in effect)

                              -Inter Agent Attraction Radius = 40.0
                              -Inter Agent Attraction Strength = 0.0
                              -Inter Agent Repulsion Radius = 40.0
                              -Inter Agent Repulsion Strength = 3.0

                              Experiment with higher/lower values until it looks right for your purposes.
                              Wanted to let you know that playing with the goal attraction strength did help. Still can't yet seem to get the same smoothness in my own project as in the example project, but will play with the settings more and circle back otherwise. Thanks for thinking with me!

                              Comment

                              Working...
                              X