Graph structure
Trunk Spine supplies the parent curve. Chain Branch Level nodes for smaller limbs and twigs. Skin each order, collect the results with Join Geometry, instance a Leaf or Leaf Card prototype with Foliage, then route Wind Weights into Plant Output.
Attachment range, length, angle, tropism, whorls and profiles shape the crown. Roots and Flute add ground contact and bark relief. A shared LOD Table controls sampling and foliage counts. Comments, copy/paste and undo help organise the graph.
Create defaults directly in Variables & Settings > Variables. Add a name and value, choose Integer if needed, and enable Exposed for per-actor controls. Right-click the canvas > Variables > Get your variable beside each consumer. No SET node is required. Right-click an unconnected numeric input > Promote to Variable to copy its value into a new exposed variable and connect a local GET.
Named ROUTE declarations are for computed geometry and math outputs. Right-click a ROUTE > Create Named Reference; double-click its reference to find the source. The example project's Tools/organize_plant_graphs.py migrates legacy parameters into graph variables and lays out commented groups with local GETs. Renaming a variable requires updating its GET nodes; missing or duplicate names are diagnosed.
Branch Level tapers continuously along each shoot. Parent calibre, shoot length and whorl count limit branch thickness; attachment collars stay short and their start caps remain inside the parent. Skin blends the collar surface and shading into the local parent surface. Roots settle using their final tapered radius, including the Radius Profile.
After updating the plugin, regenerate plants and re-export baked Static Meshes to apply these geometry changes. Existing exports retain their old shape until rebuilt. The structural showcase recipes also use finer roots, smaller collars and more open scaffold branching. Veteran and sculptural oaks have progressive trunk taper and smaller tips to avoid blunt crown stubs.
Invalid self-connections, incompatible wires and cycles are rejected. Compile errors prevent a partial graph build.
Species and leaf atlases
44 presets cover broadleaf trees, conifers, palms, bamboo, ornamentals, ancient trees and wetland plants. Bare Ivory is an additional starting graph. Presets assign shipped species materials automatically.
Leaf cards must match the texture atlas: shipped sheets use four columns and four rows. Pine uses the first eight cells of the Needle sheet. A wrong grid cuts leaves or mixes silhouettes.
Actor controls
| Control | Behavior |
|---|---|
| Seed and parameters | Vary one actor without changing the shared graph or other trees. |
| Seasons | Enable seasons and vary Season Phase across the graph palette. Foliage density can follow the season. |
| Wind | Automatic weights anchor the base and allow crown sway; an explicit Wind Weights node overrides them. Follow World Wind samples level wind sources at 4 Hz. SetWind changes local strength, speed and direction without a mesh rebuild. Supplied materials animate on the GPU; custom materials need the wind channels. |
| Runtime LODs | Build LODs creates wood and foliage prototype LODs once. Distance culling and Wind Disable Distance bound far-away rendering work. Foliage keeps the highest generated LOD's instance count. |
| Actor Nanite | Enable Nanite builds and saves Nanite wood internally while keeping the editable Plant actor. This is an editor bake. Newly generated runtime geometry uses regular Static Mesh LODs and HISM, not runtime-built Nanite. |
| Materials | Override bark, leaf and fruit materials per actor. |
| Cook policy | Use Baked Mesh uses saved geometry in PIE, cooking and the game. Bake again after changing the graph or instance density. Build At Runtime trades generation cost for a changing plant. |
| Leaves | HISM components share prototypes. Draw calls depend on clusters, LODs, materials and rendering passes. |