Through my work on project Morphscape, I had developed a Blueprint based system for semi-procedural trees based on spline and spline mesh components in Unreal Engine 4. Looking forward, I'm revisiting and restructuring my old work to release the system on the-Unreal Marketplace.
In the work of many 3D game artists, I see sort of a road block in artistry when it comes to designing original trees, foliage, and other natural elements. It can be difficult to create these assets believably, with the right balance of consistency and variation to populate expansive natural environments. As a result of this, many turn to software like Speedtree, PaintFX, or download from pre-made kits.
While these are certainly not bad options, I am designing this system with the idea of maximizing the amount of artistic control the user will have in designing their tree, while still automating the laborious process of modeling branches on branches.
This lets you still develop your own meshes and materials for the trunk and branches, but enables you to deform them using spline meshes, which can be both manually placed or automatically, procedurally generated based on user-defined parameters.
Additionally, having this as a Blueprint system makes it so that you can have an infinite variety of trees that are customizable in-engine. The advantage being that you don't have to export a bunch of different static tree assets, like birch_tree_tall, maple_tree_short and rely on good placement to minimize noticeable repetition. Using this kind of tool has the added benefit of flexibility, since you can adapt your tree assets to your level design later in the pipeline.
So, you can simply drag the Spline Tree Builder Blueprint asset into the viewport. Every instance of that Blueprint asset you pull into the scene can be a different tree, but they are all built on the same customizable system. Just drag out splines and adjust parameters to rapidly iterate different variations.