Support/Roadmap/Guidance for using nested packed level Instances and splines inside of Assemblies/PLI's in PCG Graphs

Hi,

We are currently evaluating the limits/workflow of PCG for use in our project and have run into a few limitations that we’d like to get guidance on in terms of whether Epic expects to add support for these workflows or if there might already be ways to do this that we might not be aware of.

We would like to have artists be able to create Packed Level Instances that include nested PLI’s as well as splines inside the PLI that will then be placed using PCG graphs. As an example use case, the artist might create a cluster of rocks with a tree on it as well as other vegetation, a small piece of ruins inside of its own PLI, and twisted tree roots and and fencing created using splines (see example image).

Following the PCG workflow shown in the tech talks, we have successfully tested placing these assemblies and randomizing various parts of the assembly using actor tags. However, in this workflow, the splines and nested PLI data seem to be excluded from the PCG data loops and don’t show up, which isn’t entirely unexpected.

We have found that as a workaround, we can generate a blueprint using Packed Level Instance as the parent class and spawn this as an actor via PCG in order to preserve both the nested PLI’s as well as the splines. However this workaround comes with the limitation that the data inside of the PLI isn’t really being accessed by PCG and is just being spawned as a simple actor in a bp wrapper, so we can’t use PCG to affect the data inside. While we might be able to add some of this into the blueprint itself, this seems like it would also be bypassing the core strength of PCG as well as the performance optimizations that come with it.

The ideal functionality for this use case would be:

  • The ability to run a step to first extract any nested PLIs into their components so they become visible to the PCG logic and result in a single flattened layer of ISM’s in the final placement.
  • For spline meshes, the ability to either extract out the spline asset and leave it as an intact spline placement in the final placed assembly, or to convert each of the deformed spline meshes to individual meshes in the final flattened layer. In our spline root example, we are twisting and scaling the root mesh over the length of the spline, so the spline data is more complicated to parse through than simple transform data.

Is any of this possible to do already in a way we haven’t tried, and/or can Epic potentially add support to be able to do these things?

Steps to Reproduce
Repro - Nest a spline mesh actor as well as a packed level instance inside of another packed level instance and try to parse it using an PCG data loop.

Hey Konrad,

PLI doesn’t support preserving the Spline data and I do not think anything is in the plans to support this.

Maybe you could write your own or extend UPCGLevelToAsset to support your use case? Basically transforming a Level into a PCG Asset which you could then use inside your graphs.

Hope this helps,

Cheers,

Patrick

Appreciate the clarification. It’s good to know there won’t be further development in this area so we wouldn’t be duplicating functionality if we extend the conversion to PCG Data assets to support this. That does seem like the logical place to add the additional customization since it will mostly stay clear up the core PCG functionality and any future updates.

Thanks!