0
$\begingroup$

I have an armature and a mesh, when I parent them with automatic weighting at frame 0 (Tpose) it looks good, once the actual animation starts from frame 1 I get very ugly mesh deformations as shown below.

Could anyone please show me the steps on how to parent them so that the mesh looks nice and deforms in a good way?

UPDATE

Updated My .blend file after aligning the mesh better and applying scale location and rotation and updated the screenshot result shown below

My updated .blend file can be found HERE

enter image description here

$\endgroup$
  • 1
    $\begingroup$ Several problems. The initial armature (edit mode) is not really aligned with the mesh. The mesh scale should be applied to 1 (it is 0.009). Avoid rotations for both. Preferably align left/right with the X axis (as blender recognize it to be left/right). $\endgroup$ – lemon Feb 20 '17 at 15:05
  • $\begingroup$ @lemon thanks for your comment, yeah I forgot to apply scale and rotation in this file but applying them won't solve the problem. I've also modified the mesh to fit on the armature but I still get almost the same result. So could you please advise and show me the steps to parent the mesh to this specific armature so it looks good? Thank you very much in advance $\endgroup$ – Tak Feb 20 '17 at 15:10
  • $\begingroup$ Except the points above, the rig itself seems to be ok... that can be the animation itself but it is hard to see clearly as it jumps from a point to another at the begining $\endgroup$ – lemon Feb 20 '17 at 15:22
  • $\begingroup$ yeah... the bones rotations are weird. Have a look at the right upper leg at frame 1 (in pose mode) : -99° along X... I don't think that's good $\endgroup$ – lemon Feb 20 '17 at 15:28
  • $\begingroup$ @lemon I've updated my .blend file and aligned the mesh to fit exactly on the armature and applied rotation, location and scale. Could you please advise how I can fix the weighting so that it looks nicer? $\endgroup$ – Tak Feb 20 '17 at 23:47
3
$\begingroup$

I think this answer needs to be advises about parenting (even if I am not specialist on that, so please provide another answer or comment if I say wrong).

All that will be indicated below is not mandatory but it will at least simplify your life.

Here is the model from the first upload :

enter image description here

We can notice 4 things that are to avoid (except for particular cases):

1 - The armature is out of the mesh: that will lead to distortions

2 and 3 - Rotation and scale may lead to unpredictable results: so apply them using CtrlA and choose 'rotation and scale'

Y - The model is left/right aligned on the Y axis: Blender is much more easy and provides functions if the model (and armature) is left/right along the X axis

Concerning the second upload, things are better (rotation and scale are ok, the armature is more inside the mesh, but still along Y). If we 'X-ray' to see the armature inside the mesh:

enter image description here

  • The armature is visibly not symmetrical (close to but not exactly)
  • The bones are misplaced. Here the point is to imagine where the real bones should be in a real human being

For instance, shoulders are too short, nearly all arm articulations are not at the good place (shoulder, elbow, wrist), femoral neck is in the belly.

Going between object and edit mode, we can see that the mesh shifts (frame 0). Which is annoying because there is no clear 'rest pose'. The rest pose is a reference pose which has no transformation (the skeleton in rest pose is the same in edit mode and in pose mode).

Now about the animation :

Here are the rotations at frame 1 for the upper leg

enter image description here

The value are a bit strange (-99, 20, -16)... and if we reproduce just that from the rest pose :

enter image description here

So somewhere, a parent bone of the upper leg needs to be in a compensating/distorted position. And that surely why your mesh looks as in your question.

Some advices:

  • Use X-ray to see where are the bones

  • Look at the bone names (check 'names' in the armature object display properties). Particularly, names 'need' to indicate left/right for symmetrical bones (Blender will recognize them when names are suffixed or prefixed by Left Right):

enter image description here

  • Use the symmetry along X axis (and the names above). That allow to place (in edit mode) a given bone and then just ask to Blender to place its symmetrical :

enter image description here

  • Look at the bone position from several axis (eg. front, right, top) to verify the bones placement

  • Place the bones heads/tails at the good position regarding the mesh shape and the mesh geometry. The mesh geometry will lead is bending is ok or not, depending on the edge loops it forms:

Here an example showing the mesh with wire and the approximate position for the shoulder articulation

enter image description here

Hope that helps.

$\endgroup$
  • $\begingroup$ Thank you very much for your answer. But moving and adjusting the bones locations will destroy the original animations right? $\endgroup$ – Tak Feb 21 '17 at 23:44
  • $\begingroup$ @Tak, I think for some reasons the coordinates are inverted somewhere. I did not tested it this way, but I guess that if X, Y, Z rotations where swapped in a way that could be ok. So, that can be due to some import options? And no, you can adjust the armature bones and keep the animation ok $\endgroup$ – lemon Feb 22 '17 at 7:16
  • $\begingroup$ Thank you, could you ping me on here when you can ? chat.stackexchange.com/rooms/54045/room-for-tak-and-lemon $\endgroup$ – Tak Feb 22 '17 at 7:31

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.