Questions on the HLOD system - source control and other questions

I think my source control (Perforce) is causing problems with my HLOD proxy meshes "remaining saved."

After I closed the editor (no crashed, saved everything fine and exited) I got this error message.


  "Failed import for StaticMesh  /Game/Maps/Mapname_0_HLOD_SM_Mapname_0_HLOD-Fence700" Referenced by export StaticMeshComponent

and then it lists another long name. When I open up the map, the same one I spent an hour building HLOD proxy meshes, I see most of them are *waiting to be built still. - *WTF HLOD SYSTEM - Album on Imgur -

Also, I noted this in the output log when I first saved it. It just seems like it’s doing what it is supposed to but maybe I’m missing something


LogSourceControl: Attempting 'p4 fstat -Or E:/LiveSimMainline/Content/Maps/HLOD/ModNeighborPack_OptimizedVersion_0_HLOD.uasset E:/LiveSimMainline/Content/Maps/ModNeighborPack_OptimizedVersion.umap E:/LiveSimMainline/Content/Maps/FactoryLevel.umap'


At first, I thought it was the assets but then I realized I had different assets on a different map that had the same problems. And I remember building these HLOD maps, a few years ago, but back then I wasn’t using source control. I went to the assets in question and started a new project with those same assets (basically the same level) and used the same HLOD gen settings (migrated them over ) and built a few proxy meshes. In my source controlled project, once you close and reopen the editor, the proxy meshes you generated are gone. In my test project, they remain.** What do I need to ensure to check out from source control - I tried checking out the entire content folder of the map in question but it did nothing.**

Originally I thought there was some problem with the assets - some of them used a animated texture (like leaves blowing in the wind) - while I’m not sure why these mesh actors weren’t used a foliage for instancing, that shouldn’t be a problem. EVERY SINGLE LOD ACTOR / PROXY MESH BUILT FINE. I could open up each asset if I wanted to in the content browser as a static mesh and it had a valid material. So I don’t understand how this can be related to any problems with the assets if it actually builds the proxy meshes and you can see them, heck, you can place them if you feel like it, (though it wouldn’t really make sense to)

**I also did an experiment - i duplicated one of the static mesh LOD actors and renamed it. When I came back to the editor, it was gone from the content browser, but I could see it in windows folder as a uasset. **I’m assuming because the HLOD system first needs to exists before any actors referenced by it will appear in the content browser. Still, it’s behaving like redirectors.

Anyone know how to tell perforce to stop jacking up my HLOD’s? Thank you!

Slightly related - Can I select one of these HLOD clusters? - Album on Imgur - Can you select one of these HLOD clusters from the world (otherwise I’d have to just guess where it is or build all the proxy meshes)

1 Like

This was a long time ago but did you figure out what this was? I am seeing a similar thing.

1 Like

Nope - still can’t find a “best practice” for this stuff - my guess is that no one uses source control for HLOD’s and teams just have a workflow they use to build on the client side if any devs need to test performance. That, or they just do HLOD’s at the very end before a build.

Me and my team ran into this issue recently and managed to solve it by building the HLODS in the sublevels separately and then making sure that the HLOD clusters didn’t have any Unreal engine primitive shapes in them, for some reason leaving them in the clusters would lead to us having mismatches inbetween our computers.