0
$\begingroup$

I'm trying to make a low poly character model just for fun and I was using this tutorial to do it. Everything was working great, the rig works mostly as intended by itself - but when I apply it to the mesh it deforms everything. This didn't happen in the video at all.

I've tried most solutions I can find - I made sure there was no non-manifold meshes, I made sure all the normals were flipped correctly, I applied transformations to both the model and the rig several times. I even weight painted it to the best of my ability but nothing worked.

This doesn't seem to happen with other people's models, either. It doesn't just distort itself when I move the bones - it distorts it the instant I apply the rig.

So if anyone could let me know what I'm doing wrong I'd be really grateful, thank you so much! I'd really appreciate it if someone had a solution which didn't involve any deformation at all if the model wasn't moving. Attached I have the images and I am going to attach the .blend file, please let me know if anything else is needed!


Without rig applied without rig Click to enlarge

With rig applied with rig Click to enlarge

$\endgroup$

1 Answer 1

0
$\begingroup$

First, I don't think "apply" is the word you're looking for here. It has a specific meaning in Blender with regards to modifiers (like an armature modifier). Your mesh gets ugly when you so much as enable the armature modifier. (To apply it, which you shouldn't do, you can choose "apply" from the drop-down menu to the right of a modifier's name in your modifier stack.)

The main reason your model doesn't look right is because the armature's IK constraints are twisting the limbs unnaturally. Your IK constraints have "rotation" enabled, meaning they're trying to match the rotation of, for example, ARMCONTROLLER.R onto LowArm.R. Because the rest pose rotation of LowArm.R isn't the same as the rotation of ARMCONTROLLER.R, it bends LowArm.R to match. In order to have that rotation and remain connected to its parent, that gives a specific rotation to UpArm.R as well.

That's the main reason. The other reason is that you are using pole targets to control the rotation of your IK chains, and those pole targets are positioned in a way that will twist your limbs. Sticking with the right arm, UpArm.R interprets the pole target as meaning, "I should point my +X axis at the pole target." Except, then it has a 180 degree pole angle set in the IK constraint for the right arm, so it points its -X axis at the pole target, twisting it backwards. You should enable the display of Axes in properties/armature/viewport display settings to see this more clearly. There is some particular pole angle that won't create any twist for UpArm.R in its constrained but unposed state, and you can just get close to this by adjusting the pole angle and seeing what happens.

If you fix all that, you'll get the mesh to look right unposed. But when you move the IK targets, it will look all wrong. And that's because your IK chain bones aren't bent in the way that a human moves, and Blender uses the existing bend to determine how it should bend IK chain bones. Your shin bone bends toward the front, relative to the thigh bone, and so Blender is going to think you want your knee to bend backwards.

Here are my recommendations:

  1. Avoid enabling rotation in your IK constraints, period. Consider this an advanced setting. It is not what you, as a beginner, want.

  2. Try to avoid pole targets. (It's not very clear from Blender's interface, but pole targets are optional.) If you do need pole targets, position them carefully; the best thing to do is to just duplicate the first bone in a chain, move it in it's normal +X axis, and use that bone as a pole target with a pole angle of 0.

  3. Place your bones such that they represent the actual way that you want your model's joints to bend. If that means remaking a mesh, so be it. Ideally, meshes intended for rigging in Blender are designed so that each joint is slightly bent, rather than having straight, rigid limbs (and especially not overextended joints!)

$\endgroup$

You must log in to answer this question.

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