UE 5.5, Deleting a HISM During runtime causes 1 object in the hiarchy to blink in and out.

Hello,

So… Instanced static meshes have always been a great tool for optimization in UE5

And as a result I made my whole game with only Instanced static meshes, Everything was working fine until I upgraded to 5.5, I have no choice I need the megalights.

Now just like the video below If you remove any Instance within the stack the object that has to take its place in the stack will now delete and then re spawn in real time which is really bad.

Deleting instances in the correct stack order does not blink the Object example “deleting index 1 then 2 then 3 causes no issues but deleting index 2 first causes the bug”.
Deleting instances in any other version of Unreal Engine does not blink the Object.

Video below showcases the issue:

What do I do?
Changing object transform instead of delete will cause slowdown over time, Burst delete once player leaves an area will cause stuttering.

And… Why does UE not just change its index without de-spawning it just like before?

Thank you in advance.

I already Tested different methods of interaction, lighting and textures.

Its directly related to HISM index change of objects.
I Know this one is hard but I got nothing.

Update 3:

I have now made a really poor band aid algorithm that shifts and deletes objects in bursts, its really bad and so far there is no fix.

Ive been having the same issue for months and it has been driving me crazy. When deleting an instance, I have one random instance disappearing for a frame and then reappearing the next frame. Is nobody else experiencing this? I am really surprised that nobody else has replied here about this.

For a temporary solution I am just moving the location of my instance under the ground instead of deleting it, but that is really unoptimal.

1 Like

HISM’s instance arrays reorder on change. Say I have 100 instances (0-99). If I delete #98 the array will shift and #99 is now #98.

So If I’m doing multiple deletes I have to get a list of all the instances, sort them high to low and then delete. Largest index to smallest index.

Here’s a the loop for sorting. Keys are the indexes you want to delete.

1 Like

I guess that would do as a workaround for large deletes but for single instances it still blinks quz there is nothing to arrange, and player has full autonomy over what they wish to remove.

My main issue is that… in 5.3 rearranging instances caused 0 issues.

Why is it broken now when it was just fine 3 months ago?

Vid shows the instance being removed is fine. It’s other instances down the chain that flicker.

First delete the last on right flickers.
For the remaining deletes it’s always the 2nd from last that flickers.

I don’t think this has anything to do directly with removing the specific instance.

5.6… deleted instance during runtime still causes another one to blink…

It Blinks faster now! but blinks all the same.

I don’t think Epic cares about this issue at all to be honest.

I also have the same problem, but I have solved it now.
First, BuildTreeIfOutdated (false, true) must be called in C++immediately after the number of Instances changes,this way can fix Culling Problem.
Additionally, I noticed that when the number of instances changes, other instances in the Velocity buffer will suddenly change their Velocity


so,Turn off motion blur in project settings and set motion Blur Amount to 0 in PostProcessing Volume
image
I hope it can help you

Thank you, this helps alot!