Hello,
I have a questions ( in the bottom of this topic) regarding two approaches of creating instanced static meshes in Unreal Engine 5
1. Create Instanced Static Mesh (ISM) and populating through blueprint
From this post - Unable to select Instanced static mesh in viewport? - I created blueprint for populating instanced static meshes in scene:
In this approach when user selects actor instance, whole actor is then selected ( in viewport and outliner as well)
To update the instance transform, user has to go to Instanced Static Mesh component, look for Instance transform arrays and tweak it there. This is not user friendly as there is no gizmo in viewport to ease the workflow
Have you discovered a solution for this irritating issue yet? The problem persists if you have a Packed Level Actor within a Level Instance - you can’t select the PLA by clicking on one of its instances. I’m curious if this indicates that I’m incorrectly using Instanced Static Meshes, or if this functionality is still in the process of being developed.
After conducting extensive research on the topic, I have found that it is not possible to select the ISM/HISM directly by clicking on its instance. This is because each instance belongs to the class of USMInstanceElementDetailsProxyObject, which is not directly linked to its parent blueprint (it’s linked by FSMInstanceManager but for now it’s a dead end). As a workaround, you can make it selectable by adding a Billboard component to the Blueprint and clicking on that component instead. Although this is not an ideal solution, it should suffice until Epic developers implement this feature.
This is really the most annoying thing in Unreal engine, even deselecting multiple actors isn’t possible. They really should fix this issue. It make me loose a lot of time in doing basic things.
It is better to add instances by cpp, when you add new UInstancedStaticMeshComponent you need to set it’s property to be able to select individual instances. InstancedComponent->bHasPerInstanceHitProxies = true;
Wow, it’s amazing that it worked! I spent quite a while debating whether I needed to alter the source code to implement this modification to the ISM. Fortunately, simply configuring the property through the Utility Widget proved to be sufficient to get it functioning!
Below you can see a video showing the result + how I implemented the change.
EDIT: It seems to be functioning to some extent, as demonstrated in the video I’ve shared. However, there are limitations, such as the inability to select Packed Level Actors—once modified, they become entirely unselectable. Additionally, the modification isn’t retained; if you reload the level, the actor containing Instance Static Mesh Components reverts to being unselectable.
Hi, I’m being frustrated with this happening to me in my level when I convert PCG things into a BP actor. Do you mind running though how you made the function to disable per instance hit proxies? I am pretty new to unreal so I’m not super versed in how to create a function with a custom command like that.