Summary
There are currently multiple issues with ISM support in UEFN, but this report focuses on a single, specific problem that is having a substantial impact on optimization and memory usage in one of my projects.
In my LEGO version of Color Drop, I use Instanced Static Meshes (ISMs) to reduce draw calls and actor count, due to using the LEGO Brick Editor. Using ISMs reduced the actor count from approximately 981 actors down to ~60, providing a massive optimization benefit.
Here was the workflow.
- Convert meshes in the project to ISMs
- Place those ISMs into a Blueprint
This is done by copying an ISM from the Outliner and pasting it into a Blueprint hierarchy
Once inside a Blueprint, the ISM can be treated as a prop and controlled like a Creative prop
From there, I have two methods to hide/show the Blueprint containing the ISMs.
- Verse
- Prop Manipulator
Both methods produced the same issue.
When the Blueprint is hidden, the visual mesh disappears, but collision remains active on the ISMs.
This behavior has been tested extensively, as this was my intended solution for the Color Drop system across both my Fortnite Creative and LEGO versions.
I have also attempted.
- Manually disabling collision via Verse on each child component in the Blueprint
- Other Blueprint collision toggling methods
None of these approaches successfully remove collision from ISMs once they are hidden.
I also explored moving ISMs into Scene Graph entities to manage visibility and collision there, but ISMs are currently not supported in Scene Graph, removing that option entirely.
Because of these limitations, my LEGO project is currently sitting at ~70% memory usage
Optimization is significantly worse than it should be
I am forced to use less efficient alternatives instead of ISMs
ISMs are one of the most powerful optimization tools available in UEFN. If creators had reliable control over ISMs it would dramatically improve performance and memory usage across many projects.
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
World Building
Steps to Reproduce
- Create an Instanced Static Mesh (ISM) in the level
- Copy the ISM from the Outliner
- Create a new Blueprint
- Paste the ISM into the Blueprint’s component hierarchy
- Place the Blueprint into the level
- Hide and show the Blueprint using either Verse or Prop Manipulator
- While the Blueprint is hidden, test collision
Expected Result
When the Blueprint (ISM) is hidden, both visibility and collision should be disabled.
Observed Result
The ISM is no longer visible, collision remains active
Platform(s)
All
Island Code
5905-4909-1857
Upload an image
Additional Notes
The image provided is from the FNC version, but the issue is the same.
