Hello,
We have recently published new documentation that covers Nanite Assemblies in USD in detail, which is relevant to some of your questions. You may find these of use:
Regarding your SpeedTree questions, we do understand that SpeedTree is a prevalent tool for foliage content generation. While we were developing Nanite Foliage for UnrealEngine 5.7, I spent some time evaluating SpeedTree’s file format to see if it would be possible to update our SpeedTree importer to support creating Nanite Assemblies. I found them to be unsuitable to represent Nanite Assemblies, because all of them had baked down the individual leaves, twigs, and branches to individual geometry.
I don’t have a whole lot of knowledge about SpeedTree, but from my searching it seems one could create a custom export pipeline to generate Nanite Assembly USDs from their Raw XML format, and it seems that instancing can be represented using Leaf References. If leaf references are able to instance more than just leaves and also represent branches or twigs, then it seems an XML to USD process could make the pipeline work. One could also author a custom importer for Unreal Engine that handles the raw XML to suit your specific purposes. This is what CD Projekt Red did for the Witcher 4 demo.
As for the future, I’m not aware of any current plans for collaboration with SpeedTree to make a Nanite Foliage workflow. Our main focus for mainstream authorship of foliage will likely remain to improve upon our PVE and PCG workflows. However, if any SpeedTree runtime format were to evolve to be represented by instanced geometry and a skeletal hierarchy, it should be easy for us to update our importer to create skeletal mesh Nanite Assemblies.
Now, for the ground vegetation issues. The base mesh of the skeletal mesh Nanite Assembly unfortunately must currently have geometry for the import to succeed. You could add a Mesh with a single triangle that is hidden. It may or may not work if that triangle’s corners are all the same point. It’s possible that you might encounter errors about degenerate triangles or empty meshes, but you should try it. If it does succeed, then it will effectively have no cost as the mesh builder will discard any degenerate triangles. We should theoretically be able to relax this requirement in the future. However, do note that currently Nanite Assembly parts only animate rigidly, and so making all visible geometry a part of an empty skeletal mesh assembly can work like this, but these parts will not bend. It will just behave like animated static meshes.
Regards,
-Jamie
[Attachment Removed]