Download

Understanding Instancing in Unreal

I’m slowly building up my understanding of the engine from an environmental artist/level creation perspective and how what I can create in my DCC apps translates over into Unreal and my levels.

One area I’m trying to understand is instancing, to create larger scale “duplicates” of e.g. rocks, plants, etc. to populate a level in a guided but procedural way.

1 - Is there any way to convey instancing via e.g. FBX, in the sense that one might leverage instancing in Maya or Max to create the scene, but then want to import that into Unreal? I’m kind of guessing not, short of creating actual object copies (real geo).

2 - Is the Foliage system what I should be focusing on in Unreal to create instances? I’m looking for good learning material on that if anybody has suggestions.

  1. Kind of.

In say 3ds Max, my weapon of choice, an instance copy will translate an edit, in local space, from one mesh to another maintaining it’s position in world space so it’s not really what would be considered unbound. A Reference copy is different in that all copies are based off of the original and can only translate an edit forwards from the reference and the copies not translating backwards in the chain. Bit more efficient but not by much. In this case an instance is just to make editing easier across a large number of objects already in place (in place editing)

In UE4 a instance copy is unbound but when copied only has to copy what is already in memory so the big savings is the memory foot print and of course only has to render the copies with in the visible camera range and all else culled out so the idea that a change in one object will translate to changes up the chain does not happen because the instance is not bound to one another.

But

I believe the word use that best describes what I think your suggesting is called iteration. Lets say you want to put in scene 500 telephone poles but not 100% sure that they are fit to finish and what to change them all latter or you just want to reserve the space. In this case you can export a simple box primitive, call it something like telephone pole, export/import and place an instanced copy anywhere you wish. Now at some point you want to replace the box proxy with the perfect telephone you would position in 3ds Max relative to the origin, using the proxy as a reference point, and rename it to telephone pole followed by exporting as a replacement of the first file and in UE4 if you reimport the asset in the browser all 500 instanced copies will be updated.

  1. No idea sorry.