Deparenting Instance From Datamodel With Many Skinned Meshes Causes Significant Frame Drops

When I have a place with many skinned mesh parts with bones (81 mesh parts in this case) and I also have many other base parts, deparenting one of the base parts from the workspace causes a significant lag spike. This is the place hierarchy:

This appears to only be noticeable when there are many mesh parts and base parts

image

Parts are the base parts.
Plots are the skinned mesh parts.

Here is a clip demonstrating the phenomenon:

External Media

Notice as a parent the part to replicated storage it significantly drops the frame rate and there’s a spike in the microprofilier.

Upon closer examination to the lag spike in the microprofiler, it seems to be doing this triggers a complete re-rendering event.

Here is a repro file:

Place1.rbxl (85.3 KB)

Expected behavior

I expect no lag spike when deparenting the part.

2 Likes

Hello and thank you for reaching out. We are currently in the final stages of releasing optimization that may have a positive impact on what you are seeing. Please stay tuned for more info coming in the next few weeks.

2 Likes

So I checked out the place you posted @nin900500. The issues is, that skeletons that are not under a Model node, will get added to the workspace as a root. That means that all other children (including the Part you are moving around in the tree) will cause an invalidation of the skeleton → FastCluster.
The solution is to replace the Folder “Plots” with a Model node, and move everything that was previously in the “Plots” folder under the new Model node.
That gets rid of the spike when anything outside the Model changes.
Let me know if this helps, I can post the changed Place1 file if you like me to do so.

1 Like

Can you look at my bug report please? having issue with playing animations in game on character meshes.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.