1
$\begingroup$

My goal is to have one blend file with many characters (meshes) which are all assigned to the one armature.

Currently i have a well designed and (already rigged) character, originally imported as collada file (and created with adobe fuse).

I added some control bones and IK to make the character more flexible. So until this point everything works perfect.

But now my problem:

When i try to add an other character mesh and assign it to my current existing armature i have to transfer my vertex groups and weight paints because i also want to reuse them. But the transfer weight / copy vertex groups results in a strange deforming mesh.

EXPERIMENT 1:

The second (deformed) character mesh after the usage of "Copy vertex group to selected"

RESULT: Mesh is heavily deformed enter image description here

EXPERIMENT 2:

The second (deformed) character mesh after the usage of the modifier "Data transfer" -> Vertex Group(s) / All Layers / By Name

RESULT: Mesh is a little bit deformed RESULT: Mesh is a little bit deformed

It should be possible to copy the vertex groups and weight paints without quality issues, but i don't get it :-/

$\endgroup$
  • 2
    $\begingroup$ I dont believe its possible to transfer vertex groups or weights to another mesh that doesnt have the same vertices or structure as the primary one. $\endgroup$ – WhovianBron3 Jun 18 '16 at 23:09
1
$\begingroup$

Warning I answer here about the weights transfer problem but this answer does not handle the "one armature" mentioned at the begining of the question.

From my experience, this approach can work only if the 2 meshes (the prerigged source and the destination to be rigged) are very close to each other.

This can be done more or less easily using mainly mesh deform and shrinkwrap modifiers and eventually doing a quick parenting (with automatic weights) on the source mesh (a copy of it).

Mesh deform or the parenting are here to bring the source mesh closer to the destination. And the shrinkwrap is here to give more accuracy to the correspondance of the two meshes. In this process, you'll need to take into account each bones junctions by placing the (temporary) deformed mesh in accordance to these junctions.

If all these conditions are not met, the data transfer wont work correctly (this is at least my experience). Also, the point is to evaluate the shorter process : rigging again your other meshes or using this kind of method.

If you choose the data transfer, you'll probably need to use "projected face interpolated" option and eventually the ray radius value (not to low and not to big). Becareful : these options may needs much more calculation time.

Edit 1/note : I encountered some problems with the "data transfer modifier" as the "Data transfer / data" in the tool panel works well (shortcut CtrlShiftT) (same function and options but not a modifier).

Edit 2 : another approach, dependy on the accuracy you need for the rigging :

  • Copy the armature
  • Adapt it (edit mode) to your destination mesh
  • Parent the destination to this armature copy with automatic weights
  • Reparent to the original armature (with empty groups)
$\endgroup$

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.