Announcement

Collapse
No announcement yet.

Dynamic Tree & Plant Generator

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

  • [RELEASED] Dynamic Tree & Plant Generator



    This tool allows for fast and easy generation of random dynamic trees & plants with intuitive drag & drop workflow.


    Easy & fast generation:

    • Easy drag & drop generation of trees & plants with many customizable parameters
    • You can ‘lock’ any tree section to prevent it from regenerating (trunk/branches/fruits), create your own generation presets or save generated trees to a separate blueprint
    • ‘FORM’ system: You can create your own trunk/branch shapes by hand (by controlling spline points) and then use them within any tree, with desired amount
    • Possibility to use your own meshes/materials with the generator
    • Bunch of ready-to-go tree & plant presets (with possibility to create your own)
    • Included 20 starter bark materials, 40 leaf/plant materials and a bunch of example fruits, branch variations & trunk mesh sections.

    Interactive trees & plants:

    • Shockwave reaction: Trees & plants can react to external forces, taking impulse location, strength & distance into account
    • Dynamic wind: Wind can be changed by rotating WindZone arrow (in editor) or dynamically (in game) with desired direction, speed & strength.
    • Fruits: Trees can grow fruits with desired amount, scale and type of fruit. Fruits can randomly fall down after receiving specified amount of force.
    • Dynamic lianas/vines: You can easily connect two branches with a configurable vine that will also follow any tree animation and react accordingly.

    Tree chopping:

    • All generated trees can be chopped down at desired trunk location.
    • Chopped trees will fall down with physics simulation
    • Leaf shake effect will play upon ground impact
    • Fruits can fall down after ground impact
    • Any attached lianas will follow chopped tree parts, retaining their physics simulation
    • Chopped tree parts are spawned as a special blueprint that can be picked up by clicking on it - an example is available in the ‘Documentation_Chopping’ level
    • You can specify chopped trunk texture for every bark material (9 default textures included)

    Optimization:

    • Automatic billboard generation: Every generated tree will automatically generate its billboard version
    • Dynamic billboards: Billboards will periodically refresh in-game to match current [Camera <—> Tree] perspective. This allows for smoother [Tree <—> Billboard] transitions and accurate representation of distant trees. They can also perform a simple wind animation with desired intensity, to simulate wind even on distant billboard trees
    • Distance culling system for plants, tree animation, etc. [with controllable parameters]
    • Very fast tree generation & minimized drawcall count by using ‘FORMS’ (More in the documentation levels) instead of spline meshes
    • Animation based on GPU – sets parameters via blueprints, performs animation logic in material
    • Possibility to set animation FPS (Frames Per Second) value for every tree
    • Automatic animation FPS optimization: The closer to camera, the more animation FPS. (Distance variable is exposed to allow you to tweak the strength of this optimization effect)

    Other:

    • Godrays: Every tree can generate godrays (lightshafts) with desired amount & size. Direction & color is automatically picked from current Directional Light. It’s also possible to update godray direction in game, based on current light direction
    • Possibility to assign a ‘ground’ texture for every tree – it will blend between bark & ground texture on stump model to smooth out harsh mesh intersection
    • Trees naturally align themselves to any surface
    • Possibility to assign custom curves for tree wind/impulse animation (this way you can change the look of trunk/branch animation and customize it to your liking)
    • When creating a plant, you can set desired color of any plant element and hand-edit plant shape using splines.
    • ForestMaker actor: Forest generator with adjustable settings like min. between-trees-distance, max slope tolerance and more… It can be used to easily populate large area with desired set of trees & plants.

    The project comes with documentation levels that explain all the features.
    The system is made entirely in Blueprints.

    If you have any questions, feel free to ask here or on contact@unknown-origins.com
    Last edited by Slavq; 10-04-2016, 03:15 PM. Reason: 4.13 Update

  • #2
    This looks exactly what I needed for my project, but I have one question: is there only 1 type of leaves per tree?

    Comment


    • #3
      Originally posted by BardicKnowledge View Post
      This looks exactly what I needed for my project, but I have one question: is there only 1 type of leaves per tree?
      Edit: You can select any leaf type for any tree (I've posted an example in my post below) - the tool already has 20 different leaf types, and you can always add your own. You can also create your own tree preset and combine any bark texture/leaf type/(other parameters) there.
      Thank you!
      Last edited by Slavq; 01-08-2016, 10:14 AM. Reason: Info correction

      Comment


      • #4
        Great stuff! Will be very helpfull especially for level designers.
        [My FREE stuff] Custom Cameras (Stategy, Orbital) | Sticker Note | ESC Inventory System | Pipe Generation (Spline based) | Procedural spline-based Mesh generation | Homing missile
        [My Market stuff] Advanced Aim Component | Lock/lockpick Component | Blueprint-based Key Remapping System

        Comment


        • #5
          Originally posted by Slavq View Post
          For now it's possible to add more after editing one of the blueprints, but I see how this could be useful - possibility to add many leaf types on one tree, out of the box, will be added in the next update.
          Thank you!
          That's great to know, cause I need a lot of outlandish vegetation, but having the same leaves over and over would make them all look too similiar.

          Comment


          • #6
            Originally posted by BardicKnowledge View Post
            That's great to know, cause I need a lot of outlandish vegetation, but having the same leaves over and over would make them all look too similiar.
            I'm not sure if I understood you correctly before, do you need to have e.g. two different types of leaves growing on ONE tree?
            If you want to break repetition, you can always change leaf type on any of your trees, to any leaf type you want. Here's an example, the same tree preset with different leaf types:

            Click image for larger version

Name:	differentLeafs.jpg
Views:	1
Size:	286.3 KB
ID:	1098147

            In nature, one tree usually grows only one type of leaves - but I'll add a possibilty to override this

            @AlFlakky Thank you!
            Attached Files
            Last edited by Slavq; 01-08-2016, 07:41 AM.

            Comment


            • #7
              Very interesting Asset Slavq, I liked!. For sure I'll buy it when I go to get my next payment, soom. Is a very good asset, thanks.

              Comment


              • #8
                Originally posted by Slavq View Post
                I'm not sure if I understood you correctly before, do you need to have e.g. two different types of leaves growing on ONE tree?
                If you want to break repetition, you can always change leaf type on any of your trees, to any leaf type you want. Here's an example, the same tree preset with different leaf types:

                [ATTACH=CONFIG]72929[/ATTACH]

                In nature, one tree usually grows only one type of leaves - but as I said, I'll add a possibilty to override this

                @AlFlakky Thank you!
                Oh yes I didn't mean different leaves on the same tree, I just wanted to know if there was just one type of leaves or more.

                Anyway what's the performance hit using this system? Can you make a forest on a landscape or it will kill the frame rate?
                Last edited by BardicKnowledge; 01-08-2016, 06:41 AM.

                Comment


                • #9
                  That looks cool,gj
                  Linkedin | ArtStation | -SCIFI 'PROPS' PACK- | -SCIFI 'POPULATE' PACK- | Shooter Game Tutorial | StarDrop

                  Comment


                  • #10
                    I am quite curious to the amount of drawcalls per decent tree/plant.

                    Comment


                    • #11
                      Originally posted by BardicKnowledge View Post
                      Oh yes I didn't mean different leaves on the same tree, I just wanted to know if there was just one type of leaves or more.
                      Sure, I've edited my first answer to your question

                      Originally posted by BardicKnowledge View Post
                      Anyway what's the performance hit using this system? Can you make a forest on a landscape or it will kill the frame rate?
                      Originally posted by Luos View Post
                      I am quite curious to the amount of drawcalls per decent tree/plant.
                      With isometric/top down view performance hit is barely noticeable, but of course forests are usually an FPS killers in FPP games - so I've tested it from FPP perspective:
                      I've just created a quite dense, large forest on a planar landscape (so all the trees on horizon are visible, not covered by any hill). It runs from ~45 to 60+ FPS (depending on where player is looking) with Epic quality settings, full dynamic lighting & 1080p - on i5 3570K, 8 GB RAM and GTX 760.
                      FRESH INFO from the Big Update: Same scene now runs at 80-90 FPS with dynamic billboards turned on.

                      The tool was originally designed for more top-down/isometric games, hence most of the optimization went into reducing overdraw (e.g. each leaf type has individually cut mesh shape, it significantly increased performance - I've attached an example below)
                      Click image for larger version

Name:	BranchOptimizing.jpg
Views:	1
Size:	86.0 KB
ID:	1098198

                      About exact amount of drawcalls, I'll check this with single tree today and let you know what's the average value. I assume that it for sure generates more drawcalls than regular static mesh, due to its dynamic features - each single tree always remains adjustable, so e.g. every branch is a separate component. I suspect that most of the drawcalls will come from large amount of spline static mesh components, because they can't be instantiated.

                      Update: Waiting for Merge Actors tool to be fixed: https://answers.unrealengine.com/que...rs-2-bugs.html
                      - This will allow to convert any generated tree into a regular static mesh.

                      ---------------------------------------------------------

                      @macoll & @lunyBunny Thanks!
                      Last edited by Slavq; 02-21-2016, 09:29 AM. Reason: Fresh accurate info

                      Comment


                      • #12
                        Originally posted by Slavq View Post

                        About exact amount of drawcalls, I'll check this with single tree today and let you know what's the average value. I assume that it for sure generates more drawcalls than regular static mesh, due to its dynamic features - each single tree always remains adjustable, so e.g. every branch is a separate component. I suspect that most of the drawcalls will come from large amount of spline static mesh components, because they can't be instantiated.

                        Thanks!
                        Go to editor prefs > Experimental, enable actor merging.
                        Then select your actors (your spline based awesomeness)
                        go to window > Merge actors

                        Now your spline based thingy is just one static mesh, ready to be placed around multiple times.

                        Might be interesting once its out of experimental, to show how to do it. might be a big selling point later on!

                        Comment


                        • #13
                          Originally posted by Luos View Post
                          Go to editor prefs > Experimental, enable actor merging.
                          Then select your actors (your spline based awesomeness)
                          go to window > Merge actors

                          Now your spline based thingy is just one static mesh, ready to be placed around multiple times.

                          Might be interesting once its out of experimental, to show how to do it. might be a big selling point later on!
                          Thanks, I saw this feature yesterday on Twitch stream and already tried it, but for now it stretches all spline mesh components of merged trees in many weird positions + most of the tree parts disappear completely. I'll be trying to get it working though, because indeed it's really worth it. I'm on 4.10 now, maybe the finished version (after experimental phase) will be better. If I'll be able to get this working, I'll certainly post some info here.

                          Comment


                          • #14
                            I'll be rooting for you

                            Comment


                            • #15
                              --- BREAKING NEWS --- The 'Big Update' is ready and should appear soon. List of included new features:

                              - Automatic Billboard Generation: Every generated tree will automatically generate its billboard version + crop their billboard texture plane to match its bounds and minimize overdraw.
                              - Dynamic Billboards: Billboards will periodically refresh in-game to match current [Camera <---> Tree] perspective. This allows smoother [Tree <---> Billboard] transitions and accurate representation of distant trees.
                              - Distance culling system for plants, tree animation & collision, leaf material complexity, etc. [with controllable parameters]
                              - Tree growth stages: Every tree automatically generates its own growth stages that can be switched dynamically in-game. From a seedling to fully grown tree!
                              - New 'ForestMaker' actor: Forest generator with adjustable settings like min. between-trees-distance, max slope tolerance and more... + Naturally aligns trees to any uneven terrain.
                              - Plants will react to any objects passing near them.
                              - Godrays (lightshafts) generation matching current light direction or with fixed rotation.
                              - Trees naturally align themselves to any surface.
                              - New 'Impulse' actor feature: Possibility to change shockwave speed to achieve better effect (the further from impulse source, the later a tree/plant will react to it)
                              - Branches can be automatically scaled to be thicker/thinner depending on their grow height, with adjustable scale factor.
                              - New "Animate Branch Wind" switch.
                              - Significant performance optimization feature for tree animation - culling based on camera frustum, with 3 adjustable variables in 'WindZone' actor.
                              - Possibility to add randomized leaf scale variation.
                              - Tidy-up of internal blueprints (to make it more clear for people who want to delve deep into the generator system)
                              - Many performance optimizations & blueprint logic fixes.

                              ---

                              I'm creating a video with all the new features right now. I'll upload it here when I'm done.
                              Last edited by Slavq; 02-21-2016, 10:07 AM.

                              Comment

                              Working...
                              X