Announcement

Collapse
No announcement yet.

Simple Scatter Plugin

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

    [SUPPORT] Simple Scatter Plugin

    Hello,

    this is the thread dedicated to reporting issues and suggestion about Simple Scatter Plugin: https://www.unrealengine.com/marketp...simple-scatter

    This post and thread will be updated with the relevant information as the time goes on.
    Last edited by Rawalanche; 02-04-2020, 03:44 AM.
    https://www.artstation.com/artist/rawalanche

    #2
    Hey. I really like the look of this product. The closest thing to ForestPack I’ve seen in Unreal. Awesome work!

    I will probably be purchasing it soon but I did wonder if it was currently possible to scatter certain meshes in the falloff areas of a defined scatter area? (either from a texture mask or spline falloff).

    For instance, in the support videos you show that you are able to affect the scale of the scatter meshes in the falloff areas of a soft image mask. That’s great. What you’re basically suggesting there is the plants/trees are younger/smaller the further into the falloff they get. This is perfect for grass and bushes where younger plants are just smaller versions of the adult plants. In trees however, a younger tree would be a totally different mesh to an adult tree.

    So in this instance, could you specify that adult trees grow in the white areas of the image mask and then a different mesh (the younger trees) grow in the grey falloff areas of the mask?

    If you can’t currently do that, might I add it as a suggestion as I think then you’ve got pretty much everything covered!

    Comment


      #3
      Originally posted by jamesfielddesigns View Post
      Hey. I really like the look of this product. The closest thing to ForestPack I’ve seen in Unreal. Awesome work!

      I will probably be purchasing it soon but I did wonder if it was currently possible to scatter certain meshes in the falloff areas of a defined scatter area? (either from a texture mask or spline falloff).

      For instance, in the support videos you show that you are able to affect the scale of the scatter meshes in the falloff areas of a soft image mask. That’s great. What you’re basically suggesting there is the plants/trees are younger/smaller the further into the falloff they get. This is perfect for grass and bushes where younger plants are just smaller versions of the adult plants. In trees however, a younger tree would be a totally different mesh to an adult tree.

      So in this instance, could you specify that adult trees grow in the white areas of the image mask and then a different mesh (the younger trees) grow in the grey falloff areas of the mask?

      If you can’t currently do that, might I add it as a suggestion as I think then you’ve got pretty much everything covered!
      The problem with these task specific features is that there are hundreds if not thousands of them. That would defeat the purpose of the scatter being simple and would turn it into something as ugly as the ForestPack UI, in terms of usability. It would start with "spawn different meshes on the edges" and would continue with "spawn different meshes based on attitude", then "spawn different meshes based on slope, because different bushes will grow on cliffs" and so on.

      I like to trade efficiency in very specific scenario for more simplicity and ease of use in majority of basic scenarios. Otherwise, the scatter would end up having 100's of "make this very specific scenario" buttons, knobs and multipliers.

      That being said

      What you want is quite doable:
      Click image for larger version

Name:	YoungTrees.jpg
Views:	335
Size:	577.6 KB
ID:	1718817
      Dark green cubes are stand ins for mature trees and bright green cubes are supposed to be young trees.
      I've created first scatter, where I've just used distribution map to drive only distribution, not scale of the mature trees:
      Click image for larger version

Name:	MatureTreesDistr.jpg
Views:	271
Size:	239.0 KB
ID:	1718818
      I have then made another scatter for young trees. Here I've color corrected the same distribution map to erode it a bit outwards, and then subtracted the distribution map of the mature tree scatter from it (R channel drives density, G drives scale):
      Click image for larger version

Name:	YoungTreesDistr.jpg
Views:	270
Size:	317.7 KB
ID:	1718819
      So now you have young trees not growing where the mature ones do, and young tree scale fading away from the edges of the forest. If you take the mature tree distribution texture and the adjustments made to it and wrap it in a material function which you reference in the distribution material of the young tree scatter, then distributions of both these scatter objects become linked and you don't need to manually keep them in sync.

      Also, the young trees are smaller so they required more density. Imagine having to do all of that in single scatter. Now people would not only require button to have different meshes on the edges, but also different instance density on the edges, and then different transform randomization on the edges, and then they would want same for the slopes, etc... It would get ugly really fast and could turn into another space shuttle cockpit dashboard thing that the ForestPack is. This approach, while a bit more laborious, does not compromise usability for less complex use cases, but does not stop you from flexible solutions like this one
      https://www.artstation.com/artist/rawalanche

      Comment


        #4
        Here, I've even made you a video showing how easy it is to swap and adjust the distribution if you link it via material function: You just swap the texture and it automagically grows a new forest with young trees on the edges with scale falling off outwards
        https://www.artstation.com/artist/rawalanche

        Comment


          #5
          Thanks for this! I take your point about keeping your feature as simple as possible. But I do maintain that it is quite a common scenario. That said, the interface would have to become more complicated then it needed to be.

          Your solution using materials seems to work perfectly using your current feature set.

          Thanks for taking the time to go through this!

          Comment


            #6
            We bought your plugin and love it.
            As i´, right now on it, just a quick question.

            How would you animate (if´s possible at all?!) the count of the instances using sequencer, i have to "delete" a forest in an animation and wonder how i do it cool =)

            Cheers, Andy
            Andy Probst
            Head of R&D / VR - Meilenstein Digital GmbH

            Comment


              #7
              Originally posted by andyxor View Post
              We bought your plugin and love it.
              As i´, right now on it, just a quick question.

              How would you animate (if´s possible at all?!) the count of the instances using sequencer, i have to "delete" a forest in an animation and wonder how i do it cool =)

              Cheers, Andy
              Well, the plugin is originally made just to scatter the instances, in a static manner, not really modify them after the fact, at runtime. That doesn't mean it's not possible, it just means that there's no option for that right in the UI. The scattering of large amounts of instances takes a while, so it would definitely be way too expensive to recalculate the distribution during the game or sequencer playback. So in order to do this, you will have to get more technical.

              It uses HISM component under the hood. So once you get a reference to the HISM component, the HISM component has functions which allow you to get the instance index of any instance you have overlapped with an object, or have hit with line trace, etc... So once you have the index, you can either use it to move the instance, or remove it. If you want to delete the entire forest at once, you can just delete/destroy the entire component, which would be as simple as getting the given component in blueprint and destroying it.

              Someone already asked a similar question a while ago, and I've made this simple example:
              https://imgur.com/a/i2p9YtC


              Here, I am using a raycast to get the HISM component, then get get the specific instance index using sphere overlap, and then I am able to either move or remove the instances.

              I could propose more specific solution if you are more specific about how exactly do you want to delete the entire forest. If you want entire forest to disappear from frame to frame, then why not just add the scatter object into sequncer and disable the "Visible" flag?
              https://www.artstation.com/artist/rawalanche

              Comment


                #8
                I like the example above, what i need to do is following.

                I do an animation for a 360 Video production, in the anim you see two virtual hands (like you see in VR productions) these hands delete the whole world around us, one by one. I also like to delete the forest in a cool way =)

                Can you give me a hint how you did it in the video ?

                Andy
                Click image for larger version

Name:	Forest.JPG
Views:	220
Size:	302.0 KB
ID:	1740498
                Andy Probst
                Head of R&D / VR - Meilenstein Digital GmbH

                Comment


                  #9
                  Originally posted by andyxor View Post
                  I like the example above, what i need to do is following.

                  I do an animation for a 360 Video production, in the anim you see two virtual hands (like you see in VR productions) these hands delete the whole world around us, one by one. I also like to delete the forest in a cool way =)

                  Can you give me a hint how you did it in the video ?

                  Andy
                  Click image for larger version  Name:	Forest.JPG Views:	0 Size:	302.0 KB ID:	1740498
                  The hint is above, in the imgur screenshot link Basically, if you have a vector of the area your hand is pointing at, all you need to do is to create sphere overlap from that location vector and remove those instances, as shown here: https://i.imgur.com/Ktt22f8.jpg
                  What you are really interested in is the topmost part of the graph, branching from InputAction LMB. The two on the bottom are for moving the trees. You are mostly concerned about the Get Instances Overlapping Sphere function. Center input is location where you are deleting the instances at, and Radius is how far from that point will distances be deleted. So if you call that every frame and have the vector location input for the center moving, you basically have a scatter eraser tool.

                  But if you are doing it every frame, I'd suggest doing the cast only only for the first time, and then caching reference to the HISM into some variable, as doing cast every tick can be expensive, especially for VR.
                  Last edited by Rawalanche; 04-02-2020, 09:20 AM.
                  https://www.artstation.com/artist/rawalanche

                  Comment


                    #10
                    Thanxx alot, will try it out =)

                    I will not do an active VR-App, i have to animate it by hand to look like it would be in VR (dont ask why ...:-))
                    The final thing will be a 360 degree video.

                    Andy Probst
                    Head of R&D / VR - Meilenstein Digital GmbH

                    Comment


                      #11
                      I'm a super noob at everything so sorry if this question is completely basic but I get an invalid setup error when I try to drop Simple Scatter into my level. It says, "make sure there are no empty instanced meshes or scatter surfaces and at least one of each." I don't really know what that means. I'm trying to add the SS to a landscape. I assume that counts as a scatter surface. Do I need to add some non-empty meshes to the level first before adding the SS? I'm at a bit of a loss. Thanks in advance for any help!

                      Comment


                        #12
                        Originally posted by HexedPress View Post
                        I'm a super noob at everything so sorry if this question is completely basic but I get an invalid setup error when I try to drop Simple Scatter into my level. It says, "make sure there are no empty instanced meshes or scatter surfaces and at least one of each." I don't really know what that means. I'm trying to add the SS to a landscape. I assume that counts as a scatter surface. Do I need to add some non-empty meshes to the level first before adding the SS? I'm at a bit of a loss. Thanks in advance for any help!
                        It just means you need to have at least one mesh to scatter and at least one surface to scatter on If you have a surface to scatter on but no mesh to scatter onto the surface, then it won't work. Conversely if you also have a mesh to scatter but no surface to scatter the mesh on, again, no scattering can happen.

                        Click image for larger version

Name:	SimpleScatterSetup.jpg
Views:	87
Size:	58.3 KB
ID:	1802231
                        So just like on the picture, make sure you have at least one surface and one mesh to scatter added (as the underscores show), and that both mesh to scatter as well as the surface to scatter on are selected (not empty) as the arrows show
                        https://www.artstation.com/artist/rawalanche

                        Comment


                          #13
                          Hi, I noticed the apple symbol next to supported platforms on the Marketplace listing. Can you confirm this will work and compile on a Mac ? Thanks

                          Comment


                            #14
                            Originally posted by Sean Sanderson View Post
                            Hi, I noticed the apple symbol next to supported platforms on the Marketplace listing. Can you confirm this will work and compile on a Mac ? Thanks
                            Hi, sorry, that must have been a mistake. I can not confirm it, since I have no device to try it on. I generally can not think of a reason it should not, since I haven't used any features outside of the engine, but on the other hand C++ build systems are so crazy and fragile I would not be surprised if something went wrong :|

                            So if you want certainty, then I'd have to say no. Other than that, if you buy it, and it doesn't work, then I'd refund you without any hesitation
                            https://www.artstation.com/artist/rawalanche

                            Comment


                              #15
                              Originally posted by Rawalanche View Post

                              Hi, sorry, that must have been a mistake. I can not confirm it, since I have no device to try it on. I generally can not think of a reason it should not, since I haven't used any features outside of the engine, but on the other hand C++ build systems are so crazy and fragile I would not be surprised if something went wrong :|

                              So if you want certainty, then I'd have to say no. Other than that, if you buy it, and it doesn't work, then I'd refund you without any hesitation
                              Thanks - I have had no luck recompiling plugins through Xcode. Its a shame, you would think the marketplace could recompile submitted plugins for Mac as a service and increase their and developers sales

                              Comment

                              Working...
                              X