I am trying to rig a vroid asset I exported from vroid studio:

enter image description here

So far so good. Now, this issue is that the exported vroid mesh object is actually comprised of separate sets of connected vertices. That is, the arm portion of the mesh has vertices that are all locally connected to themselves, but not to any vertices on, say, the torso. There are basically seams of overlapping or near overlapping vertices where the shoulder, leg/hip region, neck/skull area, et al.

This causes problems with deforming the mesh: enter image description here

I think the problem is that the vertices on both sides of the mesh where the seams are at need to have exactly the same weight painting. And as you can see by the next photo, they currently do not:

enter image description here

My first instinct was to go into weight paint mode and just go over the area of the seam and set to 100% weight with a 50px brush. Unfortunately, this still produced smaller breaks in the mesh that didn't look good, and also ruined the deformation of mesh overall. I then tried to figure out a way to explicitly set the vertexes along the seams to have the same weight... but doing this using a painting brush seems... much harder than I feel like it should be.

For reasons that I won't go into right now, I don't want to merge the separate meshes into one mesh. I feel like this is also probably a coommon situation, but for the life of me I can't figure out the specific terminology to describe this situation well enough for duckduckgo to be of much use. (I have also searched on the other leading engines.)

Could somebody explain the proper way to handle this situation? Thanks in advance for your time.


Autoweights don't handle separated meshes well. There are a number of reasons why manual weight painting might not work well or easily for your situation. (Like occlusion, particularly if there's some ambiguity of that from coincident verts.)

What's the solution? You don't have to merge your mesh, but what I'd recommend is making a temporary duplicate of your mesh and then merging the vertices in that. Then you have a mesh that you can use autoweights on properly, that you can paint easily.

When you've got weights you want on your duplicate, then it's time to transfer the weights back onto the original. Make sure your armature is in the rest position (and that you're not using any other modifiers on your duplicate.) Use a data transfer modifier on your original, set it to affect vertex data, vertex groups, specify the duplicate as the target, copy by nearest vertex (nearest face interpolated is usually better, but here you may have slight inconsistencies in vertex position at the seams), hit the generate button, then apply the modifier. After you do that, you can delete your duplicate; the original will have the same weights as the duplicate.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.