So I have been playing with the Matrix sample project for 3 days now and haven’t been able to get my head around this actor? All the buildings are like this but I have no idea how these were set up in Unreal.
As you can see, a building is selected and in the “Outliner”, it says “Actor”
And in the “Details” panel, you can see “Instance” written in front of the building name and then below it, it has several different static meshes that comprise the whole building.
I can’t open this asset by double clicking. And nothing happens if I click “Edit in Blueprint” inside “Details” panel.
Can someone please tell me what type of actor this is and how and why was it created?
Please don’t mind if it’s a silly question. I am not a game developer but an archviz artist who moved to UE4 3 years ago and now trying to wrap my head around UE5.
At the top of the place actors menu, there’s an empty actor which can be placed in the scene. This can have components added to it in the details panel, but there’s no blueprint, as it’s probably using the raw c++ class as the “container.”
It’s rather handy for things like buildings which don’t need logic. After setting up the first building, one can quickly duplicate it and move the copies around.
Thanks so much man. I was getting crazy trying to figure it out.
Does it improve the performance if buildings are done like this? If yes, how does it do it? I mean does it reduce the draw calls or what?
Isn’t it better to create ISM/HISM for such things?
Not sure how much it affects raw performance, but reducing actor count probably does something. And it makes the level outliner a lot less jumbled lol.
As for ISMs, you can also add those to the dummy actors, click the component, and alt drag to add more instances.
Okay, so I conducted some tests and below are the results.
This first image shows the van mesh that I used. It’s a nanite mesh and has 11 material slots. It was by default like this and I didn’t change anything.
The 3rd image below has an actor with ISM component in it. This ISM component was duplicated over 10,000 times and it is heavier than the static meshes. Don’t know why it is happening though.
This 4th image below shows an actor with a single ISM component in it. This single component has around 7000 elements inside it. This actor was then duplicated 2 times so in total it has above 21000 ISMs.
I am a little confused by the results but it’s also true that I have never used nanite before so don’t know if that is affecting the results.
Btw, if I have to paint foliage all over my landscape and surrounding area, how can I convert it to an actor that has an ISM component and all those painted trees become an element of this ISM actor? I hope you understand what I am asking here. Thanks
The engine has mostly instanced duplicate static meshes before rendering since 4.2something, so it would make some sense that thousands of SMs would be faster than thousands of ism comps with the same mesh count. Draw calls should probably be the same either way I think, but all those components have their own overhead.
That the van is Nanite is likely affecting performance. It has some issues with lots of thin geometry stacked on each other, so the interior details are probably causing quite a bit of overdraw as the screen size approaches 0. There should be a visualizer for that in the view mode drop down.
As for foliage, it already uses some flavor of ism in the background, so no real need to convert it. If you need to interact with it (to cut down trees or whatevs), you can trace against it, cast to the relevant instance class and get the instance ID and transform to spawn a real actor in its place and remove the instance ID.
Thanks man. I have seen 3-4 projects(some from marketplace) and some from ex colleagues and they use ISM for foliage. Never understood why. I thought it would be better performing than painted foliage. I will try to do some tests in my next project to figure it out in a better way.