Brushes stay in place in transformed level instances
When using LoadLevelInstance to load a level instance at a different location/rotation than default anything that is built using CSG brushes will ignore then transform and stay in their default positions. This includes pretty much everything in the Volume category: post-processing volumes, character indirect lighting volumes, camera blocking volumes, etc. If you eject from the pawn, you can see that the brushes' position changes, but their geometry stays at their original position.
For us, this severely limits the usage of transformed level instances since the loss of character indirect lighting volumes prevent us from fully leveraging baked lighting in dynamically-generated levels:
I'm attaching a project that demonstrates the problem:
asked May 25 '17 at 04:38 AM in Bug Reports
I made a pull request with a fix for the precomputed light volumes: https://github.com/EpicGames/UnrealEngine/pull/3627
I haven't got started on the problem with brushes. I also found out lightmap directionality breaks when level instances are rotated, which is something for another fix.
answered May 28 '17 at 04:13 PM
It's not that the lightmass volume isn't being transformed, it's that lightmass relies on precomputed lighting. This is explained in more detail in this post. During play in your level, I'm sure you noticed all of the warnings to build lighting even though lighting was built in the tile room.
I tested several other volumes (trigger, navmesh, camera blocking, etc) and all transformed and worked correctly in your project. Even the lightmass volumes are showing they are in the correct place if you look in the details panel and click through them while ejected.
answered May 26 '17 at 06:26 PM
TJ V ♦♦ STAFF
I need to study the character indirect lighting source to see if its possible to displace the pre-computed light probes at all. But did you test geometric volumes? Solid brushes don't get transformed with the instances. Place a brush box in the tile level and play the "dynamic level", and this is what happens:
The coordinates of the objects in the details panel is transformed, but their actual geometry isn't:
answered May 26 '17 at 06:44 PM
I was going through the source to see what could be done in regards to the lighting. My findings:
Since all that stuff is marked as ENGINE_API, I did a quick test which doesn't involve modifying the engine (because I didn't download the source for 4.16 yet). I created an actor class with a SceneComponent root and added this to its BeginPlay:
Then I placed one of those at the origin of the Tile level. The result:
I'll download the 4.16 source code and make a proper fix this weekend.
Follow this question
Once you sign in you will be able to subscribe for any updates here