Rigify: What's with these broken shins and thighs?

I’m currently trying to figure out rigify
I’m not entirely clear on what it is, but the unity community and this one seem to be fond of it, and it comes highly recommended. I have some experience with ordinary armature rigging and animation, but this seems to be something entirely different. The skeleton is full of layers and i can’t figure out what most of them are for

This page is the best documentation i’ve found: http://docs.unity3d.com/Manual/BlenderAndRigify.html

I’m currently at the section Skinning the rig to the model, and i notice this rather odd image:

I’m seeing the same thing within blender. What is going on here? Who has joints in the middle of their femur. and for that matter the shins, forearms, and upperarms? These bones seem nonsensical and it is irritating me.

As can be seen above, unity’s advice is to simply ignore them. That is going to be extremely annoying to work with, i’m not sure i can do that.
Can i just delete those extra bones and move the useful ones into place, or is that likely to break stuff?

However, i’ve found these two layers, within the rig > skeleton > Layers area:

http://puu.sh/dNXYT/53078504cc.png
http://puu.sh/dNY4r/917430bd93.png

They look far more sensibly designed. So why am i being advised to use a different layer? Can i use one of those two instead?

The first of those two, i can’t seem to select or manipulate any of the bones, so i’m not really sure what that layer is.

in short, i’m confused: this can’t be the optimal way to do things. Advise please.

Hi,

they’re probably used for bending the limbs ?

Hadrien

but human bones don’t bend at those places. our limbs are made of two long bones and an endpoint (hand, foot). it’s mostly only our spinal column that bends so much.

This is supposed to be a human rig, isn’t it?

Cartoon character arms/legs bend a bit. But even in reality, breaking the bones in half as shown leads to more natural rotations around the length of the bone – when you rotate your wrist (palm up, to palm down) the elbow doesn’t move, but the forearm twists gradually, if there was only one bone for the forearm, there would be no way to prevent twisting also at the elbow.

regardless though, unity doesn’t support it on the humanoid avatar, which i’d like to use so i can retarget animations. These extra bones are only going to get in my way

how can i cleanly remove them?

They’re for arm twist/roll. Your arm doesn’t just rotate at one point, especially the foreams and shins. They have a gradual twist from elbow to hand as the ulna and radius rotate (or tibia and fibula in the leg) that is approximated either with B-bones or multiple bones per joint.

Before generating the rig select the metarig and put it in Pose Mode. Select an upper arm or upper leg bone and look in Properties > Bone > Rigify Type > Options. You’ll see checkbox labeled Complex Arm Rig (or leg). Unselect that and the limb will be built without that multibone twist setup or the bendy stuff. You have to do this for both upper arms and upper leg bones.

-LP

Rigify was made for Blender. It was never a goal to make it compatible with other programs. Sorry for your frustration, but those are the breaks.

Two main reasons for having a two bone system. One is to allow cartoony animations and to add stretchy legs and arms. Another, is a two bone system avoids gimbal lock. The fist bone rotates on two axis with the third locked. The bottom bone moves on one axis with the other two locked. It’s nearly impossible to run into gimbal lock using this method. Of course, most of the rigify bones that actually rotate on three axis use quaternion rotations (w,x,y,z), not Euler rotations (x,y,z or any combination of the three in different orders) that most other software is stuck with.

It looks like LarryPhilips has given you a solution.

Make me wonder whether anyone has tried a two bone solution where the bones are side by side, as are the actual bones, rather than end to end.

thank you larry, that is very helpful!

re: Orinoco, i will try to read through that. 23 pages of noise is a lot to filter though though :expressionless:

Other than already mentioned reasons to have those extra bones, they are used to allow arbitrary limb-bending using the manipulators in the arm/leg-(tweak) layers.

If I recall correctly, some of these features were based on development for the Blendercookie Flex rig. So by default, it’s set to produce quick and dirty (but versatile) rigs with some capacity for stylized deformations. For broad and cartoonish effects, or subtle touches to make it just right.

All layers other than the last three are front-end animation widget layers. 30 is deformation bones, 31 is mechanical bones for IK/FK setup etc. 32 I’m not quite sure, except it corresponds to the Metarig bone for bone. Possibly not as messy as it might seem at first, but I wouldn’t recommend reverse-engineering a generated rig to tweak something, unless you plan to really spend some time on it.

I have heard of people using the metarig itself (not the generated rig) for exporting to Unity

Sorry for the hi-jack, but I’d like to thank LarryPhillips for pointing out those options. I never knew they existed.

FYI, if you want to change the fingers to also only use a single bone, there is a check box called “Digit Twist”. If you select the first finger bone in the chain. (not the palm) Uncheck it to create only one bone. By default it will create two bones for the first digit for all fingers and the thumb if left checked.

Thanks!

Yeah well, it’s animation, you know ! Ever heard of Toy Story ? Brace yourself, this movie has toys made of plastic that talk.

Well, i’ve made a tiny bit of progress and then gotten stuck again:

I’ve followed this section: http://puu.sh/dRbwT/55c7970d93.png

Hidden the unwanted parts, shift clicked the deform bones layer,
My interface now looks like this: http://puu.sh/dRbDD/b7c6ab07cc.png

The problem is, these deform bones won’t move, at all… I’m clearly in pose mode, but when i select them and attempt to manipulate them, they refuse to go anywhere. won’t rotate or translate or scale, nothing at all.

i can’t animate with bones i can’t move. What’s going on?

You can’t move the deformation bones. The other bones in the rig move them based on what you are doing. For example, if you have IK on for the feet, the IK mechanism bones will move the deformation bones. If FK is on, a different set of bones will move the deformation bones. The reason the deformation bones are green indicates that they have constraints applied. It’s those constraints that are keeping you from moving them. If you disable them, you will be breaking the rig.

The only reason you should select the deformation bones is for weight painting.

I think you are following an old tutorial. To parent your mesh to the rig you only need to select the rig, then the mesh (in object mode) and CTRL-P. Then select your parenting option. I would suggest With Empty Groups or Automatic Weights.

ugh that’s not good. Well do you have any newer tutorials?

What exactly should i be moving to animate things, which layer are controls on? right now i want to get things working and churn out a proof of concept, learn the finer nuances later

still in need of an answer for this, anyone?

You animate by selecting the bones in the 3d view and moving them with R (Rotate) S (Scale) or G (Grab/Translate) and then setting keyframes (I). In the 3d view N-panel, you have should have Rig Layers (This turn controller layers on or off), and Rig Main Properties (This will give you options based on the bone you have selected.)

FYI, I had the parenting backwards in my post above. Select the mesh, then the armature and CTRL-P.