HLOD generating corrupted meshes with 0 triangles. What are some reasons this may happen?

HLOD generating corrupted meshes with 0 triangles. What are some reasons this may happen?

According to the log the error message for these are …
“LogStaticMesh: Built static mesh [0.02s] /Game/Maps/SurvivalHorrorCampaign_Act1/HLOD/act_mainHall_HLOD.LOD_sm_box11
LogActorComponent: RegisterComponentWithWorld: (/Game/Maps/SurvivalHorrorCampaign_Act1/act_mainHall.act_mainHall:PersistentLevel.HLODSelectionActor_4.VisualizeComponent0) Already registered. Aborting.
LogHierarchicalLODUtilities: Building Proxy Mesh for Cluster LODActor_4
LogStaticMesh: Building static mesh LOD_floor51…
LogMeshUtilities: Error: Raw mesh is corrupt for LOD0.”

Hey kurlyo3d,

I attempted to reproduce this but I’m not seeing these same errors in 4.17.2. What are the steps you are using to generate the HLOD? Or a small project with the errors could be helpful as well.

Thanks for the response. I will attempt to get you a small project with the room that i am currently using to test with. I will have to try to seperate it from the rest of the project… Either tonight or this weekend I will upload it some where. Do you have a method I can contact you privately?

The best way would be to send me a PM over the Forums. Please just make sure to post a comment here letting me know once you have; that way I will also get an email notification.

I just sent you the link. Let me know if you got the message… Hoping i found the right forum user…

Thank you for providing the project. I see what errors you mean and the corrupted assets.After looking into it and digging through the logs, I’m unsure of what could be causing it.

Can you provide steps on how to create a new corrupted asset? Preferably in a new project with template assets; however, a repro in the project you provided would be fine as well.

If you delete the clusters and regenerate them with the same settings… then 1 by 1 generate the actual hlods… u will see it happening. (Dont generate the last group big hlod or else it will crash the editor with simplygon… the crash im guessing may be happening because the first set of hlods are being generated with corrupted meshes…)

But yea… generating them yourself should give you the 0 poly ones… I dont see anything wrong with the meshes… heck most of them are from an asset pack on unreal market…

even when i copy and paste all objects in the main hall level into a new level and add that as a sublevel… that new levels hlods generate as 0 polys as well…

any idea what this means in log? Its preventing me from saving… have no idea if its related but I copy and pasted the level into a new level… and added that to the persistant level while removing the old one completely to test with…basically ive been removing objects from the cluster 1 by 1 that the log tells me are problem objects until it allows me to generate the hlod correctly with polys… this last one sm_porcelain_broken4 was one of the models screwing it up, but after i hit save all after generating the HLOD… it wont let me save… gives me this error in the log…

“EditorErrors: New page: Save Output
EditorErrors: Warning: Can’t save …/…/…/…/…/…/my_work/Games/migrate2/MyProject2/Content/Maps/SurvivalHorrorCampaign_Act1/test_copyMap.umap: Graph is linked to external private object StaticMesh /Game/Maps/SurvivalHorrorCampaign_Act1/HLOD/test_copyMap_HLOD.LOD_sm_porcelain_broken4 (StaticMesh)
LogFileHelpers: Saving map ‘test_copyMap’ took 14.125
EditorErrors: New page: Save Output”

and a dialogue message…

"Can’t save …/…/…/…/…/…/my_work/Games/migrate2/MyProject2/Content/Maps/SurvivalHorrorCampaign_Act1/test_copyMap.umap: Graph is linked to private object(s) in an external package.
External Object(s):
LOD_sm_porcelain_broken4

Try to find the chain of references to that object (may take some time)?"

Fresh levels seem to work fine for the assets that typically cause problems in that main hall level… likewise if i move those assets to a new level via level browser or even copy them to a new level… same problem … 0 poly … corrupt meshes etc etc…

One of the assets was the broken plate model causing a problem, but if i throw that model in a fresh scene drag and drop… it generates fine… So it has to be level specific… But why?

I did use a lot of group nodes and scaling… and parenting + scaling +unparenting… in that level… not quite sure what else could be causing the problems…

Heres something interesting… this is the error log…
“LogActorComponent: RegisterComponentWithWorld: (/Game/Maps/SurvivalHorrorCampaign_Act1/tester222.tester222:PersistentLevel.HLODSelectionActor_2.VisualizeComponent0) Already registered. Aborting.
LogHierarchicalLODUtilities: Building Proxy Mesh for Cluster LODActor1
LogStaticMesh: Building static mesh LOD_SM_Rug_Small2_8…
LogMeshUtilities: Error: Raw mesh is corrupt for LOD0.”

At the end there it says LOD_SM_Rug_Small2_8, but… the asset its referring to is SM_Rug_Small2 … There is no SM_Rug_Small2_8… why would the name be wrong?

Might have nothing to do with anything, but im just grasping at straws for an explanation… Renaming the model in the scene doesnt change the outcome… still error…

And again… its not like its just 1 model in the scene causing the error… its like hundreds of them… Not all, but a good 25 % of them id say if i had to guess

It seems to relate to an outer issue. Here is some info I found on it that might help with troubleshooting:

https://answers.unrealengine.com/questions/219204/cant-save-due-to-graph-is-linked-to-external-priva.html

https://forums.unrealengine.com/development-discussion/c-gameplay-programming/4349-outer?4172-Outer=

That problem was caused when i tried to duplicate objects and bring them to another level for testing when they orginally belonged to an HLOD cluster…

Seems like that problem has nothing to do with the 0 triangle generation problem…

After removing objects 1 by 1 when they are called out as an error it eventually builds the HLOD with polys… problem is… if i add those objects back to the cluster… those objects are no longer problem objects, but previously fine objects become error causing objects.

Which narrows it down further to know there is nothing wrong with the individual models or meshes since at times different ones can make successes… its something to do with them together… in a cluster.

Do you have one of the creators of the HLOD system to trouble shoot with? Because it seems like this shoudl have never been released publically… I mean i have been wrestling with different bugs with HLOD for YEARS… and now this one just does not seem to have any sort of work around at all… What do i do?

Also for testing purposes i selected all the meshes in the cluster and used the merge actors tool which for some reason also creates a model with 0 triangles… So the fault lies with some method the merge actor tool uses to actually create a new mesh.

Ok I made merge actors work by forcing it to use LOD 0 instead of leaving it by default to use any LOD… Seems like all these errors come from it lookign for LOD 1 or some thing… and im not sure all of these models have LOD1…

Besides that… HLOD doesnt have the option to force a specific LOD as merge actors does… so what do u think?

if i try to force ti to generate with LOD 1… it gives me the error again… basically forcing actor merge to lod 0 is the only way to generate, but HLOD system does not have that option available… plus… why??? Why are these problems happening to LOD 1?

I am just so confused… now another one of the clusters that typically generate with only 0 polys and an error… actually works with merge actor tool with LOD set to auto… i just cant really find a common denominator other then some need merge actor to be to set to lod 0 only…

Again… merging via HLOD does not work… 0 polys…

Hey Kurylo,

Sorry for the delay. I created JIRA UE-52466 so our developers can look into this further. It may be a bit before this can be investigated due to other commitments but we will post back here when we have more info.

Thanks,
-TJ

When i type in that issue id into unreals issue tracker it cannot find it. Is there a way i can see the status of this issue?