1
$\begingroup$

I've spent the entire weekend trying to get a grasp on how to rig clothes to characters. I feel like I've tried every possible solution on google and YouTube. What I've done is imported a character with a rig on it, tested before hand the rig itself works perfectly. From a cube I modeled a primitive shirt design, added a Sub Surf modifier and a Shrinkwrap modifier. I parented the Shirt to the rig, clicking the shirt first, holding shift and selecting the rig 2nd, parenting it using the Armature Deform With Empty Groups. Then added the Data Transfer modifier as you can see in the picture. If the modifier is first or applied the shirt modes on the Z axis slightly towards the characters head and is not rigged. When going into pose mode and moving any of the bones, the Shirt mesh completely stands still. Am I doing something wrong or missing a critical step? Any help or guidance will be greatly appreciatedenter image description here. Thanks ahead of time!

Hi Nathan, I appreciate you taking the time to answer my question. But after reading all of that, Its honestly just created more questions in my mind instead of answering any. 1. You say "(With the armature modifier. Use ctrl-p armature deform.)" What do you mean with the armature modifier? Also I'm not supposed to do ctrl-p armature deform with empty groups? Everywhere else I've ever seen people do it they use empty groups. 2. You say "because you don't want to transfer from a posed character, you want to transfer from an unposed character and only then pose both the character and the clothes." I'm currently using Adobe Fuse CC to create my characters, defaulted they come in T-Pose mode. Would this be considered a pose even though its defaulted like that? If so what would be an non-posed character? Because technically in order to get the character in any other position that the defauled one, I'd have to pose it.

I've reread your comment probably 30 times trying to understand what you mean and trying different things, but I just cannot get it to work.

$\endgroup$
1
  • 1
    $\begingroup$ I've tried to answer your questions in the edit below. In the future, please respond to those comments rather than editing your own-- it's only dumb luck that I saw these questions, because I only get alerts about responses to my comments, not about edits to questions that I've tried to answer. $\endgroup$
    – Nathan
    Commented Jun 26, 2018 at 18:05

1 Answer 1

5
$\begingroup$

A data transfer of vertex groups, all on its own, will do nothing to deform a mesh. For good or ill.

Please forgive me if I'm telling you something you already know, but it's necessary to parent the shirt to the armature after applying the data transfer. (With the armature modifier. Use ctrl-p armature deform.)

If the shirt has any other deforming modifiers limited by vertex groups, data transfers can affect those as well.

It's common for armatures to have slightly different positions in pose as opposed to resting, even without any explicit pose, just from constraints. Remember that your data transfer modifier will transfer from its target's final, modified position. It's very easy to data transfer from a model that is slightly deformed from its own armature modifier, and this is not usually what you want. Consider carefully your target before applying the data transfer, consider which modifiers you want visible for purposes of the data transfer. You can always disable them temporarily, then re-enable them after the modifier.

You usually want an applied data transfer for this purpose, unless you have an unparented copy of the model somewhere, because you don't want to transfer from a posed character, you want to transfer from an unposed character and only then pose both the character and the clothes.

Finally, even though you didn't ask, unless your shirt mirrors the topology of the data transfer target, you probably don't want to transfer from nearest vertex. Transferring from nearest face interpolated is likely to give better results.

Edit: I'll try to answer your questions.

When you select a mesh, then select an armature, then hit ctrl-P and use one of the armature deform techniques, it does at least two things: it parents your mesh to your armature, with a child/parent relationship exactly the same as if you parent a mesh to an empty; and it creates an armature modifier. Parenting alone is not-quite necessary for armatures to work, but the armature modifier is essential. So when I wrote,

(With the armature modifier. Use ctrl-p armature deform.)

I was clarifying that parenting alone was not sufficient to get deformation from an armature; the armature modifier has to exist as well.

Also I'm not supposed to do ctrl-p armature deform with empty groups? Everywhere else I've ever seen people do it they use empty groups.

I'm afraid I don't understand this question. When you use ctrl-p to parent an armature to a mesh, you get a few armature specific options.

If you choose only "Armature deform," the action will not change any vertex groups on the model. Any deforming bones that happen to have the same name as existing vertex groups will function fine, because you already have vertex groups created for them. I consider this the correct way to parent a mesh that is already weighted.

If you choose "armature deform with empty weights", it will create vertex groups for any deforming bones in the armature that do not already exist. No vertices will be assigned to any of these groups, but any already assigned will remain assigned. If a vertex group already exists, it won't be changed. Using this to parent an already weighted mesh to an armature is fine. But its more typical use is simply to prepare an unweighted model for manual weighting.

If you choose "armature deform with automatic weights" or "envelope weights", it will create any vertex groups it needs (deforming bones) and it will write values into those groups. If those groups already exist, any values in them will be overwritten. So you shouldn't use this method to parent a model that already has weights that you want to keep-- like weights from a data transfer.

defaulted they come in T-Pose mode. Would this be considered a pose even though its defaulted like that?

If the model with only an armature modifier is in any way different from its edit mode position, it is posed. If it is not, it is not posed. As I said, sometimes posing is subtle, and sometimes it is generated by constraints on an armature rather than due to any manual animation. The safest thing to do is to disable any armature modifiers on the target of a data transfer modifier before applying that data transfer, and then re-enabling it afterwards. An alternative would be to select your armature, and in the armature tab of the properties view, set the armature to rest position.

$\endgroup$
2
  • $\begingroup$ There is a lot of good info in your comment, took me an hour to understand what exactly you mean. Once I followed each and every thing you said, step by step, it works perfectly! I missed the "apply" part, that solved a lot of issues. Thanks again! $\endgroup$
    – Ratan
    Commented Oct 14, 2018 at 6:03
  • $\begingroup$ I realise that this answer was made quite some time ago but it should seriously be marked as the answer, as the mention of using nearest face interpolation makes for minimal to no manual fixup (and I have some relatively complex detailed layered on top of my base mesh) $\endgroup$ Commented Feb 24, 2020 at 23:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .