Rigify - Pectorals Parented Incorrectly

Issue #1239 resolved
Midnight Arrow created an issue

v 1.6.2.1248

When converting to Rigify, the pectoral bones are parented to DEF-spine.004. That is the equivalent of the upper chest. They should be parented to DEF-spine.003 instead, as in the Daz rig. This interferes with the body deformation when using the DEF-spine.004 tweak bone.

Comments (15)

  1. Thomas Larsson repo owner

    No, that behaviour was recently changed because rotating spine_fk.004 caused ugly deformations of the breasts if the parent was DEF-spine.003. Many poses rotate the upper chest bone, which is sort of wrong since the ribcage is quite rigid.

  2. Midnight Arrow reporter

    The chestUpper bone in the Daz rig has a Y-rotation range of 10 degrees, maximum. The image you show looks like it has way too extreme of a rotation, beyond the limits of the human body. The ribcage is rigid, and the user should be rotating the spine bones together, with small rotation variations between them. It’s not physically possible to move your shoulders and only your shoulders to such an extreme degree like that.

    Plus, it looks even more anatomically-incorrect when you rotate spine.004 back and the breasts seem to defy gravity like balloons.

    I think if they’re parented to chestLower in the Daz rig, they should stay parented to the equivalent in the Rigify rig. Parenting the pectorals to spine.003 is perfectly fine as long as the poses remain anatomically correct. Beyond that, the breasts have bones as well, so they can be moved manually if need be.

    In fact, that brings me to a different issue – why aren’t the pectoral bones on the custom bone layer? They seem to only exist on layer 32, not layer 20 with the other bones like the pelvis and toes.

  3. Thomas Larsson repo owner

    The pectorals are on the Torso (Tweak) layer. The orange circles in the picture above.

  4. Midnight Arrow reporter

    Hmm, sometimes when I convert I’m pretty sure they only end up on layer 32 (the ORG layer), but I did a test with 1248 and they do show up on the tweak layer. Either there’s a bug somewhere or I’m using an old version when it happens.

  5. Thomas Larsson repo owner

    The latest commit changed the pect parents back to spine.003. I didn’t really intend to include that in the commit, but it happened.

    Unfortunately it isn’t possible to maintain the limit rotation constraints, since the spine bones can be moved in several ways, both collectively with the main chest bone and the individual tweak bones.

  6. KD

    Are some of these deformation errors related to bb segments? If those segments are set to 1, deformations are better preserved.

  7. Thomas Larsson repo owner

    Uh. I didn’t realize that Rigify uses bendy bones for the deform bones until now. But no, I don’t think that has anything to do with it.

  8. KD

    Setting segments to 1 in the completed rig spine.004 prevents sternum vertices from rotating badly with the neck control. Setting segms to 1 elsewhere too might yield better deformations when using original JCMs.

  9. Alessandro Padovani

    @Thomas I guess bendy bones was a mistake, better to use normal bones unless you want “special bendy effects“. Personally I use bendy bones a lot in my own rigs those make things easier, but they’re not good to convert daz.

    edit. oops .. just read the note by @Midnight my head was mistaking this for MHX sorry.

  10. Midnight Arrow reporter

    @Thomas

    I’m aware the limit constraints can’t be carried over. I’m just using the Daz limits as an example of what an “anatomically correct” pose will be. If any Rigify bone goes beyond the rotation limits of the Daz skeleton, I’d expect there to be unusual deformation.

    @ Alessando

    Bendy bones are a natural feature of Rigify, not something Diffeomorphic adds.

  11. Midnight Arrow reporter

    I would recommend against KD’s change, sorry.

    If you set DEF-spine.004 to have 2 or more segments (the default is 8) then it’s true the top of the sternum deforms too much. However that can be fixed by counter-rotating tweak_spine.005 to make it look smoother. However, the reverse is not true. If you set DEF_spine.004 to have 1 segment, the neck does not deform enough, and also tweak-spine.005 does nothing. You cannot rotate it to get a smoother curve. (In fact I think the bendy bones are what make the tweak bones work in the first place.)

    8 bendy bone segments can be fixed with tweak bones, 1 bendy bone segment can’t. The default is correct.

  12. KD

    Okay, but with 1 segment on DEF-spine.004, the additional rotation might be achieved by turning the head. tweak_spine.005 is okay for pose to pose but counter-keying it for correcting mocap is cumbersome, even with animation layering.

  13. KD

    … of course, it is easy enough to change the bb value manually after rig creation for those who need to. Just have to remember to do it.

  14. Midnight Arrow reporter

    I can confirm the pectoral parenting matches the Daz rig again, thanks.

    @ KD

    Rigify is meant for manual posing, not mocap. I don’t think it makes sense to disable intended functionality (tweak bones) to accommodate something the rig isn’t meant for in the first place. Maybe as an optional step when converting, but definitely not as the default since you’d break the rig.

  15. Log in to comment