UProceduralMeshComponent causes glitch

Dear all,

for a thesis project, I am using ProceduralMeshComponents (PMC) and rely on them quite heavily. My issue is also not with the ProceduralMeshComponent itself, because THAT does not behave unexpectedly.

Details that should be noted: The current setup of PMCs requires me to Attach these to one another. I should be able to work around this by making the individual mesh sections into one mesh. However, it is not performance issues I am encountering.

My issue is the following: When I start the game, end especially when I move the PMCs, or when they change on their own (using the UpdateMeshSection), I encounter glitches in game. These glitches are disappearing meshes that then appear extremely large and stretched across the scene. This also occurs when the performance is perfectly fine. I include screenshots of a worse example, with low performance, but continuously updating PMCs, as a reference. This is the quickest way I have to reproduce the error.

From top to bottom:

  1. Setup of level with street cone meshes. 2) A ProceduralMeshComponent gets generated at runtime, 400 attached cylinders that change the bottom radius. Performance is not an issue here, but considering that these cones change radius it is expected to have the performance as seen on the screenshot. This is in simulate game mode, but it happens everywhere, everytime, even with less meshes, but less frequently. 3) Cones have vanished and appeared quite big somewhere else. They are also moving sometimes and then there’s a party on-screen. Collision, as seen on the left, is still where they used to be and I can query the meshes at their original positions. however, the wireframe overlay recognizes that they are somewhere else.

For clarification because I used some words wrong: The cylinders are PMCs with two radii, top and bottom, making them like “cut cones”. In this “stress-test” example, I continuously change their top radius, resulting in a quick reproducibility of the error. The street cones are static meshes that in this case are tagged as “movable”, but I stress that this also happens with unmovable meshes.