0
$\begingroup$

So I just finished fixing an obvious neck seam between my model's head and body, thanks to this answer to a question I asked yesterday. There are 2 meshes total: 1 for the head, and 1 for the body + some vertices in the head. I am now trying to fully rig my model. I was able to parent both meshes to the armature just fine, and any loose vertices in the head (the teeth, eyelashes, and the eyes), I assigned to the head bone with a weight of 1. Although I can now move the model's head, the mesh separates from the body whenever I do. Also, for some reason, even though I assigned them to the head bone, the eyelashes still lag behind when I move the head. I checked the weight paint, and it is all red, so not sure why they aren't in sync.

Here is what it looks like when I try to pose the head:

enter image description here

The meshes will separate even if I move the chest or an arm (whatever is near the seams). I have tried joining the two meshes into one, but when I do that, I recreate the problem I had before, which is a seam between the head and body (covered in this question/answer). I am not sure what is the best way to proceed. If I join the meshes, it creates an ugly seam, and if I keep them separate, I cannot pose the model.

I'd greatly appreciate any help at all. Here is a link to the blender file for reference.

*Update on part 1 of answer: when I join the 2 duplicates, the textures on the feet and groin area of the model change. I've attached a picture below:

enter image description here

$\endgroup$
2
  • $\begingroup$ I don't think it's a good idea to have two objects for something that in reality is one especially when they would have to be deformed as one. I would follow a more standard approach and work on the character model first and only then I would move to the next stage of rigging and animating. It should be a single model, single object. I would advice, not attempting to rig it, until you have a fully usable model. You simply need to join the head to the body and take care of the model's topology so it's suitable for rigging. This what you are attempting to do is not how it's done. $\endgroup$ Commented Jan 29 at 0:06
  • $\begingroup$ You need to solve the seam problem and you should do it before rigging. That should be done by joining the meshes, merging and modelling needed topology at the seam, then you should address the materials if how it looks is a problem, only when the model looks OK and it's topology is suitable for deformations, you should do rigging. So I think this question makes no sense, because the problem is not rigging, but the model and possibly texturing it. It seems you have not yet solved the issue presented in your first question and you should not attempt moving forward before you do. $\endgroup$ Commented Jan 29 at 0:21

1 Answer 1

0
$\begingroup$

enter image description here

3 things:

  1. You forgot to specify a color layer for your color attribute node. This isn't causing a problem at this point (it's being inferred properly) but it would be wise.

  2. I forgot to tell you to plug "UVMap" in as an explicit input for your normal map node.

  3. Somehow, you've lost autosmooth on your body mesh but not on your head mesh. Enable this on your body mesh (before or after joining.) This is necessary for your mesh to use its custom normals, which this mesh definitely needs (its normal map is baked relative to customs.) Note that you've somehow changed all your custom normals on the body mesh since the last question you've asked, I think unintentionally, and you may wish to roll-back the body to an earlier version-- these don't look like the right normals.

"Autosmooth" is the answer to your question, "Why does it make a seam when I join these objects?" But the implicit question here, your actual goal, is "How do I parent this to the armature with automatic weights?" Joining the objects together isn't going to help with that.

Automatic weights work great in certain circumstances. One of those circumstances is that you are weighting a single, manifold mesh. This particular mesh is not a single manifold mesh. Even if we join objects and merge the neck vertices, it will still not be a single manifold mesh-- there's the hair bits, the eyes, the mouth... And if you roll back to your version with proper normals, it'll be ripped all along its seams.

Rather than focusing on the rendering model, let's make a new model that is a single manifold mesh, weight that, and then transfer weights.

  1. Duplicate head and body to a new object. Join these duplicates. Hide the other meshes so you don't get confused.

  2. Select a body vert and a head vert, then select linked. Select inverse and delete all other geometry.

enter image description here

  1. Select all and merge by distance. Default values will work here. We now have a roughly manifold mesh (eyes and mouth are holes, but without face bones, that doesn't really matter.)

  2. Parent this new mesh to your armature with automatic weights. Then, mute the armature modifier that this operation has created.

enter image description here

  1. Unhide your other mesh objects and hide this object. Create "data transfer" modifiers for your original (joined or unjoined) objects. Enable "vertex data" and "vertex groups" and set mapping to "nearest vertex." If using this modifier in a different context, you'll want to read further on it, but here, that's all that you need to do. Test the armature out:

enter image description here

If everything is working, apply those data transfer modifiers. Once applying the modifier, you can delete the duplicate you made if you want-- it's no longer doing anything.

The weights are autoweights, not perfect-- the chin has too much weight to the neck, a typical problem. You could paint the source-- your duplicate-- before applying the modifiers, or paint these afterwards. But the overall problem, of rips appearing in the mesh, is gone, even with separate objects.

$\endgroup$
6
  • $\begingroup$ Wow, thank you so much for taking a second look at this and providing new instructions, it is so helpful! I will try this when I get home today. Does this interfere with rigging his face at all? I do plan on rigging it for facial expressions later on. $\endgroup$ Commented Jan 29 at 17:02
  • $\begingroup$ Yes, if you want to rig the face, you'll have to do more work on weighting. Odds are that this will have to be manual weighting work anyways however. Really, you want to have a complete plan for what you want to do before you even begin asking questions-- I originally didn't know you wanted to rig; in answering this, I don't know that you want to do facial rigging. Ideal solutions depend on the final plan. But, you can always treat anything learned as just that, a chance to learn. $\endgroup$
    – Nathan
    Commented Jan 29 at 17:21
  • $\begingroup$ I understand and apologize, I'm very new to Blender. My plan for this model after fixing the mesh is to rig and pose for pictures (undecided on animation but probably not). With that in mind, would restarting with an unedited file and following the instructions you gave in this answer and the last answer still be the best course of action? $\endgroup$ Commented Jan 29 at 18:32
  • $\begingroup$ Oh, I don't know. I think you should treat this all as a learning experience. Because of the way this model was made, with normals based on split normals, I don't think it's going to be great for rigging. If you want something perfectly suited for what you want, you make it yourself (or you hire somebody to make it to spec.) But if you're interested in learning, and are flexible about your final output, there's certainly nothing wrong with continuing along. $\endgroup$
    – Nathan
    Commented Jan 29 at 19:02
  • $\begingroup$ I am learning a lot, thanks! Not sure if this is supposed to happen or not, but when I join the duplicates, it changes some of the textures. I edited my post to include a pic. Did this happen for you too? $\endgroup$ Commented Jan 29 at 23:46

You must log in to answer this question.

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