If you resize a skinned MeshPart within a rig, everything seems to have to be updated internally which causes visual lag. The framerate is stable and the microprofiler is not flagging anything wrong.
I’ve attached a reproduction file for engineers.
Expected Behavior
There shouldn’t be any visual lag.
Actual Behavior
There is visual lag.
Workaround
More or less, switching to rigid objects (Motor6D) seems to be fixing it, however this implies that everything has to work with this pipeline. In the past, we’ve had no success with mixed rigs (Motor6Ds and bones together) for multiple reasons, but we’ll still be giving it a try in the meantime.
Issue Area: Engine Issue Type: Performance Impact: High Frequency: Constantly Date First Experienced: 2023-03-14 00:03:00 (-04:00) Date Last Experienced: 2023-03-16 00:03:00 (-04:00) A private message is associated with this bug report
Yes, resizing the geo will cause the skiniing to be rebuilt, which is causing the stutter you see. We are working on an optimization that should reduce the stuttering, but the cost of the rebuild could still impact game performance.
In other engines, you would scale the bone rather than scaling the geo, which wouldn’t require a rebuild, but Roblox does not support bone scaling yet.
More or less, switching to rigid objects (Motor6D) seems to be fixing it, however this implies that everything has to work with this pipeline. In the past, we’ve had no success with mixed rigs (Motor6Ds and bones together) for multiple reasons, but we’ll still be giving it a try in the meantime.
This is the preferred method. If you are having problems with it please feel free to submit another issue so we can look into that.
Hey there, we’ve noticed this issue starting to appear again in our live game.
Since the original post, we’ve converted our rigs to be hybrid, basically a mix of bones and Motor6Ds, which allows us to scale the regular mesh parts without rebuilding the skinning mesh. This proved to solve the issue for the time being. However, this has started to be relevant again since about a month, especially when the server starts being crowded.
It’s very difficult to say this is precisely the issue, however we have the same visual anomaly that this was causing which leads me to believe they are the same problem. The framerate is stable and the rest of things fired on Stepped do update accordingly.
Here’s a video of what is happening.
Everything still runs like a charm, minus the fact that the arms mesh (which is the only skinned mesh) seems to be throttled to be rebuilt.
Even more important than solving this, if you have any insight on how we could optimize this and lower the demand on what is running the skinning mesh rebuilding, we’ll gladly take it!
One last thing, there are a lot of systems at play, so don’t hesitate to reach out if you’d like to take a closer look with edit permissions.