Assembly Workflow

Build a library of rigged parts with Assembly Resource, place it on a tree with Assembly Decoration, choose which part goes where with traits, and pose the parts with effectors while they stay instances.
This page is still being worked on. Images and clips are coming soon.

An assembly is a prefabricated, rigged branch or cluster: a hierarchy of packed instances, such as a twig with its leaves, where each part is an instance and the rig ties them together. The assembly workflow builds a library of these parts and places it on a tree, and it is how foliage gets onto a tree in Natsura. Foliage & Instancing covers the idea; this page covers the workflow.

There are two halves. Assembly Resource turns your geometry into a rigged library, and Assembly Decoration places that library on the tree. Both are on the toolbar: Assembly Resource in the Assemblies menu, Assembly Decoration in the Decorate menu.

Why rigged parts

Because every part is rigged, the decoration can bend it by rotating its joints instead of deforming its mesh. A placed part stays an instance, and the same library entry can point up at the top of the tree, lie flat towards the sky lower down, and droop at the ends, all from one asset. How much variation you get depends on the rig: a small part with a simple rig looks stiff, and a larger part with more joints gives a wide range of shapes.

Build a library

Place an Assembly Resource, set Filetype to USD or BGEO and pick the file, or wire SOP geometry into its input. A new node loads an example branch kit, so the parts and pivot warnings you first see are the example's, not yours. Instances of the same geometry should share the same Pieces attribute (name by default).

Each part's pivot needs to sit at its base, where it joins its parent branch, and that goes for buds and leaves too. With pivots in the right place, the resource rigs the library automatically. Uniform Scale fixes a library that is far too large or too small for the auto-rigging.

If some pivots are wrong, the node says how many need fixing. Press Enter on the node: the viewport shows just the parts, with the bad ones in red. Left-drag roughly over a part in the direction it points to move its pivot, and use the gizmo to line it up exactly. When nothing is red, the node shows its counts of instances and assemblies in the network view.

To check the rig, press play: the parts move in the wind set on the display toolbar (Strong makes it easy to see), and Display Rig shows the joints. If no part comes loose, the rigging worked. Add materials under Materials by setting a Surface Resource per group.

The resource also has an Edit Assembly state, from the same strip as Edit Pivot, for rotating parts after rigging, and Assembly Edit does the same as a separate node. Parts are rotated one at a time.

To build a library from a branch you grew in Natsura, use Rig to Assembly on that branch's Simulate instead. Merge Assemblies (Experimental) combines several libraries so one decoration can draw on all of them.

Place it with Assembly Decoration

Wire the library into the first input of an Assembly Decoration. Until the decoration is assigned to a Grow, it shows the parts on a built-in preview tree, so you can set it up before the tree exists. Assign it the way you assign any decoration: with Grows selected, choose it from the Decorate menu, or drag it into an empty slot under Decorations on the Grow.

The decoration's settings fall into four jobs:

  • Spawn: Spawn at chooses the points that get a part (Tips, Intersections, Internodes, Roots, in any combination). With Internodes on, Mode picks Divide or Distance, and Divisions (after its toggle) or Step Length adds more points along each internode. Mask is the chance each point keeps its part.
  • Select: traits decide which part from the library goes on each point.
  • Pose: Transform sizes and orients each part (Scale, Spiral, Multiplicity, Whorl Angle, Pitch, Yaw, Roll, Offset), and effectors bend it through its rig. Multiplicity places several parts per point, and Whorl Angle only applies when it is 2 or more.
  • Thin: Prune removes pieces inside the placed parts where the canopy is densest.

Most of these parameters have a map button, so they can vary over the tree. See Mapping.

Thin the canopy

Mask and Prune both thin the canopy, in different ways. Mask is a chance per point, and mapped from an attribute such as u it can keep more parts at the ends of branches and fewer inside. Prune runs after placement and looks at how dense the canopy is. It removes from the densest areas, and it removes parts within an assembly rather than whole assemblies, so the canopy opens up more naturally. The two work well together.

The nodes inside Assembly Resource

Assembly Resource wraps a chain of nodes, in this order: Import Assembly, Partition Assemblies, Pivot Edit, Build Assembly Rig (which packs each assembly with Assembly Pack), Assembly Edit and Visualize Assemblies. Import Assembly, Pivot Edit and Assembly Edit can also be placed on their own when you need control the wrapper doesn't give you. Partition Assemblies and Build Assembly Rig are hidden from the Tab menu in 0.7.3; Build Assembly Rig's settings, which the wrapper doesn't expose, can stay on their defaults for most libraries.

Classify, in the Assemblies menu, runs the trait chart as a node of its own and writes each part's trait values onto the library. Assembly Inspect (Experimental) reports the polygon, instance and joint counts of an assembly, and Simplify Assembly (Experimental) reduces the polygons of an assembly's packed parts.

Export

Assemblies keep their instancing through to Unreal. Export Rig on the Assembly Decoration passes each part's rig into the tree rig, for finer wind in Unreal at the cost of more joints. See Nanite Skeletal Assemblies.

Status

Parts on the chart or in the viewport sometimes display wrongly; toggling the display flag fixes it. A Classify on its own can error on its default links. Assembly Edit has no box selection yet. More ways to reorient whole libraries are planned.