I would like to point that making a basic tree creator is quick and NOT that hard either, the automatic kitbash algorithm is basically just:
- keep track of depth
- spawn children within an area, at some orientation, according to the current part logic
- goto 1 for each children by adding 1 to depth
The spawning of children is basically from a list of what’s required, it’s either “null” objects that will spawn other children (think city spawning house, the house is made from children like wall and roof, door, but isn’t tangible as itself), or assets that visualize the shape and nature of the part.
You use a simple logic to know what and where to spawn (generally just a random from multiple part, or the same part multiple time, or any combination of that).
Depth is an input for recurrent part (like branch in a tree, you might switch the spawning logic after n to get fruits or leaves). You probably don’t need over depth 3 (from 0) in most case.
> With spawning within an area being just a bunch of lerps :
- 0 for points
- 1 for a line
- 2 for a surface
- 3 for a volume (basically along “axis maximum”).
Also you can bake the result in a single instance to avoid objects multiplication (or generate directly inside a single “asset”, like adding the vertices directly to a mesh).
There is a lot of algorithm about tree creation, and most of them are over complicated, or add extra considerations, that’s tangential to the core basics, to generate each part (leaves structure, bark texture, root shapes, space colonisation). You don’t need them for a simple case, just do them by hand, that’s where dedicated tree generation tools become relevant. BUT it does help that some botanic books have a very detail description that map easily to that simple logic or any procedural logic (google leaf type for example), if you want to go there.
This algorithm works for any hierarchical (ie a simple landscape.city lay out) or tree like objects (that’s a huge class of objects when you think about it, animal are part of it).
Just pointing that, just in case, because many of these stuff looks more complex than they are really are, and I know people see something that looks complex and think it is complex.
Personally I had to go through so many phony and ill explained L-system algorithm that are just a sham, because I needed something that actually generate with gameplay metrics (like having branch starting ABOVE the character height to not break navigation, or make climbing easier) not just pretty visual.