Dynamic Tree & Plant Generator

AVAILABLE ON MARKETPLACE

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

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!

Great stuff! Will be very helpfull especially for level designers.

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:

differentLeafs.jpg

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

@AlFlakky Thank you!

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.

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?

That looks cool,gj :wink:

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

Sure, I’ve edited my first answer to your question :slight_smile:

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)
BranchOptimizing.jpg

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: Merge Actors: 2 bugs - Programming & Scripting - Epic Developer Community Forums

  • This will allow to convert any generated tree into a regular static mesh.

@macoll & @lunyBunny Thanks! :slight_smile:

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.

I’ll be rooting for you :slight_smile:

— 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.

@slavq
Your plugin is on my “to buy” list. I don’t see trees with lot of leaves, i mean covered with leaves on the upper part, do you have some example test ?

Here, I’ve quickly made an upper-leafy tree + Shader Complexity view if you’re curious: (You can see these individually-cut-minimizing-overdraw leaf planes in action)

Of course you can add as many leaf-branches as you want, increasing leaf density even more - the generator allows to create almost any tree type (more in the first video). + The good thing is that obviously once it switches to billboard version, then any increased shader complexity coming from very dense leaves will disappear, since it’ll be a simple plane with a texture :slight_smile:

Does this mean i could add my own tree meshes?

I’ll try to explain it on an example: Trees are generated using random trunk sections, plants are generated using specified meshes for leaves/blossoms/etc. You can always add your own meshes - if you want to create a plant with a butterfly sitting on top :slight_smile: then you just import your butterfly mesh, add it into plant generator as a plant element. For trees, there are trunk sections with hollows and bulges that appear randomly. If you want to have a trunk secion with a see-through hole, you can add a mesh like this into the generator and it will appear randomly when generating a tree.
Same for materials, if you have some special leaf texture, you can add it and tree will generate using it. You can also add any tileable texture as a bark material. So e.g. if you want a tree with tileable kittens texture on trunk (because why not :slight_smile: ), just add it as a material and specify to use this material when generating a tree. Bark materials also have separate moss textures that appear always on top of surface - you can add a snow texture instead of one of moss textures and then you have a tree covered in snow… And so on.

Video with most of the new features in upcoming update:

I’m doing last QA checks right now, I’ll submit this update tomorrow.
Full feature list of this update: 金枝玉叶 XRP钱包app官网关银屏 三国杀壁纸-欧易钱包手机ios