Instance Tool - Editing instances directly in editor viewport

Thanks for making this plugin. :slight_smile: Very essential tool.

I noticed the ā€œgenerate overlap eventsā€ are enabled as default for the instanced components which is unneeded performance hit. Could manually uncheck that, but better if off as default. As more important question - is the tick set off for the HISMA actor? Worried those could also add performance hit, when there is hundrets of HISMA’s made, even there isnt code ran for the tick.

@SaOk, sorry for reply late. (Was outing this weekend)

For the generated HISMA actor, the default ticking is off. (Actually I believe It’s the default behavior of an empty actor, I recall that I verified that in debugger)

You made a very good point about setting ā€œgenerate overlap eventsā€ or other physics/collision properties for generated instanced component.
I think instead of add all possible physics/collision settings for the Convert operation, there could be 2 generic solutions:

  1. when converting static meshes into an new HISMA, all physics/collision setting will be copied into the new HISMA. (will be implemented in next update):

e.g. there’re 100 rocks static meshes actors whose ā€œgenerate overlap eventsā€ is off, then the new HISMA’s instanced component’s ā€œgenerate overlap eventsā€ is off too.

  1. when converting static meshes into an existing HISMA, all physics/collision of existing HISMA will be preserve. (availabe in 1.1.0)

e.g. there’s one existing rock HISMA whose ā€œgenerate overlap eventsā€ is off, you can choose to converting the 100 rocks static meshes into this existing rock HISMA, then all 100 rocks instance will benefit from the ā€œgenerate overlap everntsā€ off.

Sounds great thanks. :slight_smile: Have been so easy to work on the map now with the plugin. Can add much more small details in notime.

Just uploaded 1.1.1 version to itch (Instance Tool for Unreal Engine by marynate)!

Rewrote undo code, now all operations including select/add/remove/align/snap/convert operations are all undoable. Another improvement in 1.1.1 is when converting between Static Meshes and Instanced Static Meshes, all component properties will be transfered too.

Please note that the precompiled 4.13.0 version you downloaded on itch also works with 4.13.1 hotfix.

Instance Tool just go live on marketplace! :slight_smile: Instance Tool in Code Plugins - UE Marketplace

Hi,
Instance Tool works well with Static Lighting made by Sky Light?

Hi @Aderus,

Instance Tool is an editor tool, it does not modify instanced static mesh’s runtime behavior. So it should works in your example.

Here’s a test scene I just made to show a static Hierarchical Instanced Static Mesh (cubes) with backed lighting from static SkyLight.

I’m having an unplanned trip from Oct.14 to Nov.1, and only have limited internet access. Sorry that I might not be able to check post/pm/mail daily during these days.

Hi. I’m having a problem with intancing.

When I’m instancing, between instanced meshes have always small gap.

Can you tell me how can I fix this problem?

Thank you!

Hi, I’m adding more information.

It’s happening when I’m instancing with Alt key in viewport and only Rotated.

When I Rotate with Alt key, it scales down little bit like 0.99998 then it breaks up and makes a gap.

How can I prevent this!? Thank you!

rotate.JPG

@MeepMeep, if the issue only occurred when the instance been rotated, it might has something to do with how transform matrix stored for Instanced Static Mesh instances. Do you get similar gap when setup instances using Unreal’s build-in add instance tool (manually input the rotation value in array field)?

I’ll address this issue as soon as I’m back from my trip, but as a workaround, you can selected all rotated instances and input exact scale value in the transform panel. (It might not works, but worth a try). Another possible solution is to play with the snap tools’s snap offset value, basically it will snap instances together with some tiny overlap.

Hi Nate! How are you?
I’m happy to be answered.

I’ve been digging this problem.
My level scene is 100% used with 2 Meter x 2 Meter per texel density 2048x2048 textyres, with all Instanecd Static meshes, and keeping under 50 to 120 draw call in visible area.

But I’ve never rotated my modulized static meshes because it’s very difficult one by one hand to hand.
It was first time to rotate with your plug-in because it’s so robust.

Here is the point, Even I rotate without plug-in, it makes a gap and changes scale.
Therefore my opinion about this issue is actualy unreal engine’s own issue, not from your plug-in.

It leaks lightmasses and makign a light though the gap.

I’ve been digging this issue from year 2015, and quite many people mentioned and apply to bug reporting.
Only I can fix my problem is I rotate in Maya and import pre-rotated mesh and instance as different static meshe ( It causes double draw call per pre-rotated meshes )
Sad but I hope Epic team would fix this problem.

Thank you !

PS. Your plugin is AWESOME. Thank you for make this !!!

Hi, I’m back :slight_smile:

I’ve just updated Instance Tool to v1.1.2.

One main feature introduced in v1.1.2 is new Distribute panel, which might come in handy when you trying to line up or distribute instances in global/local space.

distribute_panel_1.1.2.jpg

There’s one interesting feature in Distribute panel: Distribute Ignore Smae Location? might worth some explanation:

Say you have 3 rows of instances, and you like them to be distribute in X axis in 3 group

That’s Distribute Ignore Smae Location? option for

distribute_group_2.jpg

Basically it will treat all instances with same location in aligning axis as one group

Aother feature introduced in v1.1.2 is ā€œAuto Align Scale to Gridā€, which is a workaroud of instance scale drifting issue (as @MeepMeep reported). For more info regarding scale drifting, Niklas Frykholm wrote an detail article here. But unfortunately keeping the scale from drifting wont fully fix the gap between rotated instance bug in engine itself. (The bug dated from 4.8 according to this answer hub post). Good new is that the bug is related to issue UE-17458 which is targed to be fixed in 4.15.

Meanwhile I found the simplest solution for fixing the gap between rotated instances (before 4.15), is to add a tiny scale to rotated instance. (I’m adding Delta Transform function to make it easier in next version.)

Nate,

It’s amazing that you have solved the real issue that I have suffered such a long time.
Mostly, this bug has been make my project 64 times more of draw calls because I had such a no choice for not using ISM because it’s modulized in very small chunks with sensitive shader.
So for fixing gap was just importing with each 90 degree of base static meshes, which costs 8 more each pre-rotated meshes consumes.

Thank you very much and I wish this should be known to other devs. Such a good news.

Hello!

I’m actually implementing to version UE engine but I can’t update from Launcher.
Would you let me know how could I update your new version plugin? Thank you!

Hi @MeepMeep,

You can install plugin through marketplace product page:

In the product page, click ā€œInstall to Engineā€ button

If you have already installed the plugin, then you can update the plugin from Library:

Under the engine version, click ā€œInstalled Pluginsā€ text link:

You should able to update the plugin from the list. (Here all my plugins are up to date, so there’s only Remove button")

Hello Nate!

Finally I solved my problem with your support. Thank you very much!
I’d like to ask when does it gonna be updated for 4.14?
I wish I could get your answer soon!

@MeepMeep, I have submitted v1.1.3 with 4.14 support to Marketplace, should be available through Launcher soon. itch user can download it now.

One main feature implemented in 1.1.3 is new Delta Transform panel.

5341738271eacb2154c4e3dcfa505ee6da085d2d.jpeg

You can also duplicate instances while applying delta transform, which could be use to generate interesting structures.

4069b4fcee04aeeb19c69a4e55b3eee2b7f3a329.jpeg

87e678ab39f233bc50e2f36c20fcfe28d5281001.jpeg