Export Unreal Nanite Assembly
Export Unreal Nanite Assembly writes a Natsura assembly out as a USD scene plus a wind.json describing the wind layers. The USD carries the geometry, rig, skin, and instance hierarchy; the wind.json carries the per-layer wind setup authored upstream with Wind Config. Together they are what Unreal's Nanite Skeletal Assembly pipeline consumes. This node replaces the deprecated Unreal Wizard.
Inputs
Takes both outputs of the source Simulate:
- Geometry, the left output (the meshed, decorated tree).
- Rig, the right output (the skeleton produced at simulate time).
Both are needed: the rig is what makes the export a skeletal assembly that can carry wind. Set the node's display and you should see the geometry slightly transparent overlaid with the skeleton.
Outputs
- USD containing the geometry, the rig, the skin weights, and the instance hierarchy.
- wind.json describing the wind layers for the tree, ready to be wired into Unreal's wind animation system on the engine side.
Parameters
Export
| Parameter | Description |
|---|---|
| Enter Solaris | Drops into the Solaris (LOPs) network that handles the USD export. The actual export lives on a Create Nanite Assembly LOP there, alongside a Karma Physical Sky for lighting. Turn on the sky's display and switch the renderer from Houdini GL to Karma XPU to path-trace a reality check before Unreal: anything wrong or missing here will very likely be wrong in Unreal too. |
| LOP Network | Reference to the LOPs network where the export is performed. |
Create Nanite Assembly LOP
| Parameter | Description |
|---|---|
| Auto Fill Materials | Walks the assembly's display geometry and pulls each piece's material into Solaris. Run this before saving. |
| Name | The asset / root-prim name. Set a distinct name per export so assets don't collide in the same Unreal project. |
| Format | Choose USD (the default may show USDA, switch it to USD). |
| Save to Disk | Writes the .usd and its wind.json sidecar. A file-explorer button opens the output location. |
Warnings
| Parameter | Description |
|---|---|
| Missing BoneCapture | Surfaces when the input geometry is not from a Simulate (and therefore not rigged and skinned at simulate time). Geometry that has lost its BoneCapture along the way needs to be re-derived from a Simulate before export. |
Notes
- Per-export instance limit. Approximately 56,000 instances per export. Split larger forests across multiple exports.
- Watertight and manifold. The Unreal static mesh importer rejects or struggles with non-manifold decoration meshes. Produce clean watertight decorations before export.
- High-res, high-volume imports are slow. Very high-resolution models in large numbers take a long time to import on the Unreal side; the static mesh importer is a bit buggy in this regime, expected to improve with later Unreal versions.
- Run Simplify Tree Rig and Skin first to bring the joint count into a sensible range for the engine.
- Place Wind Config nodes upstream. The
wind.jsonoutput is derived from the Wind Config chain; without one, no wind layers are written. - Re-run Auto Fill Materials after renaming. Changing the asset name breaks the material paths; a material-less import in Unreal almost always traces back to a skipped re-fill.
- Materials or wind sometimes go missing in Solaris. A known early-access hiccup, especially after re-entering Solaris with new wind. Clearing settings and unhiding / re-hiding the nodes generally brings them back.
- Version, don't overwrite. Re-importing over an existing Unreal asset does not reliably pick up skeleton/geometry changes. If the skeleton or geometry changed, export under a new name; only a wind-only change can be re-applied to the existing import via its
wind.json. - USD schemas. Natsura ships its own copy of the Nanite USD schemas so the export works on any machine, including ones without Unreal installed. With Unreal installed, Natsura's copy takes precedence over UE's USD plugin in Houdini's schema registry; the exported file is identical either way. To register UE's bundled USD plugin (with Groom, ControlRig, LiveLink) instead, contact support for the manual workaround.
See also: Take Your Tree to Unreal · Working with Assemblies in Unreal · Wind for Unreal · Wind Config · Simulate · Bake · Unreal Wizard (deprecated)