1
$\begingroup$

I am rigging a character with a robotic arm and the parts of the arm should rotate independently from each other. But no matter what I do I cannot seem to find a way to make it work.

example

I have checked previous solutions and also each bone constraint of all DEF, MCH and ORG bones but nothing seems to solve my issue. Whenever I rotate the hand, it affects the forearm and whenever I rotate the forearm it affects the upper arm which is not the functionality I am looking for.

Any help is highly appreciated. I am using Rigify and Blender 4.2.

$\endgroup$

1 Answer 1

1
$\begingroup$

By default, Rigify's modules are tailored for soft body animations. It uses intermediate bones and bendy bones to simulate things such as how a human hand rotation gradually affects the flesh before the joint.

Non-destructivbe change in the metarig

One way to avoid this on mechanical rigs, is to go in Pose mode on the metarig, select the Rigify sub-rig's parent (the parent of the limb module, such as the first arm bone, leg, finger, ... You know you got the right one if its Bone data tab shows a Rig Type in the Rigify Type panel), and set the limb segment and b-bone segment to 1. Then you can re-generate the full feature rig.

Example for an arm:

enter image description here

enter image description here

(You can see the result in the "DEF" layer.)

Manual destructive change in the final rig

If you find modules that have limb/b-bone segments, but you can't change them in the metarig ; or if you need to keep some of them and remove some others within a single module, you need to do the change on the final rig. But it will be overridden any time you re-generate the rig from the metarig.

B-bones are the easiest to handle: in the "DEF" bone group, select any bone you want, and set their b-bone segment number in the Bone data tab > Bendy Bones panel:

bbones property

To remove segments, it's a bit harder because they are built on different groups and have constraints to update.

  • In the DEF bone group, select the middle point between the two bones, and hit ⎈ CtrlX to dissolve it, turning the two bones into one. dissolve def bones
  • In pose mode, select the bone you just un-segmented, update its Stretch-to constraint to target the correct bone (usually the next bone in hierarchy, tweak bone if any), then hit the Original Lenght's reset button: stretch to
  • In the "MCH" and any eventual "Tweak" bone group (my example is the right arm, so "Arm.R (Tweak)"), delete the unnecessary tweak controller bone and its MCH bone. mch cleanup
$\endgroup$
1
  • 1
    $\begingroup$ Thank you so much! I didn't imagine that the b-bone segments will have such functionality and was going crazy about trying to figure out where this rotation was coming from. Thank you! Thank you! $\endgroup$
    – user197350
    Commented Aug 9 at 8:08

You must log in to answer this question.

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