I’m rigging a simple lego figure and I’m running into trouble with the leg clipping into itself when it bends backwards. I’ve been fiddling with the weights for weeks, done several different bone configurations, and finally I’m here. How do I get the calf and the thigh to meet in the middle when the knee is bent instead of having the crease create this weird clipping effect?
Post the blend file please, I have no idea what is going on without seeing your mesh, I have suspicions, like duplicate vertices for example, but my suspicions alone won’t help you.
It’s telling me that new users can’t upload attachments; I could give you a google drive link but I’m hesitant.
Upload to pasteall.org/blend then post the link to your file here!
Sorry, didn’t know you are new here, so “Welcome to BA!”
Oh, thank you! (and thank you again!)
OK I have your file, First thing: way too many vertices for the shape:
This will not deform properly. Second thing: Face normals are wrong, where you have mirrored arms and legs:
This can be corrected by selecting all vertices and key CTRL+N (Normalise):
See the dark shades have disappeared. Third thing: no need to use Bendy Bones, use IK chains, I will look more later, have other things to do just now… Use of bendy bones is most of the problem with the legs and arms folding in, but too many vertices/edge loops doesn’t help!
Forth thing: this bone chain has a twisted component:
Apart from that… Anyway don’t be disheartened, I will show you a solution later.
Do you have a Lego model of this? It’s worth looking at one as the legs are in two sections that “hinge”, not “bend” and arms are in ball joints so hinge again, not bend. I have grandchildren, so lots of Lego…
Thank you! I admit the bendy bones were an odd decision. I started with a hinge joint like normal legs, and when I started having the clipping problem I decided to experiment. Don’t worry, I’m not disheartened, I’m actually really glad I’ve got somebody to tell me what’s what now. ^^ Thank you for the help, and take your time!
Sorry for delay, been very busy, I will try to get this done today.
I have done some re-modelling though:
WOW, this is already way more than I asked for. Thank you!
OK, here is a starter:
Blend file: LEGO_minifigure.blend (832.5 KB)
And Rendered View (key SHIFT+Z to render, SHIFT+Z again to go back to normal):
Take a good look at the file, note especially how it is modelled, not perfect, but time is pressing. You should get the general idea! Things to avoid:
- Too many vertices.
- Sharp edges, avoided by using Bevel Mods, or Sub-Surf Mods with enough controlling edge loops.
- Make sure all face normals are correct.
- Name Bones correctly - see my armature…
Armatures, keep them simple and lock locations, or rotations if you don’t want the bone to move, or rotate, in any axis:
This bone can only rotate about its LOCAL X axis and cannot move relative to “Root” bone.
Use Cycles Render for now, EEVEE when you go to 2.8 (wait for official release).
Don’t worry about UV mapping just yet, there are many more things to get your head around first! I will go through this later, so I have removed all the seams…
Press “Play” (ALT+A) to watch the animation. Don’t add more keyframes than is absolutely necessary. I always float the cursor over the required transform box and RMB Click, => 'Insert Single Keyframe".
Ask any questions here on what I did and why. As time goes by you will do somethings in a more advanced fashion, but this is a good starter position.
On level 10 there is a cylinder rigged with an IK chain, so you can see how to do this (just move the IK bone) and avoid vertices overlapping…
Thank you! You even did an animation and everything! I appreciate it. The rig is very helpful to look at, though I won’t use your example exactly since I’m designing the character to move a little less lego-like and a little more like the lego cartoon shorts.
I’m looking at the cylinder you pointed out right now and am messing around with it, and I’m trying to figure out what I should be looking for. XD Could you give a quick explanation on how you set the cylinder up? Especially the weights bit, I want to know how I can recreate it.
IT’s just a simple cylinder mesh with no end caps. I then added some edge loops (CTRL+R) and slid them to where I wanted more detail, like around the “joints”, then add a Sub-Surface Modifier to get more virtual faces.
The Armature has a Root bone, three bones in a chain and the third one has an IK constraint. The IK target bone is not connected to the chain, but is parented to Root. Look at the setup of the IK Constraint, the chain length is very important, particularly if you have more than one IK chain in an armature.
To assign weights, I just selected the mesh, then SHIFT+Selected the Armature in Pose Mode, then keyed CTRL+P => “Automatic Weights”. That’s it! when you move the IK bone the cylinder deforms. Note the IK target is not a Deform bone:
So it does not deform the mesh at all. This you do for all “Structural” bones, set bones that do deform the mesh to “Deform”. You do this by clicking the “Deform” checkbox, either on, or off.
Normally you would introduce a slight bend into the IK chain so the solver knows which way to bend the chain, I did not in this case so you can see the effect of the cylinder snapping one way, or the other as you move the IK target. Also, you can add an IK Pole Target, this is used to control the bend axis of the chain, see here. Moving the Pole Target will alter the way the chain bends, as does changing the IK properties of the various IK chain bones, something to practice with also!
Many tutorials on the 'net tell you to Weight Paint the mesh to the armature, I always start off using Automatic Weights, then adjust if the result is not exactly what I want. Weight painting is a complex subject that requires you to look at a lot of manual pages and good tutorials and is something you must practice a lot to get right.
One thing to remember, if you have an IK Constraint on a bone, all the bones in the chain will completely ignore all other constraints, like Limit Rotation, etc. set this up using the Inverse Kinematic Properties for the various bones instead.